Das WebSocket-Protokoll erlaubt 2 Arten von Requests: Streaming-Befehle (Live-Updates empfangen) und Trading-Daten abrufen (einen Request an den Server senden, um Informationen abzurufen).
Sie können die folgenden Eigenschaften in der XTB-Eigenschaft konfigurieren.
Wenn sich der Client erfolgreich mit den XTB-Servern verbindet, wird das Ereignis OnXTBConnect ausgelöst. Wenn beim Verbindungsversuch ein Fehler auftritt, wird das Ereignis OnXTBError mit den Fehlerdetails ausgelöst.
Nachdem das Ereignis OnXTBConnect ausgelöst wurde, können Sie beginnen, Nachrichten von den XTB-Servern zu senden und zu empfangen.
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;
| Methode | Beschreibung |
| Login | Um eine Aktion durchzuführen, muss die Client-Anwendung den Anmeldevorgang durchführen. Vor einem ordnungsgemäßen Anmeldevorgang ist keine Funktionalität verfügbar. Die Login-Methode wird automatisch aufgerufen, nachdem der Client eine Verbindung zum WebSocket-Server hergestellt hat und die User/Password-Werte gesetzt sind. |
| Logout |
Sie können die folgenden Kanäle abonnieren:
| Methode | Beschreibung |
| SubscribeBalance | Ermöglicht es, aktuelle Kontoindikatorwerte in Echtzeit abzurufen, sobald sie im System verfügbar sind. |
| SubscribeCandles | Abonniert und kündigt API-Chart-Candles. Das Intervall jeder Candle beträgt 1 Minute. Eine neue Candle trifft jede Minute ein. |
| SubscribeKeepAlive | Abonniert und kündigt 'keep alive'-Nachrichten ab. Eine neue 'keep alive'-Nachricht wird von der API alle 3 Sekunden gesendet. |
| SubscribeNews | Abonniert und kündigt das Abonnement von News. |
| SubscribeProfits | Abonniert und kündigt Abonnements für Profits. |
| SubscribeTickPrices |
Richtet ein Abonnement für Kursnotierungen ein und ermöglicht es Ihnen, die relevanten Informationen in Echtzeit zu erhalten, sobald sie im System verfügbar sind. Der Befehl getTickPrices kann mehrmals für dasselbe Symbol aufgerufen werden, aber es wird nur ein Abonnement für ein gegebenes Symbol erstellt. Bitte beachten Sie, dass bei mehreren verfügbaren Datensätzen die Reihenfolge, in der sie empfangen werden, nicht garantiert ist. |
| SubscribeTrades | Richtet ein Abonnement für Benutzer-Handelsstatusdaten ein und ermöglicht es Ihnen, die relevanten Informationen in Echtzeit zu erhalten, sobald sie im System verfügbar sind. Bitte beachten Sie, dass bei mehreren verfügbaren Datensätzen die Reihenfolge des Empfangs nicht garantiert ist. |
| SubscribeTradeStatus | Ermöglicht es, den Status für gesendete Handelsanfragen in Echtzeit abzurufen, sobald er im System verfügbar ist. Bitte beachten Sie, dass bei mehreren verfügbaren Datensätzen die Reihenfolge, in der sie empfangen werden, nicht garantiert ist |
| SubscribePing | Der regelmäßige Aufruf dieser Funktion reicht aus, um den internen Zustand aller Komponenten im System zu aktualisieren. Eine Streaming-Verbindung erzeugt nur einseitigen Netzwerkverkehr, wenn vom Client in der Sitzung kein Befehl gesendet wird. Es wird empfohlen, dass jede Anwendung, die keine anderen Befehle ausführt, diesen Befehl mindestens einmal alle 10 Minuten aufrufen sollte. |
Sie können die folgenden Anfragen senden:
| Methode | Beschreibung |
| GetAllSymbols | Gibt ein Array aller für den Benutzer verfügbaren Symbole zurück. |
| GetCalendar | Gibt den Kalender mit Marktereignissen zurück. |
| GetChartLastRequest | Bitte beachten Sie, dass diese Funktion normalerweise durch ihr Streaming-Äquivalent getCandles ersetzt werden kann, das die bevorzugte Methode zum Abrufen aktueller Candle-Daten ist. Gibt Chart-Informationen vom Startdatum bis zur aktuellen Zeit zurück. Wenn die gewählte Periode von CHART_LAST_INFO_RECORD größer als 1 Minute ist, kann sich die letzte von der API zurückgegebene Candle bis zum Ende der Periode ändern (die Candle wird jede Minute automatisch aktualisiert). |
| GetChartRangeRequest | Bitte beachten Sie, dass diese Funktion in der Regel durch ihre Streaming-Entsprechung getCandles ersetzt werden kann, die der bevorzugte Weg zum Abrufen aktueller Candle-Daten ist. Gibt Chart-Informationen mit Daten zwischen den angegebenen Start- und Enddaten zurück. |
| GetCommissionDef | Gibt die Berechnung von Provision und Wechselkurs zurück. Der Wert wird als erwarteter Wert berechnet und ist daher möglicherweise nicht perfekt genau. |
| GetCurrentUserData |
Gibt Informationen über die Kontowährung und den Konto-Hebel zurück. |
GetIbsHistory |
Gibt IB-Daten aus dem angegebenen Zeitbereich zurück. |
| GetMarginLevel | Bitte beachten Sie, dass diese Funktion normalerweise durch ihr Streaming-Äquivalent getBalance ersetzt werden kann, was die bevorzugte Methode zum Abrufen von Kontoindikatoren ist. Gibt verschiedene Kontoindikatoren zurück |
| GetMarginTrade | Gibt die erwartete Margin für ein bestimmtes Instrument und Volumen zurück. Der Wert wird als erwarteter Margin-Wert berechnet und ist daher möglicherweise nicht vollkommen genau. |
| GetNews | Bitte beachten Sie, dass diese Funktion in der Regel durch ihr Streaming-Äquivalent getNews ersetzt werden kann, das die bevorzugte Methode zum Abrufen von Nachrichtendaten ist. Gibt Nachrichten vom Handelsserver zurück, die innerhalb des angegebenen Zeitraums gesendet wurden. |
| GetProfitCalculation | Berechnet den geschätzten Gewinn für gegebene Deal-Daten. Sollte nur für rechnerähnliche Apps verwendet werden. Der Gewinn für eröffnete Transaktionen sollte aufgrund der höheren Genauigkeit der Server-Berechnung vom Server bezogen werden |
| GetServerTime | Gibt die aktuelle Zeit auf dem Handelsserver zurück |
| GetStepRules | Gibt eine Liste von Step-Rules für DMAs zurück |
| GetSymbol | Gibt Informationen über das für den Benutzer verfügbare Symbol zurück |
| GetTickPrices | Bitte beachten Sie, dass diese Funktion üblicherweise durch ihr Streaming-Äquivalent getTickPrices ersetzt werden kann, das die bevorzugte Methode zum Abrufen von Tick-Daten ist. Gibt ein Array aktueller Notierungen für die angegebenen Symbole zurück, es werden nur Notierungen zurückgegeben, die sich seit dem angegebenen Zeitstempel geändert haben. Der neue Zeitstempel aus der Ausgabe wird als Argument des nächsten Aufrufs dieses Befehls verwendet. |
| GetTradeRecords | Gibt ein Array von Trades zurück, die im orders-Argument aufgeführt sind |
| GetTrades | Bitte beachten Sie, dass diese Funktion in der Regel durch ihr Streaming-Äquivalent getTrades ersetzt werden kann, das der bevorzugte Weg zum Abrufen von Handelsdaten ist. Gibt ein Array der Trades des Benutzers zurück. |
| GetTradesHistory | Bitte beachten Sie, dass diese Funktion üblicherweise durch ihr Streaming-Äquivalent getTrades ersetzt werden kann, welches der bevorzugte Weg zum Abrufen von Handelsdaten ist. Gibt ein Array der Trades des Benutzers zurück, die innerhalb des angegebenen Zeitraums geschlossen wurden. |
| GetTradingHours | Gibt Quotes und Handelszeiten zurück. |
| GetVersion | Gibt die aktuelle API-Version zurück. |
| Ping | Der regelmäßige Aufruf dieser Funktion reicht aus, um den internen Zustand aller Komponenten im System zu aktualisieren. Es wird empfohlen, dass jede Anwendung, die keine anderen Befehle ausführt, diesen Befehl mindestens alle 10 Minuten aufruft. Bitte beachten Sie, dass das Streaming-Gegenstück dieser Funktion eine Kombination aus ping und getKeepAlive ist |
| TradeTransaction | Startet eine Handelstransaktion. tradeTransaction sendet die wichtigsten Transaktionsinformationen an den Server. |
| TradeTransactionStatus | Bitte beachten Sie, dass diese Funktion üblicherweise durch ihr Streaming-Äquivalent getTradeStatus ersetzt werden kann, das die bevorzugte Methode zum Abrufen von Transaktionsstatusdaten ist. Gibt den aktuellen Transaktionsstatus zurück. Zu jedem Zeitpunkt der Transaktionsverarbeitung kann der Client den Status der Transaktion auf der Serverseite prüfen. Dazu muss der Client die eindeutige Order aus dem tradeTransaction-Aufruf angeben. |