Huobi (jetzt umbenannt in HTX) ist eine internationale, mehrsprachige Kryptowährungsbörse.
Wenn Sie die privaten Konto-Updates abonnieren möchten, müssen Sie einen API-Schlüssel in Ihrem Huobi-Konto erstellen. Nach der Erstellung setzen Sie den API-Schlüssel und das Secret im Huobi-API-Client
HTX stellt die Marktdaten und die Kontodaten über zwei unterschiedliche Endpunkte mit zwei unterschiedlichen Schemas bereit: wss://api.htx.com/ws überträgt die Marktdaten als v1-Subscription-Frames, und wss://api.htx.com/ws/v2 überträgt die Konto- und Order-Kanäle als authentifizierte v2-Frames. Keiner der beiden Endpunkte beantwortet die Frames des jeweils anderen.
Bisheriges Verhalten. Die Komponente öffnete eine einzige Verbindung und wählte den Endpunkt anhand der Anmeldedaten: War der ApiKey leer, verband sie sich mit dem öffentlichen Endpunkt und nur die öffentlichen Methoden funktionierten; war ein ApiKey konfiguriert, verband sie sich mit dem privaten Endpunkt und nur die privaten Methoden funktionierten. Eine Anwendung, die gleichzeitig Marktdaten und Kontodaten benötigte, musste zwei Komponenteninstanzen erstellen, eine mit und eine ohne Anmeldedaten.
Aktuelles Verhalten. Die Verbindung der Komponente ist immer die öffentliche, sodass die Marktdaten unabhängig davon verfügbar sind, ob Anmeldedaten konfiguriert sind oder nicht. Ist ein ApiKey konfiguriert, öffnet die Komponente selbstständig zusätzlich eine zweite Verbindung zum v2-Endpunkt, und eine einzige Instanz empfängt dann gleichzeitig die öffentlichen Marktdaten und die privaten Kontodaten. Diese zweite Verbindung ist intern: Sie wird von der Komponente zusammen mit der öffentlichen geöffnet und geschlossen, besitzt keine eigene Active-Eigenschaft und keine eigenen Ereignisse, und alles, was über sie eintrifft, wird genau wie die Marktdaten über die Ereignisse der Komponente bereitgestellt.
In bestehenden Anwendungen muss nichts geändert werden. Es wurde weder eine neue Eigenschaft noch ein neues Ereignis hinzugefügt, die öffentliche API der Komponente ist dieselbe wie zuvor. Eine Anwendung, die bereits den ApiKey setzt und nur private Kanäle abonniert, funktioniert weiterhin, und sie kann nun auf derselben Instanz zusätzlich die öffentlichen Kanäle abonnieren. Eine Anwendung, die zwei Instanzen verwendet hat, funktioniert ebenfalls weiterhin, auch wenn die zweite Instanz nicht mehr notwendig ist.
Die Authentifizierung der privaten Verbindung läuft eigenständig ab, sodass sich die private Verbindung möglicherweise noch im Verbindungsaufbau oder in der Authentifizierung befindet, wenn die Anwendung abonniert. Das ist kein Fehler, und es muss auf nichts gewartet werden: Der Kanal wird vorgemerkt und angefordert, sobald die Authentifizierung bestätigt ist. Dasselbe gilt nach einer Wiederverbindung, wenn Resubscribe aktiviert ist: Die privaten Kanäle werden neu aufgebaut und erneut angefordert, sobald die neue Sitzung authentifiziert wurde.
Wird eine private Subscribe-Methode ohne konfigurierten ApiKey aufgerufen, löst dies jetzt das Ereignis OnHuobiError aus, das den angeforderten Kanal und den dafür benötigten Endpunkt meldet. Zuvor wurde die Anfrage auf eine Verbindung geschrieben, die sie nicht bedienen konnte, und ging spurlos verloren.
Der Futures-Client (TsgcWS_API_Huobi_Fut) verbindet sich mit einem anderen Endpunkt, der hier kein v2-Gegenstück hat, sodass er keine zweite Verbindung öffnet und seine privaten Frames wie bisher über seine eigene Verbindung laufen.
Sie können die folgenden öffentlichen Kanäle abonnieren (API-Schlüssel ist nicht erforderlich)
| Methode | Beschreibung |
| SubscribeKLine | Dieses Topic sendet einen neuen Candlestick, sobald er verfügbar ist. Unterstützte Perioden: 1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year. |
| SubscribeMarketDepth | Dieses Topic sendet das neueste Market-by-Price-Orderbuch im Snapshot-Modus in einem Intervall von 1 Sekunde. Unterstützte Tiefen-Aggregationsebenen: step0 bis step15. |
| SubscribeTradeDetail | Dieses Topic sendet die zuletzt abgeschlossenen Trades. Es wird im Tick-by-Tick-Modus aktualisiert. |
| SubscribeMarketDetail |
Dieses Topic sendet die neuesten Marktstatistiken mit einer 24-Stunden-Zusammenfassung. Es aktualisiert im Snapshot-Modus, mit einer Frequenz von höchstens 10 Mal pro Sekunde. |
| SubscribeBBO | Der Benutzer kann BBO-Aktualisierungen (Best Bid/Offer) im Tick-für-Tick-Modus empfangen. |
| SubscribeMarketTicker |
Ruft den Markt-Ticker ab. Daten werden alle 100 ms gepusht. |
| SubscribeMarketByPrice | Der Benutzer kann diesen Kanal abonnieren, um Aktualisierungen des Market-By-Price-Orderbuchs zu erhalten. Das Aktualisierungsintervall beträgt etwa 100 ms. Unterstützte Ebenen: 5, 10, 20, 150, 400. |
Die folgenden Methoden sind für den Futures-API-Client (TsgcWS_API_Huobi_Fut) zusätzlich zu allen oben genannten öffentlichen Methoden verfügbar.
| Methode | Beschreibung |
| SubscribeIncrementalMarketDepth | Inkrementelle Marktiefe-Updates mit konfigurierbarer Größe und Datentyp (snapshot oder incremental) abonnieren. |
| SubscribePremiumIndexKLine | Abonniert Premium-Index-Kline-/Candlestick-Daten für Futures-Kontrakte. |
| SubscribeEstimatedRateKLine | Abonniert geschätzte Funding-Rate-Kline-/Candlestick-Daten für Futures-Kontrakte. |
| SubscribeBasisData | Basisdaten abonnieren (Spot-Futures-Preisspread). Unterstützt verschiedene Basis-Preistypen: open, close, high, low. |
| SubscribeMarkPriceKLine | Abonniert Mark-Price-Kline-/Candlestick-Daten für Futures-Kontrakte. |
| SubscribeLiquidationOrders | Abonniert den öffentlichen Liquidation-Order-Feed für einen bestimmten Kontrakt. Keine Authentifizierung erforderlich. |
| SubscribeFundingRate | Abonniert öffentliche Funding-Rate-Aktualisierungen für einen bestimmten Kontrakt. Keine Authentifizierung erforderlich. |
| SubscribeContractInfo | Abonniert Änderungen von Kontraktparametern (z. B. Kontrakt-Listings, Delistings, Parameteranpassungen). |
Sie können die folgenden privaten Kanäle abonnieren (ein API-Schlüssel ist erforderlich). Sie werden über die zweite Verbindung bedient, die die Komponente automatisch öffnet, sobald der ApiKey konfiguriert ist, sodass sie sich auf derselben Komponenteninstanz mit den öffentlichen Kanälen kombinieren lassen. Wenn die Anmeldedaten nicht korrekt sind, wird die Verbindung automatisch geschlossen, und wenn gar kein ApiKey vorhanden ist, wird die Anfrage im Ereignis OnHuobiError gemeldet.
| Methode | Beschreibung |
| SubscribeOrderUpdates |
Eine Order-Aktualisierung kann durch eines der folgenden Ereignisse ausgelöst werden:
|
| SubscribeTradeClearing | Wird nur aktualisiert, wenn sich die Order in einer Transaktion oder Stornierung befindet. Die Aktualisierung der Order-Transaktion erfolgt im Tick-by-Tick-Modus, das heißt, wenn die Order eines Takers mit den Orders mehrerer Maker übereinstimmt, werden die gleichzeitigen mehreren Trades einzeln verbreitet. Die Aktualisierungsreihenfolge der mehreren Trades stimmt jedoch möglicherweise nicht exakt mit der Reihenfolge der getätigten Transaktionen überein. Wenn eine Order zudem unmittelbar nach ihrer Teilausführung automatisch storniert wird, zum Beispiel eine typische IOC-Order, könnte dieser Kanal die Stornierungsaktualisierung möglicherweise vor dem Trade verbreiten. |
| SubscribeAccountChange |
Bei dem angegebenen Feldwert kann die Aktualisierung durch eines der folgenden Ereignisse ausgelöst werden. Der Parameter aMode steuert das Aktualisierungsverhalten:
Modus 0: Nur aktualisieren, wenn sich der Kontostand ändert. Modus 1: Aktualisierung, wenn sich entweder das Kontoguthaben oder das verfügbare Guthaben ändert (separate Aktualisierungen). Modus 2: Aktualisierung, wenn sich das Kontoguthaben oder das verfügbare Guthaben ändert (kombinierte Aktualisierung). |
OnHuobiSubscribed: Ereignis, das nach einem erfolgreichen Abonnement aufgerufen wird.
OnHuobiUnSubscribed: Ereignis, das nach einer erfolgreichen Abbestellung aufgerufen wird.
OnHuobiUpdate: wird jedes Mal aufgerufen, wenn es eine Aktualisierung in den Daten gibt (Kline, Market Depth...). Es meldet die Aktualisierungen der öffentlichen wie auch der privaten Kanäle, unabhängig davon, über welche der beiden Verbindungen sie eingetroffen sind.
OnHuobiError: wenn ein Fehler in der Huobi-API auftritt, liefert dieses Ereignis Informationen über den Fehler. Es wird außerdem aufgerufen, wenn ein privater Kanal angefordert wird und der Komponente kein ApiKey zum Öffnen der privaten Verbindung zur Verfügung steht, wobei der Parameter Code auf "private-credentials" gesetzt ist und der Parameter Msg den angeforderten Kanal benennt.