Aggiornamento API XTB sgcWebSockets

· Funzionalità
Integrazione API di trading XTB xStation5 in Delphi

XTB è una delle principali piattaforme europee di trading online, che offre accesso a forex, indici, materie prime, azioni e criptovalute attraverso la sua piattaforma xStation5. Il TsgcWSAPI_XTB componente fornisce un'integrazione Delphi completa con l'API xStation5 su una singola connessione WebSocket — coprendo autenticazione, recupero dati di mercato, gestione dell'account, esecuzione di trade e sottoscrizioni di streaming in tempo reale. Questo articolo illustra ogni metodo disponibile e mostra come iniziare in pochi minuti.

Indice

Panoramica dell'architettura

A differenza di molti crypto exchanges che dividono le funzionalità tra endpoint REST e canali WebSocket, l'API XTB xStation5 opera interamente su una singola connessione WebSocket. Ogni richiesta — dal recuperare un elenco di symbol al piazzare un trade — viene inviata e ricevuta come messaggio JSON sullo stesso socket. Un secondo socket di streaming viene gestito automaticamente per le sottoscrizioni in tempo reale (balance, candles, ticks, trades, e more).

The TsgcWSAPI_XTB componente astrae tutto questo per te. Devi semplicemente assegnare a TsgcWebSocketClient, configura le tue credenziali, attiva il client, e chiamare metodi di alto livello come GetAllSymbols o SubscribeTickPrices.

Autenticazione

Authentication è gestito automaticamente quando il WebSocket client connects, utilizzando le credenziali che imposti nel XTB gruppo di proprietà. Puoi anche chiamare questi metodi esplicitamente se necessario.

Metodo Descrizione
Login Autentica con il xStation5 server utilizzando UserId e Password. Chiamato automaticamente alla connessione.
Logout Termina il authenticated session e disconnects da il server.

Metodi di market data

These metodi retrieve instrument information, pricing, charts, news, e trading hours da il xStation5 server. Tutte le chiamate sono request/response sulla connessione WebSocket.

Metodo Descrizione
GetAllSymbols Restituisce a list di tutti instruments disponibile su il platform.
GetSymbol Restituisce detailed information per un specific symbol.
GetTickPrices Restituisce il corrente tick prices (bid/ask) per il specificato symbols.
GetTradingHours Restituisce trading hours per il specificato instruments.
GetCalendar Restituisce il economic calendar di upcoming events.
GetChartLastRequest Restituisce chart candle dati starting da a specificato timestamp a il present.
GetChartRangeRequest Restituisce chart candle dati per un specific date range.
GetNews Restituisce news topics da il XTB trading platform.
GetStepRules Restituisce step rules per volume calculations.
GetServerTime Restituisce il corrente server time.
GetVersion Restituisce l'API versione number.

Metodi account

Account metodi let tu inspect il tuo utente profile, margin levels, e profit calculations senza leaving il WebSocket session.

Metodo Descrizione
GetCurrentUserData Restituisce information riguardo a il attualmente logged-in utente (name, currency, leverage, etc.).
GetMarginLevel Restituisce il corrente account margin level, equity, e balance.
GetMarginTrade Calcola il expected margin per un specificato instrument e volume.
GetIbsHistory Restituisce il Introducing Broker (IB) commission history.
GetProfitCalculation Calcola il estimated profit per un specificato trade scenario.

Metodi di trading

These metodi cover everything da lettura apre e historical positions al piazzamento e monitoraggio di transazioni di trade.

Metodo Descrizione
GetTrades Restituisce a list di attualmente apre trades. Pass True a include solo aperto positions.
GetTradesHistory Restituisce chiuso trades all'interno di a specificato time range.
GetTradeRecords Restituisce trade record per specificato order numbers.
TradeTransaction Esegue a trade transaction (open, close, modify, o eliminare an order).
TradeTransactionStatus Verifica il corrente status di un previously submitted trade transaction.

Sottoscrizioni di streaming

Streaming metodi apre real-time dati canali su un dedicated streaming connection. Ogni sottoscrizione ha un metodo di unsubscribe corrispondente per interrompere la ricezione degli aggiornamenti.

Sottoscrivi Disiscriviti Descrizione
SubscribeBalance UnSubscribeBalance In tempo reale balance e equity updates.
SubscribeCandles UnSubscribeCandles In tempo reale candle/chart updates per un symbol.
SubscribeKeepAlive UnSubscribeKeepAlive Periodici keep-alive heartbeat messages.
SubscribeNews UnSubscribeNews In tempo reale news feed da il platform.
SubscribeProfits UnSubscribeProfits In tempo reale profit/loss updates su apre positions.
SubscribeTickPrices UnSubscribeTickPrices In tempo reale bid/ask tick prices per un symbol.
SubscribeTrades UnSubscribeTrades In tempo reale updates quando trades sono opened, closed, o modified.
SubscribeTradeStatus UnSubscribeTradeStatus In tempo reale trade transaction status changes.
SubscribePing Sottoscrive a streaming ping a keep la connessione alive (no unsubscribe needed).
Note: Le sottoscrizioni di streaming richiedono prima un login riuscito. L'ID sessione di streaming viene ottenuto automaticamente durante l'autenticazione.

Metodi di utilità

Metodo Descrizione
Ping Invia a ping a il server a verify la connessione è alive e prevenire timeouts.

Getting Started — Esempio di codice

The following esempio crea a connessione a il XTB demo server, autentica, recupera symbol e dati utente, sottoscrive prezzi tick in tempo reale e aggiornamenti del balance, e recupera i trade aperti.

var
  oClient: TsgcWebSocketClient;
  oXTB: TsgcWSAPI_XTB;
begin
  // Create il WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  // Create il XTB API component
  oXTB := TsgcWSAPI_XTB.Create(nil);
  oXTB.Client := oClient;
  // Configura credentials
  oXTB.XTB.UserId := 'your_user_id';
  oXTB.XTB.Password := 'your_password';
  oXTB.XTB.Demo := True;
  // Connect e authenticate
  oClient.Active := True;
  // Dopo il login evento fires, chiama API methods:
  oXTB.GetAllSymbols;
  oXTB.GetCurrentUserData;
  // Subscribe to real-time tick prices per EURUSD
  oXTB.SubscribeTickPrices('EURUSD', 0, 0);
  // Subscribe to balance updates
  oXTB.SubscribeBalance;
  // Get tutti apre trades
  oXTB.GetTrades(False);
end;

Handling Responses

All risposte arrive asynchronously attraverso il component's events. Assegna gli handler a eventi come OnXTBResponse e OnXTBStreamingResponse per elaborare i dati JSON restituiti. Ogni risposta include un identificatore di comando, quindi puoi instradarla alla logica di elaborazione appropriata.

Riferimento di configurazione

All configuration è grouped under il XTB proprietà del TsgcWSAPI_XTB componente.

Proprietà Tipo Descrizione
XTB.UserId String L'ID utente del tuo account XTB.
XTB.Password String La password del tuo account XTB.
XTB.Demo Boolean Imposta a True a connetti a la demo server; False per il live production server.

Suggerimenti e note

Demo vs. Live

Always develop e test con XTB.Demo := True. Il server demo utilizza la stessa superficie API della produzione ma si connette a un ambiente sandbox con fondi virtuali. Switch a False solo quando sei ready per live trading.

Connection Keep-Alive

The XTB server disconnects idle sessions dopo a timeout period. Utilizza SubscribePing o chiama Ping periodically a keep la connessione alive. Il SubscribeKeepAlive metodo su il streaming connessione serves a similar purpose.

Single Connessione Architecture

A differenza di exchanges con separate REST endpoints, XTB instrada ogni comando tramite messaggi WebSocket. Questo semplifica l'architettura del componente: ti serve solo a TsgcWebSocketClient e a TsgcWSAPI_XTB — non sono richiesti componenti HTTP aggiuntivi.

Error Handling

If a richiesta fails, il server restituisce un JSON errore risposta con an errore codice e description. Gestire questi in il tuo risposta evento da verifica il status field. I problemi comuni includono credenziali non valide, sessioni scadute e rate-limiting su richieste eccessive.

Rate limits: L'API XTB applica limiti di richieste al secondo. Evita di inviare burst di richieste in loop stretti. Distanzia le tue chiamate o utilizza le sottoscrizioni di streaming per dati che si aggiornano frequentemente.