XTB ist eine der führenden Online-Trading-Plattformen Europas und bietet über die xStation5-Plattform Zugang zu Forex, Indizes, Rohstoffen, Aktien und Kryptowährungen. Die Komponente TsgcWSAPI_XTB bietet eine vollständige Delphi-Integration mit der xStation5 API über eine einzige WebSocket-Verbindung — und deckt Authentifizierung, Abruf von Marktdaten, Kontoverwaltung, Trade-Ausführung und Echtzeit-Streaming-Abonnements ab. Dieser Artikel führt durch jede verfügbare Methode und zeigt, wie du in wenigen Minuten loslegen kannst.
Inhaltsverzeichnis
- Architekturüberblick
- Authentifizierung
- Marktdaten-Methoden
- Konto-Methoden
- Trading-Methoden
- Streaming-Abonnements
- Utility-Methoden
- Erste Schritte — Codebeispiel
- Konfigurationsreferenz
- Tipps und Hinweise
Architekturüberblick
Anders als viele Krypto-Börsen, die Funktionalität auf REST-Endpunkte und WebSocket-Channels aufteilen, läuft die XTB xStation5 API vollständig über eine einzige WebSocket-Verbindung. Jede Anfrage — vom Abrufen einer Symbolliste bis zum Platzieren eines Trades — wird als JSON-Nachricht über denselben Socket gesendet und empfangen. Eine zweite Streaming-Verbindung wird automatisch für Echtzeit-Abonnements (Balance, Candles, Ticks, Trades und mehr) verwaltet.
Die Komponente TsgcWSAPI_XTB abstrahiert all das für dich. Du weist einfach einen TsgcWebSocketClient zu, konfigurierst deine Anmeldedaten, aktivierst den Client und rufst High-Level-Methoden wie GetAllSymbols oder SubscribeTickPrices auf.
Authentifizierung
Die Authentifizierung wird automatisch durchgeführt, wenn sich der WebSocket-Client verbindet, und nutzt die Anmeldedaten, die du in der Eigenschaftsgruppe XTB gesetzt hast. Bei Bedarf kannst du diese Methoden auch explizit aufrufen.
| Methode | Beschreibung |
|---|---|
Login |
Authentifiziert sich beim xStation5-Server mit UserId und Password. Wird beim Verbinden automatisch aufgerufen. |
Logout |
Beendet die authentifizierte Sitzung und trennt die Verbindung zum Server. |
Marktdaten-Methoden
Diese Methoden rufen Instrumenteninformationen, Preise, Charts, News und Handelszeiten vom xStation5-Server ab. Alle Aufrufe sind Request/Response über die WebSocket-Verbindung.
| Methode | Beschreibung |
|---|---|
GetAllSymbols |
Liefert eine Liste aller auf der Plattform verfügbaren Instrumente. |
GetSymbol |
Liefert detaillierte Informationen zu einem bestimmten Symbol. |
GetTickPrices |
Liefert die aktuellen Tick-Preise (Bid/Ask) für die angegebenen Symbole. |
GetTradingHours |
Liefert die Handelszeiten für die angegebenen Instrumente. |
GetCalendar |
Liefert den Wirtschaftskalender mit anstehenden Ereignissen. |
GetChartLastRequest |
Liefert Chart-Candle-Daten ab einem angegebenen Zeitstempel bis zur Gegenwart. |
GetChartRangeRequest |
Liefert Chart-Candle-Daten für einen bestimmten Zeitraum. |
GetNews |
Liefert Nachrichtenthemen von der XTB-Handelsplattform. |
GetStepRules |
Liefert Schrittregeln für Volumenberechnungen. |
GetServerTime |
Liefert die aktuelle Serverzeit. |
GetVersion |
Liefert die API-Versionsnummer. |
Konto-Methoden
Konto-Methoden erlauben es dir, dein Benutzerprofil, Margin-Stände und Gewinnberechnungen einzusehen, ohne die WebSocket-Sitzung zu verlassen.
| Methode | Beschreibung |
|---|---|
GetCurrentUserData |
Liefert Informationen über den aktuell angemeldeten Benutzer (Name, Währung, Hebel etc.). |
GetMarginLevel |
Liefert den aktuellen Margin-Level, das Equity und den Kontostand. |
GetMarginTrade |
Berechnet die erwartete Margin für ein bestimmtes Instrument und Volumen. |
GetIbsHistory |
Liefert die Historie der Introducing-Broker-(IB-)Provisionen. |
GetProfitCalculation |
Berechnet den geschätzten Gewinn für ein bestimmtes Trade-Szenario. |
Trading-Methoden
Diese Methoden decken alles ab, vom Auslesen offener und historischer Positionen bis hin zum Platzieren und Überwachen von Trade-Transaktionen.
| Methode | Beschreibung |
|---|---|
GetTrades |
Liefert eine Liste der aktuell offenen Trades. Übergib True, um nur eröffnete Positionen einzubeziehen. |
GetTradesHistory |
Liefert geschlossene Trades innerhalb eines angegebenen Zeitraums. |
GetTradeRecords |
Liefert Trade-Datensätze für angegebene Order-Nummern. |
TradeTransaction |
Führt eine Trade-Transaktion aus (Order öffnen, schließen, ändern oder löschen). |
TradeTransactionStatus |
Prüft den aktuellen Status einer zuvor übermittelten Trade-Transaktion. |
Streaming-Abonnements
Streaming-Methoden öffnen Echtzeit-Datenkanäle über eine dedizierte Streaming-Verbindung. Jedes Abonnement hat eine entsprechende Unsubscribe-Methode, um den Empfang von Updates zu beenden.
| Subscribe | Unsubscribe | Beschreibung |
|---|---|---|
SubscribeBalance |
UnSubscribeBalance |
Echtzeit-Updates zu Saldo und Equity. |
SubscribeCandles |
UnSubscribeCandles |
Live-Candle-/Chart-Updates für ein Symbol. |
SubscribeKeepAlive |
UnSubscribeKeepAlive |
Periodische Keep-Alive-Heartbeat-Nachrichten. |
SubscribeNews |
UnSubscribeNews |
Echtzeit-Newsfeed der Plattform. |
SubscribeProfits |
UnSubscribeProfits |
Echtzeit-Gewinn/Verlust-Updates für offene Positionen. |
SubscribeTickPrices |
UnSubscribeTickPrices |
Live-Bid/Ask-Tick-Preise für ein Symbol. |
SubscribeTrades |
UnSubscribeTrades |
Echtzeit-Updates, wenn Trades eröffnet, geschlossen oder geändert werden. |
SubscribeTradeStatus |
UnSubscribeTradeStatus |
Echtzeit-Statusänderungen von Trade-Transaktionen. |
SubscribePing |
— | Abonniert Streaming-Pings, um die Verbindung aktiv zu halten (kein Unsubscribe nötig). |
Utility-Methoden
| Methode | Beschreibung |
|---|---|
Ping |
Sendet einen Ping an den Server, um zu prüfen, ob die Verbindung aktiv ist, und Timeouts zu vermeiden. |
Erste Schritte — Codebeispiel
Das folgende Beispiel stellt eine Verbindung zum XTB-Demo-Server her, authentifiziert sich, ruft Symbole und Benutzerdaten ab, abonniert Live-Tick-Preise und Saldo-Updates und holt die offenen Trades.
var
oClient: TsgcWebSocketClient;
oXTB: TsgcWSAPI_XTB;
begin
// Create the WebSocket client
oClient := TsgcWebSocketClient.Create(nil);
// Create the XTB API component
oXTB := TsgcWSAPI_XTB.Create(nil);
oXTB.Client := oClient;
// Configure credentials
oXTB.XTB.UserId := 'your_user_id';
oXTB.XTB.Password := 'your_password';
oXTB.XTB.Demo := True;
// Connect and authenticate
oClient.Active := True;
// After the login event fires, call API methods:
oXTB.GetAllSymbols;
oXTB.GetCurrentUserData;
// Subscribe to real-time tick prices for EURUSD
oXTB.SubscribeTickPrices('EURUSD', 0, 0);
// Subscribe to balance updates
oXTB.SubscribeBalance;
// Get all open trades
oXTB.GetTrades(False);
end;
Antworten verarbeiten
Alle Antworten kommen asynchron über die Ereignisse der Komponente an. Weise Handler für Ereignisse wie OnXTBResponse und OnXTBStreamingResponse zu, um die zurückgegebenen JSON-Daten zu verarbeiten. Jede Antwort enthält einen Befehls-Identifier, sodass du sie an die passende Verarbeitungslogik weiterleiten kannst.
Konfigurationsreferenz
Die gesamte Konfiguration ist in der Eigenschaft XTB der Komponente TsgcWSAPI_XTB gruppiert.
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
XTB.UserId |
String | Deine XTB-Konto-Benutzer-ID. |
XTB.Password |
String | Dein XTB-Konto-Passwort. |
XTB.Demo |
Boolean | Auf True setzen, um sich mit dem Demo-Server zu verbinden; False für den Live-Produktionsserver. |
Tipps und Hinweise
Demo vs. Live
Entwickle und teste immer mit XTB.Demo := True. Der Demo-Server verwendet dieselbe API-Oberfläche wie die Produktion, verbindet sich aber mit einer Sandbox-Umgebung mit virtuellem Guthaben. Wechsle erst dann zu False, wenn du bereit für den Live-Handel bist.
Verbindung aufrechterhalten
Der XTB-Server trennt inaktive Sitzungen nach einem Timeout. Nutze SubscribePing oder rufe Ping regelmäßig auf, um die Verbindung aktiv zu halten. Die Methode SubscribeKeepAlive auf der Streaming-Verbindung erfüllt einen ähnlichen Zweck.
Single-Connection-Architektur
Anders als bei Börsen mit separaten REST-Endpunkten leitet XTB jeden Befehl über WebSocket-Nachrichten. Das vereinfacht die Komponentenarchitektur: Du benötigst nur einen TsgcWebSocketClient und einen TsgcWSAPI_XTB — keine zusätzlichen HTTP-Komponenten erforderlich.
Fehlerbehandlung
Schlägt eine Anfrage fehl, gibt der Server eine JSON-Fehlerantwort mit Fehlercode und Beschreibung zurück. Behandle diese in deinem Response-Ereignis, indem du das Feld status prüfst. Häufige Probleme sind ungültige Anmeldedaten, abgelaufene Sitzungen und Rate-Limiting bei zu vielen Anfragen.
