API XTB

XTB

 

API supportate

 

Proprietà

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.

 

Connessione

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;

 

Comandi di connessione

 

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  

 

 

Comandi di streaming

È 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.

 

 

Recupero dei Dati di Trading

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.