API XTB

XTB

 

Obsługiwane API

 

Właściwości

Protokół WebSocket umożliwia 2 typy żądań: polecenia strumieniowe (odbieranie aktualizacji na żywo) oraz pobieranie danych transakcyjnych (wysyłanie żądania do serwera w celu uzyskania określonych informacji).

 

W właściwości XTB można skonfigurować następujące parametry.

 

Połączenie

Gdy klient pomyślnie połączy się z serwerami XTB, wywoływane jest zdarzenie OnXTBConnect. Jeśli podczas próby połączenia wystąpi błąd, zdarzenie OnXTBError zostanie wywołane ze szczegółami błędu.

Po wywołaniu zdarzenia OnXTBConnect można rozpocząć wysyłanie i odbieranie wiadomości z serwerów 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;

 

Polecenia połączenia

 

Metoda Opis
Login Aby wykonać jakąkolwiek operację, aplikacja kliencka musi przeprowadzić proces logowania. Żadna funkcjonalność nie jest dostępna przed prawidłowym zalogowaniem. Metoda logowania jest wywoływana automatycznie po połączeniu klienta z serwerem WebSocket, jeśli wartości User/Password są ustawione.
Wylogowanie  

 

 

Polecenia strumieniowania

Można subskrybować następujące kanały:

 

Metoda Opis
SubscribeBalance Umożliwia pobieranie aktualnych wartości wskaźników konta w czasie rzeczywistym, gdy tylko staną się dostępne w systemie.
SubscribeCandles Subskrybuje i anuluje subskrypcję świec wykresu API. Interwał każdej świecy wynosi 1 minutę. Nowa świeca pojawia się co minutę.
SubscribeKeepAlive Subskrybuje i anuluje subskrypcję wiadomości „keep alive". Nowa wiadomość „keep alive" jest wysyłana przez API co 3 sekundy.
SubscribeNews Subskrybuje i anuluje subskrypcję wiadomości.
SubscribeProfits Subskrybuje zyski i anuluje subskrypcję zysków.
SubscribeTickPrices

Ustanawia subskrypcję kwotowań i umożliwia uzyskiwanie odpowiednich informacji w czasie rzeczywistym, natychmiast po ich pojawieniu się w systemie. Polecenie getTickPrices można wywoływać wielokrotnie dla tego samego symbolu, jednak dla danego symbolu zostanie utworzona tylko jedna subskrypcja. Należy mieć na uwadze, że gdy dostępnych jest wiele rekordów, kolejność ich otrzymywania nie jest gwarantowana.

SubscribeTrades Ustanawia subskrypcję danych statusu transakcji użytkownika i umożliwia uzyskanie odpowiednich informacji w czasie rzeczywistym, gdy tylko staną się dostępne w systemie. Należy pamiętać, że gdy dostępnych jest wiele rekordów, kolejność ich odbierania nie jest gwarantowana.
SubscribeTradeStatus Umożliwia pobieranie statusu wysłanych żądań handlowych w czasie rzeczywistym, natychmiast gdy jest dostępny w systemie. Należy pamiętać, że gdy dostępnych jest wiele rekordów, kolejność ich odbierania nie jest gwarantowana
SubscribePing Regularne wywoływanie tej funkcji wystarczy do odświeżenia wewnętrznego stanu wszystkich komponentów w systemie. Połączenie strumieniowe, gdy klient nie wysyła żadnego polecenia w trakcie sesji, generuje ruch sieciowy tylko w jednym kierunku. Zaleca się, aby każda aplikacja, która nie wykonuje innych poleceń, wywoływała to polecenie co najmniej raz na 10 minut.

 

 

Pobieranie danych handlowych

Można wysyłać następujące żądania:

 

Metoda Opis
GetAllSymbols Zwraca tablicę wszystkich symboli dostępnych dla użytkownika.
GetCalendar Zwraca kalendarz z wydarzeniami rynkowymi.
GetChartLastRequest Należy pamiętać, że ta funkcja może być zazwyczaj zastąpiona jej odpowiednikiem strumieniowym getCandles, który jest zalecanym sposobem pobierania bieżących danych świecowych. Zwraca informacje o wykresie, od daty początkowej do bieżącego czasu. Jeśli wybrany okres CHART_LAST_INFO_RECORD jest większy niż 1 minuta, ostatnia świeca zwrócona przez API może zmieniać się do końca okresu (świeca jest automatycznie aktualizowana co minutę).
GetChartRangeRequest Należy pamiętać, że tę funkcję można zazwyczaj zastąpić jej odpowiednikiem strumieniowym getCandles, który jest preferowanym sposobem pobierania bieżących danych świecowych. Zwraca informacje o wykresie z danymi między podanymi datami początkowymi i końcowymi.
GetCommissionDef Zwraca obliczenie prowizji i kursu wymiany. Wartość jest obliczana jako wartość oczekiwana i dlatego może nie być w pełni dokładna.
GetCurrentUserData

Zwraca informacje o walucie konta oraz dźwigni finansowej konta.

GetIbsHistory

Zwraca dane IB z podanego zakresu czasowego.
GetMarginLevel Należy pamiętać, że funkcja ta może być zwykle zastąpiona przez odpowiednik strumieniowy getBalance, który jest preferowanym sposobem pobierania wskaźników konta. Zwraca różne wskaźniki konta.
GetMarginTrade Zwraca oczekiwany depozyt zabezpieczający dla danego instrumentu i wolumenu. Wartość jest obliczana jako oczekiwana wartość depozytu i dlatego może nie być w pełni dokładna.
GetNews Należy pamiętać, że tę funkcję można zazwyczaj zastąpić jej odpowiednikiem strumieniowym getNews, który jest preferowanym sposobem pobierania danych o wiadomościach. Zwraca wiadomości z serwera handlowego, które zostały wysłane w określonym przedziale czasowym.
GetProfitCalculation Oblicza szacowany zysk dla podanych danych transakcji. Należy stosować wyłącznie w aplikacjach typu kalkulator. Zysk dla otwartych transakcji powinien być pobierany z serwera ze względu na większą precyzję obliczeń serwerowych.
GetServerTime Zwraca bieżący czas na serwerze handlowym
GetStepRules Zwraca listę reguł krokowych dla DMA
GetSymbol Zwraca informacje o symbolu dostępnym dla użytkownika
GetTickPrices Należy pamiętać, że tę funkcję można zazwyczaj zastąpić jej odpowiednikiem strumieniowym getTickPrices, który jest preferowanym sposobem pobierania danych o transakcjach. Zwraca tablicę bieżących kwotowań dla podanych symboli — zwracane są wyłącznie kwotowania, które zmieniły się od podanego znacznika czasu. Nowy znacznik czasu uzyskany z odpowiedzi będzie użyty jako argument kolejnego wywołania tego polecenia.
GetTradeRecords Zwraca tablicę transakcji wymienionych w argumencie orders
GetTrades Należy pamiętać, że ta funkcja może być zazwyczaj zastąpiona przez jej odpowiednik strumieniowy getTrades, który jest preferowanym sposobem pobierania danych o transakcjach. Zwraca tablicę transakcji użytkownika.
GetTradesHistory Należy pamiętać, że tę funkcję można zwykle zastąpić jej odpowiednikiem strumieniowym getTrades, który jest preferowanym sposobem pobierania danych o transakcjach. Zwraca tablicę transakcji użytkownika zamkniętych w określonym przedziale czasu.
GetTradingHours Zwraca notowania i godziny handlu.
GetVersion Zwraca bieżącą wersję API.
Ping Regularne wywoływanie tej funkcji jest wystarczające do odświeżenia wewnętrznego stanu wszystkich komponentów w systemie. Zaleca się, aby każda aplikacja, która nie wykonuje innych poleceń, wywoływała to polecenie przynajmniej raz na 10 minut. Należy pamiętać, że strumieniowy odpowiednik tej funkcji to kombinacja poleceń ping i getKeepAlive.
TradeTransaction Rozpoczyna transakcję handlową. tradeTransaction wysyła główne informacje o transakcji do serwera.
TradeTransactionStatus Należy pamiętać, że tę funkcję można zwykle zastąpić jej odpowiednikiem strumieniowym getTradeStatus, który jest preferowanym sposobem pobierania danych o statusie transakcji. Zwraca bieżący status transakcji. W dowolnym momencie przetwarzania transakcji klient może sprawdzić status transakcji po stronie serwera. W tym celu klient musi podać unikatowy numer zlecenia uzyskany z wywołania tradeTransaction.