HTX (dawniej Huobi) to międzynarodowa wielojęzyczna giełda kryptowalut. Komponent HTX API udostępnia HTTP REST API uzupełniające istniejące Huobi WebSocket API.
Można skonfigurować następujące właściwości we właściwości Huobi (dla WebSocket) lub HTXOptions (dla REST API).
Składnik HTX rozszerza klienta Huobi WebSocket API. Gdy klient pomyślnie połączy się z serwerami HTX, wywoływane jest zdarzenie OnConnect. Jeśli ApiKey nie jest pusty, klient spróbuje połączyć się z prywatnym serwerem WebSocket i dostępne będą wyłącznie metody prywatne. Jeśli ApiKey jest pusty, klient połączy się z publicznym serwerem WebSocket i dostępne będą wyłącznie metody publiczne.
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;
Klient HTX implementuje następujące zdarzenia w celu kontroli przepływu połączeń i odbioru danych wysyłanych przez serwer WebSocket:
WebSocket API zapewnia aktualizacje danych rynkowych w czasie rzeczywistym. Pełna lista metod subskrypcji WebSocket, w tym kanałów publicznych (SubscribeKLine, SubscribeMarketDepth, SubscribeTradeDetail itp.) i prywatnych (SubscribeOrderUpdates, SubscribeTradeClearing, SubscribeAccountChange), znajduje się w dokumentacji Huobi API.
REST API zapewnia publiczne i prywatne metody żądania danych z rynków i prywatnych kont. Dostęp do REST API odbywa się przez komponent TsgcHTTP_API_HTX.
Dane rynkowe (publiczne)
| Metoda | Opis |
| GetServerTime | Pobierz czas serwera. |
| GetSymbols | Pobierz listę dostępnych symboli handlowych. |
| GetCurrencys | Pobierz listę obsługiwanych walut. |
| GetMarketTickers | Pobierz tickery dla wszystkich symboli handlowych. |
| GetMarketDetail | Pobierz 24-godzinne szczegóły rynkowe dla symbolu. |
| GetMarketDepth | Pobierz głębokość arkusza zleceń dla symbolu. Obsługuje konfigurowalny typ głębokości i poziomy głębokości. |
| GetMarketTrade | Pobierz najnowszą transakcję dla danego symbolu. |
| GetMarketHistoryTrade | Pobierz najnowszą historię transakcji dla danego symbolu. |
| GetMarketHistoryKline | Pobierz dane świec/klines. Obsługuje wiele okresów (1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year). |
Trading (prywatny)
| Metoda | Opis |
| PlaceOrder | Składa nowe zlecenie. Obsługuje typy: kupno-rynkowe, sprzedaż-rynkowa, kupno-limitowe, sprzedaż-limitowa i inne. |
| CancelOrder | Anuluj istniejące zlecenie według identyfikatora zlecenia. |
| GetOrder | Pobierz szczegóły określonego zlecenia. |
| GetOpenOrders | Pobierz listę otwartych zleceń dla konta. |
| GetOrderHistory | Pobierz historię zleceń dla symbolu. |
Konto (prywatne)
| Metoda | Opis |
| GetAccounts | Pobiera listę kont. |
| GetAccountBalance | Pobiera saldo określonego konta. |
| GetAccountAssetValuation | Pobiera całkowitą wycenę aktywów dla danego typu konta (np. spot). |
Poniżej znajduje się przykład użycia 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');