Binance to międzynarodowa wielojęzyczna giełda kryptowalut. Oferuje szereg API umożliwiających dostęp do danych Binance. Ten komponent umożliwia pobieranie strumieni rynkowych WebSocket dla kontraktów Binance Futures.
https://binance-docs.github.io/apidocs/futures/en
https://binance-docs.github.io/apidocs/delivery/en
Binance API posiada 2 typy metod: publiczne i prywatne. Metody publiczne są dostępne bez uwierzytelniania, np. pobieranie cen tickerów. Niektóre metody są prywatne i związane z danymi użytkownika; te metody wymagają użycia kluczy API Binance.
Klient może połączyć się z kontraktami terminowymi Binance USDT lub COIN. Aby wybrać typ kontraktu do handlu, należy ustawić właściwość FuturesContracts:
Klient może łączyć się z kontami Binance produkcyjnymi lub demonstracyjnymi. Jeśli właściwość TestNet jest włączona, połączenie nastąpi z kontem demonstracyjnym; w przeciwnym razie klient połączy się z serwerami produkcyjnymi Binance.
Właściwość FuturesStreamEndpoint dotyczy wyłącznie kontraktów USD-M Futures połączonych z serwerami produkcyjnymi; kontrakty COIN-M Futures oraz TestNet Futures nie są przekierowywane i pozostają bez zmian. Jej wartość domyślna zachowuje działanie znane z poprzednich wersji, więc w przypadku subskrypcji strumieni KLine, MarkPrice, Ticker, AggregateTrades, MiniTicker lub LiquidationOrders należy przed połączeniem ustawić Binance.FuturesStreamEndpoint na bfseMarket. W przypadku subskrypcji strumienia, który nie jest dostarczany przez wybrany endpoint, zgłaszany jest błąd wskazujący tę właściwość, zamiast nawiązania połączenia, które po cichu nie dostarcza żadnych danych.
Klient może subskrybować zdarzenia i anulować subskrypcję po nawiązaniu połączenia.
Obsługiwane są następujące metody subskrypcji i anulowania subskrypcji.
| Metoda | Parametry | Opis |
| AggregateTrades | Symbol | Agregowane strumienie transakcji przesyłają informacje o transakcjach agregowane dla jednego zlecenia taker co 100 milisekund. |
| MarkPrice | Symbol, UpdateSpeed | Cena mark i stopa finansowania dla pojedynczego symbolu, przesyłane co 3 sekundy lub co sekundę. |
| AllMarkPrice | UpdateSpeed | Cena markowa i stopa finansowania dla wszystkich symboli wysyłana co 3 sekundy lub co sekundę. |
| KLine | Symbol, interwał | Strumień Kline/Candlestick przesyła aktualizacje bieżących danych świecowych co 250 milisekund (jeśli istnieją). |
| MiniTicker | Symbol | 24-godzinne kroczące statystyki mini-tickera dla pojedynczego symbolu. Nie są to statystyki dnia UTC, lecz 24-godzinne okno kroczące od czasu żądania do 24 godzin wcześniej. |
| AllMiniTicker | 24-godzinne kroczące statystyki mini-tickera dla wszystkich symboli. Nie są to statystyki dnia UTC, lecz 24-godzinne okno kroczące od czasu requestTime do 24 godzin wcześniej. Należy pamiętać, że w tablicy będą obecne wyłącznie tickery, które uległy zmianie. | |
| Ticker | Symbol | Statystyki tickera z 24-godzinnego okna kroczącego dla pojedynczego symbolu. Nie są to statystyki dnia UTC, lecz 24-godzinne okno kroczące od requestTime do 24 godzin wstecz. |
| AllMarketTickers | 24-godzinne kroczące statystyki tickerów dla wszystkich symboli. Nie są to statystyki dnia UTC, lecz 24-godzinne okno kroczące od requestTime do 24 godzin wstecz. Należy pamiętać, że w tablicy znajdą się wyłącznie tickery, których wartości uległy zmianie. | |
| BookTicker | Symbol | Przekazuje w czasie rzeczywistym aktualizacje najlepszej ceny lub wolumenu po stronie bid lub ask dla wskazanego symbolu. |
| AllBookTickers | Przesyła w czasie rzeczywistym wszelkie aktualizacje ceny lub ilości najlepszej oferty kupna lub sprzedaży dla wszystkich symboli. | |
| LiquidationOrders | Symbol | Strumienie zleceń likwidacyjnych przesyłają informacje o wymuszonych zleceniach likwidacyjnych dla określonego symbolu |
| AllLiquidationOrders | Strumienie All Liquidation Order przesyłają informacje o zleceniach przymusowej likwidacji dla wszystkich symboli na rynku. | |
| PartialBookDepth | Symbol, Głębokość | Najlepsze oferty kupna i sprzedaży; prawidłowe wartości to 5, 10 lub 20. |
| DiffDepth | Symbol | Oferty kupna i sprzedaży, przesyłane co 250 milisekund, 500 milisekund, 100 milisekund lub w czasie rzeczywistym (jeśli są dostępne) |
Po pomyślnej subskrypcji lub rezygnacji z subskrypcji klient otrzymuje o tym wiadomość, w której id jest wynikiem metody Subscribed lub Unsubscribed.
{
"result": null,
"id": 1
}
Wymaga prawidłowego ApiKey uzyskanego z konta Binance; ApiKey musi być ustawiony we właściwości Binance.ApiKey komponentu.
Następujące dane są wypychane do klienta za każdym razem, gdy nastąpi zmiana. Nie jest konieczna subskrypcja żadnej metody — odbywa się ona automatycznie po ustawieniu prawidłowego ApiKey.
| Metoda | Opis |
| Wezwanie do uzupełnienia depozytu zabezpieczającego | Gdy wskaźnik ryzyka pozycji użytkownika jest zbyt wysoki, ten strumień zostanie wypchnięty. Ta wiadomość służy wyłącznie jako informacja o ryzyku i nie jest zalecana jako podstawa strategii inwestycyjnych. Na wysoce zmiennym rynku istnieje możliwość, że pozycja użytkownika zostanie zlikwidowana w tym samym czasie, gdy zostanie wypchnięty ten strumień. |
| Aktualizacja salda i pozycji |
Aktualizacja salda następuje w następujących przypadkach:
|
| Aktualizacja zlecenia | Gdy zostanie utworzone nowe zlecenie, zostanie wypchnięte zdarzenie zmiany statusu zlecenia. |
Wszystkie punkty końcowe zwracają obiekt lub tablicę JSON. Dane są zwracane w kolejności rosnącej: najstarsze pierwsze, najnowsze ostatnie.
Publiczne punkty końcowe API
Te punkty końcowe są dostępne bez żadnej autoryzacji.
Ogólne EndPoints
| Metoda | Parametry | Opis |
| Ping | Testuje łączność z Rest API. | |
| GetServerTime | Sprawdź połączenie z Rest API i pobierz bieżący czas serwera. | |
| GetExchangeInformation | Bieżące reguły handlowe giełdy i informacje o symbolach |
Punkty końcowe danych rynkowych
| Metoda | Parametry | Opis |
| GetOrderBook | Symbol | Pobierz arkusz zleceń. |
| GetTrades | Symbol | Pobierz ostatnie transakcje |
| GetHistoricalTrades | Symbol | Pobierz starsze transakcje. |
| GetAggregateTrades | Symbol | Pobierz skompresowane, zagregowane transakcje. Transakcje realizowane w tym samym czasie, z tego samego zlecenia i po tej samej cenie będą miały zagregowaną ilość. |
| GetKLines | Symbol, interwał | Świece Kline dla instrumentu. Świece są jednoznacznie identyfikowane przez czas otwarcia. |
| Get24hrTicker | Symbol | Statystyki zmian cen w 24-godzinnym oknie kroczącym. Należy zachować ostrożność podczas wywoływania bez podania symbolu. |
| GetPriceTicker | Symbol | Ostatnia cena dla symbolu lub symboli. |
| GetBookTicker | Symbol | Najlepsza cena/ilość w arkuszu zleceń dla jednego lub wielu symboli. |
| GetMarkPrice | Symbol | Cena Mark i Stopa Finansowania |
| GetFundingRateHistory | Symbol | |
| GetOpenInterest | Symbol | Pobierz bieżące otwarte zainteresowanie dla określonego symbolu. |
| GetOpenInterestStatistics | Symbol, Period | |
| GetTopTraderAccountRatio | Symbol, Period | |
| GetTopTraderPositionRatio | Symbol, Period | |
| GetGlobalAccountRatio | Symbol, Period | |
| GetTakerVolume | Symbol, Period | |
| GetContinuousKLines | Pair, ContractType, Interval | Dane świecowe dla określonego typu kontraktu. |
| GetIndexPriceKLines | Pair, Interval | Świece Kline/candlestick dla ceny indeksu pary. |
| GetMarkPriceKLines | Symbol, interwał | Świece Kline dla ceny mark danego symbolu. |
| GetPremiumIndexKLines | Symbol, interwał | Słupki kline indeksu premii dla symbolu. |
| GetFundingInfo | Pobierz informacje o stawce finansowania dla wszystkich symboli. | |
| GetPriceTickerV2 | Symbol | Ostatnia cena dla jednego lub wielu symboli (V2). |
| GetIndexInfo | Symbol | Pobierz informacje o indeksie. |
| GetAssetIndex | Symbol | Pobierz indeks aktywów dla trybu wieloaktywowego. |
| GetConstituents | Symbol | Pobierz składowe indeksu. |
| GetDeliveryPrice | Para | Pobierz cenę dostawy. |
| GetBasis | Pair, ContractType, Period | Pobieranie danych bazowych. |
Private API EndPoints
Wymaga podania APIKey i APISecret w celu autoryzacji przez serwer.
Punkty końcowe konta i transakcji
| Metoda | Parametry | Opis |
| ChangePositionMode | DualPosition | Zmień tryb pozycji użytkownika (tryb Hedge lub tryb jednokierunkowy) dla KAŻDEGO symbolu |
| GetCurrentPositionMode | Pobierz tryb pozycji użytkownika (tryb zabezpieczony lub jednokierunkowy) dla KAŻDEGO symbolu | |
| NewOrder | Symbol, Side, PositionSide, Type | Wyślij nowe zlecenie. |
| PlaceMarketOrder | Side, Symbol, Quantity | |
| PlaceLimitOrder | Side, Symbol, Quantity, LimitPrice | |
| PlaceStopOrder | Side, Symbol, Quantity, StopPrice, LimitPrice | |
| PlaceTrailingStopOrder | Side, Symbol, Quantity, aActivationPrice, aCallbackRate | |
| QueryOrder | Symbol | Sprawdź status zlecenia. |
| CancelOrder | Symbol | Anuluj aktywne zlecenie. Należy podać OrderId lub OrigClientOrderId. |
| CancelAllOpenOrders | Symbol | |
| AutoCancelAllOpenOrders | Symbol, CountDownTimer | Anuluj wszystkie otwarte zlecenia określonego symbolu na koniec określonego odliczania. |
| QueryCurrentOpenOrder | Symbol | |
| GetOpenOrders | Symbol | Pobierz wszystkie otwarte zlecenia dla symbolu. Zachować ostrożność przy dostępie bez podania symbolu. |
| GetAllOrders | Symbol | Pobierz wszystkie zlecenia konta: aktywne, anulowane lub zrealizowane. |
| GetAccountBalance | ||
| GetAccountInformation | Pobierz informacje o bieżącym koncie. | |
| ChangeInitialLeverage | Symbol, Leverage | Zmień początkową dźwignię użytkownika dla określonego rynku symbolu. |
| ChangeMarginType | Symbol, MarginType | |
| ModifyIsolatedPositionMargin | Symbol, Amount, Type | |
| GetPositionMarginChangeHistory | Symbol | |
| GetPositionInformation | Symbol | |
| GetAccountTradeList | Symbol | |
| GetIncomeHistory | Symbol | |
| GetNotionalLeverageBracket | Symbol | |
| TestNewOrder | Symbol, Side, PositionSide, Type | Testuje tworzenie nowego zlecenia oraz poprawność podpisu/recvWindow. Tworzy i weryfikuje nowe zlecenie, ale nie wysyła go do silnika dopasowań. |
| ModifyOrder | Symbol | Modyfikowanie istniejącego zlecenia. |
| NewBatchOrders | BatchOrders | Złóż wiele zleceń jednocześnie. |
| ModifyBatchOrders | BatchOrders | Modyfikuj wiele zleceń jednocześnie. |
| CancelBatchOrders | Symbol | Anuluje wiele zleceń. |
| GetOrderAmendment | Symbol | Pobiera historię modyfikacji zlecenia. |
| CountdownCancelAll | Symbol, CountdownTime | Anuluj wszystkie otwarte zlecenia określonego symbolu na koniec określonego odliczania. |
| GetForceOrders | Symbol | Pobierz zlecenia przymusowej likwidacji użytkownika. |
| GetADLQuantile | Symbol | Pobiera kwantylowe szacowanie ADL dla pozycji. |
| GetAccountBalanceV3 | Pobierz saldo konta futures (V3). | |
| GetAccountInformationV3 | Pobierz bieżące informacje o koncie (V3). | |
| GetPositionInformationV3 | Symbol | Pobierz bieżące informacje o pozycji (V3). |
| GetCommissionRate | Symbol | Pobierz stawkę prowizji użytkownika. |
| GetAccountConfig | Pobierz bieżącą konfigurację konta. | |
| GetSymbolConfig | Symbol | Pobierz konfigurację symbolu. |
| GetOrderRateLimit | Pobierz limit szybkości zleceń użytkownika. | |
| GetApiTradingStatus | Symbol | Pobierz wskaźniki reguł ilościowych dotyczących handlu przez API. |
| ChangeMultiAssetsMode | MultiAssetsMargin | Zmiana trybu wielu aktywów użytkownika. Tryb wielu aktywów: true; Tryb jednego aktywa: false. |
| GetMultiAssetsMode | Pobiera bieżący tryb wielu aktywów użytkownika. | |
| SetFeeBurn | FeeBurn | Zmień status spalania opłat BNB użytkownika. |
| GetFeeBurn | Pobierz status spalania opłat BNB użytkownika. | |
| CreateListenKey | Uruchom nowy strumień danych użytkownika. Strumień zostanie zamknięty po 60 minutach, jeśli nie zostanie wysłany sygnał keepalive. | |
| KeepAliveListenKey | Utrzymuje aktywność strumienia danych użytkownika, zapobiegając przekroczeniu limitu czasu. | |
| CloseListenKey | Zamknij strumień danych użytkownika. |
Wiadomości Binance Futures są odbierane w komponencie TsgcWebSocketClient; można używać następujących zdarzeń:
OnConnect
Po pomyślnym połączeniu z serwerem Binance.
OnDisconnect
Po rozłączeniu z serwerem Binance
OnMessage
Wiadomości wysyłane przez serwer do klienta są obsługiwane w tym zdarzeniu.
OnError
W przypadku wystąpienia błędu protokołu wywoływane jest to zdarzenie.
OnException
Jeżeli wystąpi nieobsługiwany wyjątek, zostanie wywołane to zdarzenie.
Dodatkowo w komponencie Binance API istnieje specyficzne zdarzenie o nazwie OnBinanceHTTPException, wywoływane za każdym razem, gdy wystąpi błąd podczas wywołania żądania HTTP (REST API lub strumień użytkownika WebSocket).
Gdy nie można otworzyć strumienia User Data Stream, zgłaszany błąd zawiera kod statusu HTTP oraz komunikat zwrócony przez Binance, dzięki czemu przyczyna jest widoczna bez przypisywania zdarzenia OnBinanceHTTPException.
(*) W związku ze zmianami na serwerach Binance wersje Indy wcześniejsze niż Rad Studio 10.1 nie będą mogły łączyć się z serwerami testowymi. Problem ten nie dotyczy wersji Enterprise ani zaktualizowanych wersji Indy.