HTX (precedentemente Huobi) è un exchange di criptovalute internazionale e multilingue. Il componente API HTX fornisce una REST API HTTP a complemento dell'esistente Huobi WebSocket API.
È possibile configurare le seguenti proprietà nella proprietà Huobi (per WebSocket) o nella proprietà HTXOptions (per REST API).
Il componente HTX estende il client WebSocket API Huobi. Quando il client si connette con successo ai server HTX, viene generato l'evento OnConnect. Se ApiKey non è vuoto, il client tenterà di connettersi al server websocket privato, quindi saranno disponibili solo i metodi privati. Se ApiKey è vuoto, il client si connetterà al server websocket pubblico e saranno disponibili solo i metodi pubblici.
oClient := TsgcWebSocketClient.Create(nil);
oHTX := TsgcWS_API_Huobi.Create(nil);
oHTX.Client := oClient;
oHTX.Huobi.ApiKey := 'your_api_key';
oHTX.Huobi.ApiSecret := 'your_api_secret';
oClient.Active := True;
procedure OnConnect(Connection: TsgcWSConnection);
begin
DoLog('#HTX Connected');
end;
Il client HTX implementa i seguenti eventi per controllare il flusso di connessione e ottenere i dati inviati dal server WebSocket:
L'API WebSocket fornisce aggiornamenti di dati di mercato in tempo reale. Consultare la documentazione Huobi API per l'elenco completo dei metodi di sottoscrizione WebSocket, inclusi i canali pubblici (SubscribeKLine, SubscribeMarketDepth, SubscribeTradeDetail, ecc.) e i canali privati (SubscribeOrderUpdates, SubscribeTradeClearing, SubscribeAccountChange).
La REST API fornisce metodi pubblici e privati per richiedere dati dai mercati e dagli account privati. La REST API è accessibile tramite il componente TsgcHTTP_API_HTX.
Dati di mercato (Pubblici)
| Method | Description |
| GetServerTime | Ottiene l'ora del server. |
| GetSymbols | Recupera l'elenco dei simboli di trading disponibili. |
| GetCurrencys | Ottieni l'elenco delle valute supportate. |
| GetMarketTickers | Ottiene i ticker per tutti i simboli di trading. |
| GetMarketDetail | Recupera il dettaglio di mercato delle ultime 24 ore per un simbolo. |
| GetMarketDepth | Recupera la profondità del book degli ordini per un simbolo. Supporta tipo di profondità e livelli di profondità configurabili. |
| GetMarketTrade | Recupera l'operazione più recente per un simbolo. |
| GetMarketHistoryTrade | Ottieni la cronologia delle transazioni più recenti per un simbolo. |
| GetMarketHistoryKline | Ottiene i dati candlestick/kline. Supporta più periodi (1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year). |
Trading (Privato)
| Method | Description |
| PlaceOrder | Inserisce un nuovo ordine. Supporta buy-market, sell-market, buy-limit, sell-limit e altri tipi di ordine. |
| CancelOrder | Annulla un ordine esistente tramite l'ID ordine. |
| GetOrder | Ottiene i dettagli di un ordine specifico. |
| GetOpenOrders | Ottiene l'elenco degli ordini aperti per un account. |
| GetOrderHistory | Ottieni la cronologia degli ordini per un simbolo. |
Account (Privato)
| Method | Description |
| GetAccounts | Ottieni l'elenco degli account. |
| GetAccountBalance | Recupera il saldo di un account specifico. |
| GetAccountAssetValuation | Ottiene la valutazione totale degli asset per un tipo di conto (ad es. spot). |
Di seguito è riportato un esempio di utilizzo della REST API.
oHTX := TsgcHTTP_API_HTX.Create(nil);
oHTX.HTXOptions.ApiKey := 'your_api_key';
oHTX.HTXOptions.ApiSecret := 'your_api_secret';
// Get market tickers
oHTX.GetMarketTickers;
// Get kline data
oHTX.GetMarketHistoryKline('btcusdt', '1min', 150);
// Place an order
oHTX.PlaceOrder('12345678', 'btcusdt', 'buy-limit', '0.001', '50000');
// Get account balance
oHTX.GetAccountBalance('12345678');