API Huobi

Huobi (HTX)

Huobi (ora rinominata HTX) è un exchange di criptovalute internazionale multilingua.

Configurazione

Se si desidera sottoscrivere agli aggiornamenti privati dell'account, è necessario creare una API Key nel proprio account Huobi. Una volta creata, impostare la API Key e il Secret nel client API Huobi

Dati Pubblici e Privati con un Unico Componente

HTX serve i dati di mercato e i dati dell'account su due endpoint diversi, con due schemi diversi: wss://api.htx.com/ws trasporta i dati di mercato come frame di sottoscrizione v1, e wss://api.htx.com/ws/v2 trasporta i canali dell'account e degli ordini come frame autenticati v2. Nessuno dei due endpoint risponde ai frame dell'altro.

Comportamento precedente. Il componente apriva un'unica connessione e sceglieva l'endpoint in base alle credenziali: con ApiKey vuota si connetteva all'endpoint pubblico e funzionavano solo i metodi pubblici, con ApiKey configurata si connetteva all'endpoint privato e funzionavano solo i metodi privati. Un'applicazione che aveva bisogno dei dati di mercato e dei dati dell'account allo stesso tempo doveva creare due istanze del componente, una con credenziali e una senza.

Comportamento attuale. La connessione del componente è sempre quella pubblica, quindi i dati di mercato sono disponibili indipendentemente dal fatto che le credenziali siano configurate o meno. Quando è configurata una ApiKey, il componente apre anche in autonomia una seconda connessione all'endpoint v2, e un'unica istanza riceve così contemporaneamente i dati di mercato pubblici e i dati dell'account privati. Questa seconda connessione è interna: viene aperta e chiusa dal componente insieme a quella pubblica, non ha una propria proprietà Active né propri eventi, e tutto ciò che arriva su di essa viene esposto tramite gli eventi del componente, esattamente come i dati di mercato.

Non c'è nulla da modificare nelle applicazioni esistenti. Non è stata aggiunta nessuna nuova proprietà né nessun nuovo evento, l'API pubblica del componente è la stessa di prima. Un'applicazione che imposta già ApiKey e sottoscrive solo i canali privati continua a funzionare, e ora può sottoscrivere anche i canali pubblici sulla stessa istanza. Un'applicazione che usava due istanze continua a funzionare, anche se la seconda istanza non è più necessaria.

L'autenticazione della connessione privata avviene in modo autonomo, quindi la connessione privata potrebbe essere ancora in fase di connessione o di autenticazione nel momento in cui l'applicazione effettua la sottoscrizione. Non si tratta di un errore e non è necessario attendere nulla: il canale viene registrato e viene richiesto non appena l'autenticazione viene confermata. Lo stesso vale dopo una riconnessione quando Resubscribe è abilitato: i canali privati vengono ricostruiti e richiesti di nuovo una volta che la nuova sessione è stata autenticata.

Chiamare un metodo di sottoscrizione privato con nessuna ApiKey configurata ora genera l'evento OnHuobiError, che riporta il canale richiesto e l'endpoint di cui aveva bisogno. In precedenza la richiesta veniva scritta su una connessione che non poteva soddisfarla e andava persa senza lasciare traccia.

Il client futures (TsgcWS_API_Huobi_Fut) si connette a un endpoint diverso, che qui non ha una controparte v2, quindi non apre una seconda connessione e i suoi frame privati viaggiano sulla propria connessione, esattamente come hanno sempre fatto.

Metodi pubblici

È possibile iscriversi ai seguenti canali pubblici (la chiave API non è necessaria)

Method Description
SubscribeKLine Questo topic invia una nuova candela ogni volta che è disponibile. Periodi supportati: 1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year.
SubscribeMarketDepth Questo argomento invia il più recente libro degli ordini di mercato per prezzo in modalità snapshot a intervalli di 1 secondo. Livelli di aggregazione della profondità supportati: da step0 a step15.
SubscribeTradeDetail Questo argomento invia gli ultimi scambi completati. Si aggiorna tick per tick.
SubscribeMarketDetail

Questo topic invia le ultime statistiche di mercato con riepilogo 24h. Si aggiorna in modalità snapshot, con una frequenza non superiore a 10 volte al secondo.

SubscribeBBO L'utente può ricevere l'aggiornamento BBO (Best Bid/Offer) in modalità tick by tick.
SubscribeMarketTicker

Recuperare il ticker di mercato. I dati vengono inviati ogni 100 ms.

SubscribeMarketByPrice L'utente può iscriversi a questo canale per ricevere aggiornamenti del book degli ordini Market By Price. L'intervallo di aggiornamento è di circa 100 ms. Livelli supportati: 5, 10, 20, 150, 400.

Metodi pubblici Futures

I seguenti metodi sono disponibili per il client API Futures (TsgcWS_API_Huobi_Fut) in aggiunta a tutti i metodi pubblici sopra indicati.

Method Description
SubscribeIncrementalMarketDepth Sottoscrivi aggiornamenti incrementali della profondità di mercato con dimensione e tipo di dati configurabili (snapshot o incrementale).
SubscribePremiumIndexKLine Sottoscrivere i dati kline/candlestick premium dell'indice per i contratti futures.
SubscribeEstimatedRateKLine Iscriviti ai dati kline/candlestick del tasso di finanziamento stimato per i contratti futures.
SubscribeBasisData Sottoscriversi ai dati di base (spread di prezzo spot-futures). Supporta diversi tipi di prezzi di base: open, close, high, low.
SubscribeMarkPriceKLine Iscriviti ai dati kline/candlestick del prezzo mark per i contratti futures.
SubscribeLiquidationOrders Abbonati al feed degli ordini di liquidazione pubblica per un determinato contratto. Non è richiesta l'autenticazione.
SubscribeFundingRate Sottoscrivere gli aggiornamenti pubblici del tasso di finanziamento per un determinato contratto. Non è richiesta autenticazione.
SubscribeContractInfo Sottoscrive le modifiche dei parametri del contratto (ad esempio quotazioni, ritiri dalla quotazione, aggiustamenti dei parametri dei contratti).

Metodi privati

È possibile sottoscrivere i seguenti canali privati (è richiesta una chiave API). Sono serviti dalla seconda connessione che il componente apre automaticamente quando è configurata la ApiKey, quindi possono essere combinati con i canali pubblici sulla stessa istanza del componente. Se le credenziali non sono corrette, la connessione verrà chiusa automaticamente, e se non è presente alcuna ApiKey la richiesta viene riportata nell'evento OnHuobiError.

Method Description
SubscribeOrderUpdates

Un aggiornamento dell'ordine può essere attivato da uno dei seguenti eventi:


- Fallimento attivazione ordine condizionale (eventType=trigger)
- Cancellazione ordine condizionale prima dell'attivazione (eventType=deletion)
- Creazione ordine (eventType=creation)
- Corrispondenza ordine (eventType=trade)
- Cancellazione ordine (eventType=cancellation)

SubscribeTradeClearing Aggiornamento solo quando l'ordine è in transazione o in cancellazione. L'aggiornamento della transazione dell'ordine avviene in modalità tick by tick, il che significa che se l'ordine di un taker corrisponde a più ordini di maker, le più transazioni simultanee verranno diffuse una alla volta. Tuttavia, la sequenza di aggiornamento delle transazioni multiple potrebbe non corrispondere esattamente alla sequenza delle transazioni effettuate. Inoltre, se un ordine viene annullato automaticamente immediatamente dopo le sue esecuzioni parziali, come un tipico ordine IOC, questo canale potrebbe diffondere prima l'aggiornamento di cancellazione rispetto alla transazione.
SubscribeAccountChange

Specificato il campo di sottoscrizione, l'aggiornamento può essere attivato da uno dei seguenti eventi. Il parametro aMode controlla il comportamento dell'aggiornamento:

Modalità 0: aggiorna solo quando il saldo del conto viene modificato.

Modalità 1: aggiornamento quando il saldo del conto o il saldo disponibile cambia (aggiornamenti separati).

Modalità 2: aggiornamento quando il saldo del conto o il saldo disponibile cambia (aggiornamento combinato).

Eventi

OnHuobiSubscribed: evento chiamato dopo una sottoscrizione avvenuta con successo.

OnHuobiUnSubscribed: evento chiamato dopo una cancellazione della sottoscrizione avvenuta con successo.

OnHuobiUpdate: ogni volta che c'è un aggiornamento nei dati (kline, market depth...) viene chiamato questo evento. Riporta gli aggiornamenti sia dei canali pubblici sia di quelli privati, indipendentemente da quale delle due connessioni provengano.

OnHuobiError: se si verifica un errore nell'API Huobi, questo evento fornirà informazioni sull'errore. Viene chiamato anche quando viene richiesto un canale privato e il componente non dispone di una ApiKey per aprire la connessione privata, con il parametro Code impostato a "private-credentials" e il parametro Msg che indica il nome del canale richiesto.