Il protocollo WebSocket consente 2 tipi di richieste: Comandi in streaming (ricezione di aggiornamenti in tempo reale) e Recupero dati di trading (invio di una richiesta al server per recuperare alcune informazioni).
È possibile configurare le seguenti proprietà nella proprietà XTB.
Quando il client si connette con successo ai server XTB, viene attivato l'evento OnXTBConnect. Se si verifica un errore durante il tentativo di connessione, verrà attivato l'evento OnXTBError con i dettagli dell'errore.
Dopo che l'evento OnXTBConnect viene generato, è possibile iniziare a inviare e ricevere messaggi dai server XTB.
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;
| Method | Description |
| Login | Per eseguire qualsiasi azione, l'applicazione client deve effettuare il processo di login. Nessuna funzionalità è disponibile prima di un corretto processo di login. Il metodo di login viene chiamato automaticamente dopo che il client si connette al server WebSocket e i valori User/Password sono impostati. |
| Logout |
È possibile sottoscriversi ai seguenti canali:
| Method | Description |
| SubscribeBalance | Consente di ottenere i valori effettivi degli indicatori dell'account in tempo reale, non appena disponibili nel sistema. |
| SubscribeCandles | Sottoscrive e annulla la sottoscrizione ai grafici candela dell'API. L'intervallo di ogni candela è di 1 minuto. Una nuova candela arriva ogni minuto. |
| SubscribeKeepAlive | Sottoscrive e annulla la sottoscrizione ai messaggi 'keep alive'. Un nuovo messaggio 'keep alive' viene inviato dall'API ogni 3 secondi. |
| SubscribeNews | Sottoscrive e annulla la sottoscrizione alle notizie. |
| SubscribeProfits | Sottoscrive e annulla la sottoscrizione ai profitti. |
| SubscribeTickPrices |
Stabilisce una sottoscrizione per le quotazioni e consente di ottenere le informazioni pertinenti in tempo reale, non appena disponibili nel sistema. Il comando getTickPrices può essere richiamato più volte per lo stesso simbolo, ma verrà creata una sola sottoscrizione per un determinato simbolo. Si tenga presente che quando sono disponibili più record, l'ordine in cui vengono ricevuti non è garantito. |
| SubscribeTrades | Stabilisce una sottoscrizione per i dati sullo stato degli scambi dell'utente e consente di ottenere le informazioni pertinenti in tempo reale, non appena disponibili nel sistema. Si prega di notare che quando sono disponibili più record, l'ordine in cui vengono ricevuti non è garantito. |
| SubscribeTradeStatus | Consente di ottenere lo stato delle richieste di trade inviate in tempo reale, non appena disponibile nel sistema. Si tenga presente che quando sono disponibili più record, l'ordine in cui vengono ricevuti non è garantito |
| SubscribePing | Chiamare regolarmente questa funzione è sufficiente per aggiornare lo stato interno di tutti i componenti nel sistema. La connessione in streaming, quando nessun comando viene inviato dal client nella sessione, genera traffico di rete solo in una direzione. Si raccomanda che qualsiasi applicazione che non esegue altri comandi chiami questo comando almeno una volta ogni 10 minuti. |
Può inviare le seguenti Request:
| Method | Description |
| GetAllSymbols | Restituisce un array di tutti i simboli disponibili per l'utente. |
| GetCalendar | Restituisce il calendario con gli eventi di mercato. |
| GetChartLastRequest | Si noti che questa funzione può di solito essere sostituita dal suo equivalente in streaming getCandles, che è il metodo preferito per recuperare i dati delle candele correnti. Restituisce le informazioni del grafico, dalla data di inizio fino all'ora corrente. Se il periodo scelto di CHART_LAST_INFO_RECORD è superiore a 1 minuto, l'ultima candela restituita dall'API può cambiare fino alla fine del periodo (la candela viene aggiornata automaticamente ogni minuto). |
| GetChartRangeRequest | Si noti che questa funzione può solitamente essere sostituita dal suo equivalente in streaming getCandles, che è il modo preferito per recuperare i dati delle candele correnti. Restituisce le informazioni del grafico con i dati compresi tra le date di inizio e fine specificate. |
| GetCommissionDef | Restituisce il calcolo della commissione e del tasso di cambio. Il valore è calcolato come valore atteso e pertanto potrebbe non essere perfettamente accurato. |
| GetCurrentUserData |
Restituisce informazioni sulla valuta e la leva dell'account. |
GetIbsHistory |
Restituisce i dati IB dell'intervallo di tempo specificato. |
| GetMarginLevel | Si noti che questa funzione può essere solitamente sostituita dal suo equivalente in streaming getBalance, che è il metodo preferito per recuperare gli indicatori dell'account. Restituisce vari indicatori dell'account |
| GetMarginTrade | Restituisce il margine atteso per un determinato strumento e volume. Il valore è calcolato come valore di margine atteso e pertanto potrebbe non essere perfettamente accurato. |
| GetNews | Si noti che questa funzione può solitamente essere sostituita dall'equivalente in streaming getNews, che è il metodo preferito per recuperare dati sulle notizie. Restituisce le notizie dal server di trading che sono state inviate nell'arco di tempo specificato. |
| GetProfitCalculation | Calcola il profitto stimato per i dati di un'operazione. Da utilizzare solo per applicazioni di tipo calcolatrice. Il profitto per le transazioni aperte deve essere ottenuto dal server, per via della maggiore precisione del calcolo lato server. |
| GetServerTime | Restituisce l'orario corrente sul server di trading |
| GetStepRules | Restituisce un elenco di regole di step per le DMA |
| GetSymbol | Restituisce informazioni sul simbolo disponibile per l'utente |
| GetTickPrices | Si noti che questa funzione può di solito essere sostituita dal suo equivalente in streaming getTickPrices, che è il modo preferito per recuperare i dati di tick. Restituisce un array di quotazioni correnti per i simboli indicati; vengono restituite solo le quotazioni modificate rispetto al timestamp indicato. Il nuovo timestamp ottenuto dall'output verrà utilizzato come argomento della chiamata successiva a questo comando. |
| GetTradeRecords | Restituisce un array di trade elencati nell'argomento orders |
| GetTrades | Si noti che questa funzione può solitamente essere sostituita dal suo equivalente in streaming getTrades, che è il metodo preferito per recuperare i dati sulle transazioni. Restituisce un array delle transazioni dell'utente. |
| GetTradesHistory | Si noti che questa funzione può solitamente essere sostituita dal suo equivalente in streaming getTrades, che è il metodo preferito per recuperare i dati delle transazioni. Restituisce un array delle transazioni dell'utente che sono state chiuse nel periodo di tempo specificato. |
| GetTradingHours | Restituisce quotazioni e orari di trading. |
| GetVersion | Restituisce la versione corrente dell'API. |
| Ping | Chiamare regolarmente questa funzione è sufficiente per aggiornare lo stato interno di tutti i componenti del sistema. Si raccomanda che qualsiasi applicazione che non esegua altri comandi chiami questo comando almeno una volta ogni 10 minuti. Si noti che la controparte in streaming di questa funzione è una combinazione di ping e getKeepAlive |
| TradeTransaction | Avvia la transazione commerciale. tradeTransaction invia le informazioni principali della transazione al server. |
| TradeTransactionStatus | Si noti che questa funzione può solitamente essere sostituita dal suo equivalente in streaming getTradeStatus, che è il metodo preferito per recuperare i dati sullo stato delle transazioni. Restituisce lo stato corrente della transazione. In qualsiasi momento durante l'elaborazione della transazione, il client può verificare lo stato della transazione lato server. A tal fine, il client deve fornire l'ordine univoco ottenuto dall'invocazione di tradeTransaction. |