WebSocket protokolü 2 tür isteğe izin verir: Streaming komutları (canlı güncellemeler alın) ve Trading Verilerini Alma (bazı bilgileri almak için sunucuya bir istek gönderin).
XTB özelliğinde aşağıdaki özellikleri yapılandırabilirsiniz.
İstemci XTB sunucularına başarıyla bağlandığında, OnXTBConnect olayı tetiklenir. Bağlanmaya çalışırken herhangi bir hata olursa, OnXTBError olayı hata ayrıntılarıyla birlikte tetiklenir.
OnXTBConnect olayı tetiklendikten sonra, XTB sunucularından mesaj göndermeye ve almaya başlayabilirsiniz.
oClient := TsgcWebSocketClient.Create(nil);
oXTB := TsgcWSAPI_XTB.Create(nil);
oXTB.Client := oClient;
oXTB.XTB.User := 'user_0001';
oXTB.XTB.Password := 'secret_0001';
oClient.Active := True;
procedure OnXTBConnect(Sender: TObject; const aStreamSessionId: string);
begin
DoLog('#XTB Connected');
end;
procedure OnXTBError(Sender: TObject; aCode, aDescription, aRawMessage: string);
begin
DoLog('#error: ' + aDescription);
end;
| Yöntem | Açıklama |
| Login | Herhangi bir eylem gerçekleştirmek için istemci uygulamanın oturum açma işlemini gerçekleştirmesi gerekir. Düzgün oturum açma işleminden önce hiçbir işlev kullanılamaz. Oturum açma yöntemi, istemci websocket sunucusuna bağlandıktan ve User/Password değerleri ayarlandıktan sonra otomatik olarak çağrılır. |
| Logout |
Aşağıdaki kanallara abone olabilirsiniz:
| Yöntem | Açıklama |
| SubscribeBalance | Gerçek hesap göstergelerinin değerlerini, sistemde kullanılabilir hale gelir gelmez gerçek zamanlı olarak almayı sağlar. |
| SubscribeCandles | API grafik mumlarına abone olur ve abonelikten çıkar. Her mumun aralığı 1 dakikadır. Her dakika yeni bir mum gelir. |
| SubscribeKeepAlive | 'keep alive' mesajlarına abone olur ve aboneliği kaldırır. API tarafından her 3 saniyede bir yeni bir 'keep alive' mesajı gönderilir. |
| SubscribeNews | Haberlere abone olur ve aboneliği iptal eder. |
| SubscribeProfits | Kâr aboneliklerini başlatır ve sonlandırır. |
| SubscribeTickPrices |
Kotasyonlar için abonelik kurar ve sistemde mevcut olur olmaz ilgili bilgileri gerçek zamanlı olarak almanıza olanak tanır. getTickPrices komutu aynı sembol için birçok kez çağrılabilir, ancak belirli bir sembol için yalnızca bir abonelik oluşturulur. Lütfen birden çok kayıt mevcut olduğunda, bunların alınma sırasının garanti edilmediğini unutmayın. |
| SubscribeTrades | Kullanıcı işlem durumu verileri için abonelik kurar ve sistemde mevcut olur olmaz ilgili bilgileri gerçek zamanlı olarak almanıza olanak tanır. Birden fazla kayıt mevcut olduğunda, alındıkları sıranın garanti edilmediğini lütfen unutmayın. |
| SubscribeTradeStatus | Gönderilen işlem istekleri için durumu sistemde mevcut olur olmaz gerçek zamanlı olarak almanıza olanak tanır. Birden çok kayıt mevcut olduğunda, alındıkları sıranın garanti edilmediğine dikkat edin |
| SubscribePing | Bu fonksiyonu düzenli olarak çağırmak, sistemdeki tüm bileşenlerin dahili durumunu yenilemek için yeterlidir. Akış bağlantısı, oturumda istemci tarafından herhangi bir komut gönderilmediğinde yalnızca tek yönlü ağ trafiği oluşturur. Başka komutlar yürütmeyen herhangi bir uygulamanın bu komutu en az her 10 dakikada bir çağırması önerilir. |
Aşağıdaki İstekleri gönderebilirsiniz:
| Yöntem | Açıklama |
| GetAllSymbols | Kullanıcı için kullanılabilir tüm sembollerin dizisini döndürür. |
| GetCalendar | Market etkinlikleriyle takvimi döndürür. |
| GetChartLastRequest | Bu fonksiyonun genellikle, geçerli mum verilerini almanın tercih edilen yolu olan akış eşdeğeri getCandles ile değiştirilebileceğini lütfen unutmayın. Başlangıç tarihinden geçerli zamana kadar grafik bilgilerini döndürür. CHART_LAST_INFO_RECORD seçilen periyodu 1 dakikadan büyükse, API tarafından döndürülen son mum, periyodun sonuna kadar değişebilir (mum her dakika otomatik olarak güncellenir). |
| GetChartRangeRequest | Bu işlevin genellikle mevcut candle verilerini almanın tercih edilen yolu olan streaming eşdeğeri getCandles ile değiştirilebileceğini lütfen unutmayın. Verilen başlangıç ve bitiş tarihleri arasında veri içeren grafik bilgisini döndürür. |
| GetCommissionDef | Komisyon ve döviz kuru hesaplamasını döndürür. Değer beklenen değer olarak hesaplanır ve bu nedenle tam olarak doğru olmayabilir. |
| GetCurrentUserData |
Hesap para birimi ve hesap kaldıracı hakkında bilgi döndürür. |
GetIbsHistory |
Verilen zaman aralığından IB verilerini döndürür. |
| GetMarginLevel | Lütfen bu işlevin genellikle, hesap göstergelerini almanın tercih edilen yolu olan akış (streaming) eşdeğeri getBalance ile değiştirilebileceğini unutmayın. Çeşitli hesap göstergelerini döndürür |
| GetMarginTrade | Verilen enstrüman ve hacim için beklenen marjı döndürür. Değer, beklenen marj değeri olarak hesaplanır ve bu nedenle mükemmel derecede doğru olmayabilir. |
| GetNews | Bu fonksiyonun genellikle, haber verisi almanın tercih edilen yolu olan akış eşdeğeri getNews ile değiştirilebileceğini lütfen unutmayın. Belirtilen süre içinde gönderilen haberleri trading sunucusundan döndürür. |
| GetProfitCalculation | Verilen işlem verileri için tahmini kârı hesaplar. Yalnızca hesap makinesi benzeri uygulamalar için kullanılmalıdır. Açık işlemler için kâr, sunucu hesaplamasının daha yüksek hassasiyeti nedeniyle sunucudan alınmalıdır |
| GetServerTime | İşlem sunucusundaki geçerli saati döndürür |
| GetStepRules | DMA'lar için adım kuralları listesini döndürür |
| GetSymbol | Kullanıcı için kullanılabilir sembol hakkında bilgi döndürür |
| GetTickPrices | Bu işlevin genellikle, tik verilerini almanın tercih edilen yolu olan akış eşdeğeri getTickPrices ile değiştirilebileceğini lütfen unutmayın. Verilen semboller için geçerli kotasyonlar dizisini döndürür, yalnızca verilen zaman damgasından değişen kotasyonlar döndürülür. Çıktıdan elde edilen yeni zaman damgası, bu komutun bir sonraki çağrısının argümanı olarak kullanılır. |
| GetTradeRecords | orders argümanında listelenen işlemlerin dizisini döndürür |
| GetTrades | Bu fonksiyonun, işlem verilerini almanın tercih edilen yolu olan akış eşdeğeri getTrades ile genellikle değiştirilebileceğini lütfen unutmayın. Kullanıcının işlemlerinin dizisini döndürür. |
| GetTradesHistory | Lütfen bu işlevin genellikle, işlem verilerini almanın tercih edilen yolu olan akış eşdeğeri getTrades ile değiştirilebileceğini unutmayın. Belirtilen zaman dilimi içinde kapatılan kullanıcının işlemlerinin dizisini döndürür. |
| GetTradingHours | Kotasyonları ve işlem saatlerini döndürür. |
| GetVersion | Geçerli API sürümünü döndürür. |
| Ping | Bu işlevi düzenli olarak çağırmak, sistemdeki tüm bileşenlerin iç durumunu yenilemek için yeterlidir. Başka komut yürütmeyen herhangi bir uygulamanın bu komutu en az 10 dakikada bir çağırması önerilir. Bu işlevin akış karşılığının ping ve getKeepAlive kombinasyonu olduğunu unutmayın |
| TradeTransaction | Ticaret işlemini başlatır. tradeTransaction, ana işlem bilgilerini sunucuya gönderir. |
| TradeTransactionStatus | Bu işlevin genellikle, işlem durumu verilerini almanın tercih edilen yolu olan akış eşdeğeri getTradeStatus ile değiştirilebileceğini lütfen unutmayın. Geçerli işlem durumunu döndürür. İşlem işleme sırasında herhangi bir anda istemci, sunucu tarafındaki işlemin durumunu kontrol edebilir. Bunu yapmak için istemci, tradeTransaction çağrısından alınan benzersiz emri sağlamalıdır. |