Binance ist eine internationale, mehrsprachige Kryptowährungsbörse. Sie bietet einige APIs für den Zugriff auf Binance-Daten. Diese Komponente ermöglicht Ihnen, Binance-Futures-WebSocket-Market-Streams abzurufen.
https://binance-docs.github.io/apidocs/futures/en
https://binance-docs.github.io/apidocs/delivery/en
Die Binance-API hat 2 Arten von Methoden: öffentliche und private. Öffentliche Methoden können ohne Authentifizierung aufgerufen werden, Beispiel: Ticker-Preise abrufen. Einige sind privat und beziehen sich auf Benutzerdaten; diese Methoden erfordern die Verwendung von Binance-API-Schlüsseln.
Der Client kann sich mit USDT- oder COIN-Binance-Futures verbinden. Legen Sie mit der Eigenschaft FuturesContracts fest, welchen Kontrakt Sie handeln möchten:
Der Client kann sich mit Production- oder Demo-Binance-Konten verbinden. Wenn die Eigenschaft TestNet aktiviert ist, verbindet er sich mit dem Demo-Konto, andernfalls mit den Production-Binance-Servern.
Der Client kann nach einer erfolgreichen Verbindung Ereignisse abonnieren / abbestellen.
Die folgenden Abonnement-/Abbestellungsmethoden werden unterstützt.
| Method | Parameter | Beschreibung |
| AggregateTrades | Symbol | Die Aggregate Trade Streams pushen alle 100 Millisekunden Handelsinformationen, die für eine einzelne Taker-Order aggregiert werden. |
| MarkPrice | Symbol, UpdateSpeed | Mark-Preis und Funding Rate für ein einzelnes Symbol, alle 3 Sekunden oder jede Sekunde übertragen. |
| AllMarkPrice | UpdateSpeed | Mark Price und Funding Rate für alle Symbole, gepusht alle 3 Sekunden oder jede Sekunde. |
| KLine | Symbol, Interval | Der Kline-/Candlestick-Stream pusht alle 250 Millisekunden Aktualisierungen der aktuellen Klines/Candlesticks (falls vorhanden). |
| MiniTicker | Symbol | 24-Stunden-Rolling-Window-Mini-Ticker-Statistiken für ein einzelnes Symbol. Dies sind NICHT die Statistiken des UTC-Tages, sondern ein 24-Stunden-Rolling-Window von requestTime bis 24 Stunden zuvor. |
| AllMiniTicker | Mini-Ticker-Statistiken über ein rollierendes 24-Stunden-Fenster für alle Symbole. Dies sind NICHT die Statistiken des UTC-Tages, sondern ein rollierendes 24-Stunden-Fenster von requestTime bis 24 Stunden davor. Beachten Sie, dass nur Ticker, die sich geändert haben, im Array vorhanden sind. | |
| Ticker | Symbol | 24-Stunden-Ticker-Statistiken im gleitenden Fenster für ein einzelnes Symbol. Dies sind NICHT die Statistiken des UTC-Tages, sondern ein gleitendes 24-Stunden-Fenster von requestTime bis 24 Stunden davor. |
| AllMarketTickers | 24-Stunden-Rolling-Window-Ticker-Statistiken für alle Symbole. Dies sind NICHT die Statistiken des UTC-Tages, sondern ein 24-Stunden-Rolling-Window von requestTime bis 24 Stunden zuvor. Beachten Sie, dass nur Ticker im Array enthalten sind, die sich geändert haben. | |
| BookTicker | Symbol | Pusht jede Aktualisierung des Preises oder der Menge des besten Bids oder Asks in Echtzeit für ein angegebenes Symbol. |
| AllBookTickers | Übermittelt jede Aktualisierung des besten Bid- oder Ask-Preises oder der -Menge in Echtzeit für alle Symbole. | |
| LiquidationOrders | Symbol | Die Liquidation Order Streams pushen Informationen zu erzwungenen Liquidations-Orders für ein bestimmtes Symbol |
| AllLiquidationOrders | Die All-Liquidation-Order-Streams übertragen Informationen über erzwungene Liquidationsorders für alle Symbole am Markt. | |
| PartialBookDepth | Symbol, Depth | Top-Bids und -Asks, gültige Werte sind 5, 10 oder 20. |
| DiffDepth | Symbol | Bids und Asks, gepusht alle 250 Millisekunden, 500 Millisekunden, 100 Millisekunden oder in Echtzeit (falls vorhanden) |
Nach einem erfolgreichen Abonnement / Abbestellen empfängt der Client eine Nachricht darüber, wobei id das Ergebnis der Subscribed-/Unsubscribed-Methode ist.
{
"result": null,
"id": 1
}
Erfordert einen gültigen ApiKey, der von Ihrem Binance-Konto erhalten wird, und der ApiKey muss in der Eigenschaft Binance.ApiKey der Komponente gesetzt werden.
Die folgenden Daten werden bei jeder Änderung an den Client gesendet. Es ist nicht erforderlich, eine Methode zu abonnieren; dies geschieht automatisch, wenn Sie einen gültigen ApiKey setzen.
| Method | Beschreibung |
| Margin Call | Wenn das Positionsrisikoverhältnis des Benutzers zu hoch ist, wird dieser Stream gepusht. Diese Nachricht dient nur als Risiko-Orientierungsinformation und wird nicht für Anlagestrategien empfohlen. Bei einem sehr volatilen Markt besteht die Möglichkeit, dass die Position des Benutzers zur gleichen Zeit liquidiert wurde, zu der dieser Stream gepusht wird. |
| Guthaben- und Positions-Update |
Eine Guthabenaktualisierung erfolgt in folgenden Fällen:
|
| Order Update | Wenn eine neue Order erstellt wird, löst eine Statusänderung der Order ein solches Ereignis aus. |
Alle Endpunkte geben entweder ein JSON-Objekt oder ein Array zurück. Daten werden in aufsteigender Reihenfolge zurückgegeben. Älteste zuerst, neueste zuletzt.
Öffentliche API-EndPoints
Auf diese Endpunkte kann ohne jegliche Autorisierung zugegriffen werden.
General EndPoints
| Method | Parameter | Beschreibung |
| Ping | Konnektivität zur Rest-API testen. | |
| GetServerTime | Testet die Konnektivität zur REST-API und ruft die aktuelle Serverzeit ab. | |
| GetExchangeInformation | Aktuelle Börsenhandelsregeln und Symbolinformationen |
Market-Data-Endpunkte
| Method | Parameter | Beschreibung |
| GetOrderBook | Symbol | Ruft das Orderbuch ab. |
| GetTrades | Symbol | Ruft die letzten Trades ab |
| GetHistoricalTrades | Symbol | Ruft ältere Trades ab. |
| GetAggregateTrades | Symbol | Ruft komprimierte, aggregierte Trades ab. Trades, die zur selben Zeit, aus derselben Order und mit demselben Preis ausgeführt werden, haben die Menge aggregiert. |
| GetKLines | Symbol, Interval | Kline-/Candlestick-Bars für ein Symbol. Klines werden eindeutig durch ihre Öffnungszeit identifiziert. |
| Get24hrTicker | Symbol | Preisänderungsstatistiken über ein gleitendes 24-Stunden-Fenster. Vorsicht beim Zugriff darauf ohne Symbol. |
| GetPriceTicker | Symbol | Aktuellster Preis für ein Symbol oder mehrere Symbole. |
| GetBookTicker | Symbol | Bester Preis/Menge im Orderbook für ein Symbol oder mehrere Symbole. |
| GetMarkPrice | Symbol | Mark Price and Funding Rate |
| GetFundingRateHistory | Symbol | |
| GetOpenInterest | Symbol | Ruft das aktuelle Open Interest eines bestimmten Symbols ab. |
| GetOpenInterestStatistics | Symbol, Period | |
| GetTopTraderAccountRatio | Symbol, Period | |
| GetTopTraderPositionRatio | Symbol, Period | |
| GetGlobalAccountRatio | Symbol, Period | |
| GetTakerVolume | Symbol, Period | |
| GetContinuousKLines | Pair, ContractType, Interval | Kline-/Candlestick-Balken für einen bestimmten Kontrakttyp. |
| GetIndexPriceKLines | Pair, Interval | Kline-/Candlestick-Balken für den Indexpreis eines Paares. |
| GetMarkPriceKLines | Symbol, Interval | Kline-/Candlestick-Balken für den Mark-Preis eines Symbols. |
| GetPremiumIndexKLines | Symbol, Interval | Premium-Index-Kline-Bars eines Symbols. |
| GetFundingInfo | Ruft Funding-Rate-Informationen für alle Symbole ab. | |
| GetPriceTickerV2 | Symbol | Aktueller Preis für ein oder mehrere Symbole (V2). |
| GetIndexInfo | Symbol | Index-Informationen abrufen. |
| GetAssetIndex | Symbol | Ruft den Asset-Index für den Multi-Asset-Modus ab. |
| GetConstituents | Symbol | Ruft Indexbestandteile ab. |
| GetDeliveryPrice | Pair | Lieferpreis abrufen. |
| GetBasis | Pair, ContractType, Period | Basisdaten abrufen. |
Private API EndPoints
Erfordert einen APIKey und APISecret, um vom Server autorisiert zu werden.
Account- und Trades-Endpunkte
| Method | Parameter | Beschreibung |
| ChangePositionMode | DualPosition | Den Positionsmodus des Benutzers (Hedge-Modus oder One-way-Modus) für JEDES Symbol ändern |
| GetCurrentPositionMode | Ruft den Positionsmodus des Benutzers (Hedge-Modus oder One-way-Modus) für JEDES Symbol ab | |
| NewOrder | Symbol, Side, PositionSide, Type | Reicht eine neue Order ein. |
| PlaceMarketOrder | Side, Symbol, Quantity | |
| PlaceLimitOrder | Side, Symbol, Quantity, LimitPrice | |
| PlaceStopOrder | Side, Symbol, Quantity, StopPrice, LimitPrice | |
| PlaceTrailingStopOrder | Side, Symbol, Quantity, aActivationPrice, aCallbackRate | |
| QueryOrder | Symbol | Prüft den Status einer Order. |
| CancelOrder | Symbol | Storniert eine aktive Order. Entweder OrderId oder OrigClientOrderId muss gesendet werden. |
| CancelAllOpenOrders | Symbol | |
| AutoCancelAllOpenOrders | Symbol, CountDownTimer | Alle offenen Orders des angegebenen Symbols am Ende des angegebenen Countdowns abbrechen. |
| QueryCurrentOpenOrder | Symbol | |
| GetOpenOrders | Symbol | Ruft alle offenen Orders zu einem Symbol ab. Vorsicht beim Zugriff ohne Symbol. |
| GetAllOrders | Symbol | Alle Konto-Orders abrufen; aktiv, storniert oder ausgeführt. |
| GetAccountBalance | ||
| GetAccountInformation | Aktuelle Kontoinformationen abrufen. | |
| ChangeInitialLeverage | Symbol, Leverage | Ändert die anfängliche Hebelwirkung des Benutzers für einen bestimmten Symbol-Markt. |
| ChangeMarginType | Symbol, MarginType | |
| ModifyIsolatedPositionMargin | Symbol, Amount, Type | |
| GetPositionMarginChangeHistory | Symbol | |
| GetPositionInformation | Symbol | |
| GetAccountTradeList | Symbol | |
| GetIncomeHistory | Symbol | |
| GetNotionalLeverageBracket | Symbol | |
| TestNewOrder | Symbol, Side, PositionSide, Type | Testet die Erstellung einer neuen Order und die Signatur/recvWindow-Dauer. Erstellt und validiert eine neue Order, sendet sie aber nicht an die Matching Engine. |
| ModifyOrder | Symbol | Ändert einen bestehenden Auftrag. |
| NewBatchOrders | BatchOrders | Platziert mehrere Orders. |
| ModifyBatchOrders | BatchOrders | Mehrere Orders ändern. |
| CancelBatchOrders | Symbol | Mehrere Orders stornieren. |
| GetOrderAmendment | Symbol | Order-Änderungsverlauf abrufen. |
| CountdownCancelAll | Symbol, CountdownTime | Alle offenen Orders des angegebenen Symbols am Ende des angegebenen Countdowns abbrechen. |
| GetForceOrders | Symbol | Ruft die erzwungenen Liquidations-Orders des Benutzers ab. |
| GetADLQuantile | Symbol | ADL-Quantilschätzung für Positionen abrufen. |
| GetAccountBalanceV3 | Ruft den Futures-Kontostand ab (V3). | |
| GetAccountInformationV3 | Aktuelle Kontoinformationen abrufen (V3). | |
| GetPositionInformationV3 | Symbol | Aktuelle Positionsinformationen abrufen (V3). |
| GetCommissionRate | Symbol | Ruft die Provisionsrate des Benutzers ab. |
| GetAccountConfig | Aktuelle Kontokonfiguration abrufen. | |
| GetSymbolConfig | Symbol | Ruft die Symbol-Konfiguration ab. |
| GetOrderRateLimit | Das Order-Rate-Limit des Benutzers abrufen. | |
| GetApiTradingStatus | Symbol | API-Handels-Quantitativ-Regelindikatoren abrufen. |
| ChangeMultiAssetsMode | MultiAssetsMargin | Den Multi-Assets-Modus des Benutzers ändern. Multi-Assets Mode: true; Single-Asset Mode: false. |
| GetMultiAssetsMode | Ruft den aktuellen Multi-Assets-Modus des Benutzers ab. | |
| SetFeeBurn | FeeBurn | Den BNB-Fee-Burn-Status des Benutzers ändern. |
| GetFeeBurn | Den BNB-Fee-Burn-Status des Benutzers abrufen. | |
| CreateListenKey | Startet einen neuen User-Data-Stream. Der Stream wird nach 60 Minuten geschlossen, sofern kein Keepalive gesendet wird. | |
| KeepAliveListenKey | Einen User-Data-Stream am Leben erhalten, um ein Timeout zu verhindern. | |
| CloseListenKey | Schließt einen Benutzerdatenstrom. |
Binance-Futures-Nachrichten werden in der TsgcWebSocketClient-Komponente empfangen; Sie können die folgenden Ereignisse verwenden:
OnConnect
Nach einer erfolgreichen Verbindung zum Binance-Server.
OnDisconnect
Nach einer Trennung vom Binance-Server
OnMessage
Nachrichten, die vom Server an den Client gesendet werden, werden in diesem Ereignis behandelt.
OnError
Wenn im Protokoll ein Fehler auftritt, wird dieses Ereignis aufgerufen.
OnException
Wenn eine nicht behandelte Ausnahme auftritt, wird dieses Ereignis aufgerufen.
Zusätzlich gibt es ein spezifisches Ereignis in der Binance API-Komponente namens OnBinanceHTTPException, das jedes Mal ausgelöst wird, wenn beim Aufruf einer HTTP-Anfrage (REST API oder WebSocket User Stream) ein Fehler auftritt.
(*) Aufgrund von Änderungen an den Binance-Servern können Indy-Versionen vor RAD Studio 10.1 keine Verbindung zu Testservern herstellen. Dieses Problem betrifft weder die Enterprise Edition noch den Fall, dass die Indy-Version auf die neueste aktualisiert wurde.