WebSocket Sample¶
Gambaran Keseluruhan ¶
Plugin WebSocket Sample membolehkan integrasi data masa nyata dalam cTrader melalui fungsi utama berikut:
- Menghubungkan cTrader kepada pelayan WebSocket luaran untuk menerima aliran data masa nyata.
- Memaparkan kandungan langsung seperti berita atau makluman dagangan secara terus dalam Panel Simbol Aktif menggunakan blok teks tersuai.
- Mengemas kini panel secara automatik dengan mesej baharu apabila diterima, membolehkan maklumat tepat pada masanya.

Plugin ini beroperasi melalui panel yang boleh dikonfigurasi oleh pengguna. Ia kekal aktif semasa cTrader Windows atau Mac berjalan dan secara automatik membebaskan sumber sistem apabila dihentikan.
Penciptaan plugin ¶
Pelajari cara untuk mencipta, mengedit dan membina plugin daripada templat atau dari awal dalam panduan langkah demi langkah kami.
Anda boleh mencari kod plugin WebSocket Sample di GitHub, atau hanya menyalinnya di bawah.
Kod sampel
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
namespace cAlgo.Plugins
{
[Plugin(AccessRights = AccessRights.None)]
public class WebSocketSample : Plugin
{
// Declaring our TextBlock that will display the news contents
private TextBlock _textBlock = new TextBlock
{
Text = "Starting news feed...",
FontSize = 20,
FontWeight = FontWeight.ExtraBold,
TextAlignment = TextAlignment.Center,
Padding = new Thickness(5, 5, 5, 5),
};
// _webSocketClientOptions allow us to define several settings
// such as the keep-alive interval of the WebSocket connection
private static WebSocketClientOptions _webSocketClientOptions = new WebSocketClientOptions
{
KeepAliveInterval = new TimeSpan(0, 1, 30),
UseDefaultCredentials = true,
};
// Passing our _webSocketClientOptions to the WebSocketClient
// constructor
private WebSocketClient _webSocketClient = new WebSocketClient(_webSocketClientOptions);
// This API is entirely fictional
private readonly Uri _targetUri = new Uri("ws://amazingnews.com:8000");
protected override void OnStart()
{
// Connecting to the API and sending the initial message
_webSocketClient.Connect(_targetUri);
_webSocketClient.Send("Hello");
// Declaring a custom handler for the TextReceived event
_webSocketClient.TextReceived += NewsReceived;
// Adding our TextBlock as a child of a custom
// AspBlock
var aspBlock = Asp.SymbolTab.AddBlock("News");
aspBlock.Height = 300;
aspBlock.Child = _textBlock;
}
protected override void OnStop()
{
// The WebSocketClient must be disposed of in OnStop,
// otherwise it will consume system resources
_webSocketClient.Close(WebSocketClientCloseStatus.NormalClosure);
}
private void NewsReceived(WebSocketClientTextReceivedEventArgs args)
{
// Updading the text inside the TextBlock on every
// piece of news received
if (args.Text.Length != 0)
{
_textBlock.Text = args.Text;
}
}
}
}
Pilihan penyesuaian ¶
Plugin ini menggabungkan tetapan WebSocket dengan elemen UI untuk menyampaikan kandungan teks secara langsung. Berikut adalah perincian komponen utamanya dan fungsi masing-masing:
| Parameter | Penerangan | Nilai yang mungkin |
|---|---|---|
Text | Memaparkan kandungan awal dalam blok teks. | Starting news feed… |
AddBlock | Menambah blok ke Panel Simbol Aktif. | asp.symboltab.addblock(news) |
_textBlock.Text | Mengemas kini blok teks dengan mesej WebSocket yang diterima. | args.text |
FontSize | Menetapkan saiz teks. | 16, 18, 20, dll. |
FontWeight | Menentukan ketebalan teks. | regular, bold, extrabold, dll. |
TextAlignment | Menjajarkan teks dalam blok teks. | left, centre, dll. |
Padding | Menentukan ruang di sekitar blok teks. | (5, 5, 5, 5), (8, 8, 8, 8), dll. |
aspBlock.Height | Menetapkan ketinggian blok tersuai dalam antara muka pengguna. | 300px, 350px, dll. |
_targetUri | Menyediakan titik akhir WebSocket untuk suapan data. | wss://marketdata.tradermade.com/feedadv |
KeepAliveInterval | Menentukan selang masa untuk ping pengekalan WebSocket. | (0, 1, 30) (jam, minit, saat) |
_webSocketClient.Send | Menghantar mesej langganan awal ke pelayan WebSocket. | {userkey:..., symbol:eurusd} |
UseDefaultCredentials | Mengkonfigurasi tetapan pengesahan untuk sambungan WebSocket. | true atau false |
Nota
Pastikan pelayan WebSocket menyokong protokol dan format mesej yang dijangkakan oleh pelaksanaan anda.
Kes penggunaan ¶
WebSocket Sample menyediakan cara yang berkuasa dan fleksibel untuk memperluaskan cTrader dengan suapan data masa nyata. Ia menyokong pelbagai jenis integrasi yang disesuaikan untuk keperluan dagangan yang berbeza. Di bawah ialah kes penggunaan praktikal yang menunjukkan bagaimana plugin ini boleh meningkatkan pengalaman dagangan.
| Kes penggunaan | Senario | Nilai |
|---|---|---|
| Siaran berita automatik | Lihat berita ekonomi masa nyata, tajuk utama yang menggerakkan pasaran dan peristiwa semasa secara langsung dalam platform. | Memastikan anda sentiasa dimaklumkan tentang berita semasa yang mungkin memberi kesan kepada pergerakan pasaran. |
| Data pertukaran kripto | Strim kemas kini dagangan secara langsung, penunjuk harga, perubahan buku pesanan atau makluman tentang turun naik untuk aset kripto. | Meningkatkan kesedaran masa nyata tentang keadaan pasaran kripto dan pergerakan harga yang mendadak. |
| Metrik volatiliti dan makroekonomi | Paparkan tahap turun naik masa nyata atau penunjuk aktiviti luar biasa untuk instrumen sasaran dalam Panel Simbol Aktif. | Menyokong kesedaran peringkat makro dan membantu mengenal pasti peluang dagangan semasa keadaan pasaran yang melampau. |
| Pemapar output model kuantitatif | Lihat output model dinamik (seperti peningkatan momentum pada EURUSD). | Menghubungkan analisis kuantitatif dengan keputusan dagangan dalam cara yang mudah dilihat. |
| Aliran isyarat dagangan luaran | Strim isyarat automatik daripada perkhidmatan luaran model pembelajaran mesin (ML) yang disalurkan melalui WebSocket. | Membolehkan penghantaran isyarat segera untuk pengguna yang mengikuti strategi algoritma atau bot pihak ketiga. |
Ringkasan ¶
Sampel plugin ini menunjukkan cara untuk mengintegrasikan kandungan luaran masa nyata ke dalam cTrader menggunakan sambungan WebSocket. Walaupun sampel ini menunjukkan suapan berita langsung dalam Panel Simbol Aktif, pendekatan yang sama menyokong isyarat, makluman, analitik dan banyak lagi.
Untuk butiran pembangunan lanjut, rujuk dokumentasi plugin kami.