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
- Autenticazione
- Metodi di market data
- Metodi account
- Metodi di trading
- Sottoscrizioni di streaming
- Metodi di utilità
- Per iniziare — Esempio di codice
- Riferimento di configurazione
- Suggerimenti e note
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). |
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.
