Kucoin API Update sgcWebSockets

· Funkcje

Integracja API KuCoin Spot i Futures w Delphi

Komponenty TsgcWSAPI_Kucoin i TsgcWSAPI_Kucoin_Futures zapewniają kompleksowy dostęp do giełdy KuCoin w Delphi: dane rynkowe WebSocket w czasie rzeczywistym, prywatne strumienie konta i pełne REST API do handlu, wypłat i zapytań rynkowych. Ten przewodnik opisuje każdą dostępną metodę dla spot i futures wraz ze szczegółami konfiguracji i działającymi przykładami kodu.

Spis treści

API WebSocket Spot

API WebSocket Spot zapewnia strumieniowanie w czasie rzeczywistym danych rynkowych i zdarzeń prywatnego konta. Kanały publiczne są dostępne bez uwierzytelniania, natomiast kanały prywatne wymagają prawidłowych danych uwierzytelniających API.

Kanały publiczne

Kanały publiczne przesyłają strumieniowo dane rynkowe do wszystkich podłączonych klientów bez wymagania uwierzytelniania. Każda metoda subskrypcji ma odpowiednią metodę anulowania subskrypcji.

Metoda Opis
SubscribeSymbolTicker Subskrybuje aktualizacje tickera w czasie rzeczywistym dla określonego symbolu handlowego.
SubscribeAllSymbolsTicker Subskrybuje aktualizacje tickera dla wszystkich symboli na giełdzie.
SubscribeSymbolSnapshot Subskrybuje dane migawkowe dla określonego symbolu, w tym statystyki 24h.
SubscribeMarketSnapshot Subskrybuje aktualizacje migawkowe całego rynku.
SubscribeLevel2MarketData Subskrybuje zmiany arkusza zleceń poziomu 2 (pełna głębokość).
SubscribeLevel2_5BestAskBid Subskrybuje 5 najlepszych poziomów kupna i sprzedaży w arkuszu zleceń.
SubscribeLevel2_50BestAskBid Subskrybuje 50 najlepszych poziomów kupna i sprzedaży w arkuszu zleceń.
SubscribeKlines Subskrybuje dane świecowe/kline dla symbolu w podanym interwale.
SubscribeMatchExecutionData Subskrybuje dane dopasowania/realizacji transakcji na symbolu w czasie rzeczywistym.
SubscribeIndexPrice Subskrybuje aktualizacje ceny indeksu dla symbolu.
SubscribeMarkPrice Subskrybuje aktualizacje ceny mark dla symbolu.
SubscribeOrderBookChanged Subskrybuje zdarzenia zmiany arkusza zleceń dla symbolu.
Uwaga: każda z wymienionych metod Subscribe ma odpowiednik UnSubscribe (np. UnSubscribeSymbolTicker) służący do zatrzymania odbierania aktualizacji z danego kanału.

Kanały prywatne

Kanały prywatne wymagają prawidłowych danych uwierzytelniających API i dostarczają aktualizacji w czasie rzeczywistym dotyczących zleceń, sald, pozycji i aktywności marżowej.

Metoda Opis
SubscribeTradeOrders Subskrybuje aktualizacje zleceń handlowych w czasie rzeczywistym (otwarte, zrealizowane, anulowane).
SubscribeAccountBalance Subskrybuje zmiany salda konta w czasie rzeczywistym.
SubscribePositionStatus Subskrybuje aktualizacje statusu pozycji w handlu marżowym.
SubscribeMarginTradeOrders Subskrybuje aktualizacje zleceń w handlu marżowym.
SubscribeStopOrder Subskrybuje wyzwalanie zleceń stop i aktualizacje statusu.

REST API Spot

Dostęp do REST API Spot uzyskuje się przez właściwość REST_API komponentu TsgcWSAPI_Kucoin. Wszystkie metody zwracają ciągi JSON. API obejmuje konta, wypłaty, zarządzanie zleceniami, zlecenia stop i dane rynkowe.

Konta

Metoda Opis
GetAccounts Zwraca listę wszystkich kont (główne, handlowe, marżowe).
GetAccount Zwraca szczegóły określonego konta według identyfikatora konta.
GetAccountBalanceSubAccount Zwraca saldo podkonta.
InnerTransfer Przenosi środki między kontami wewnętrznymi (np. z głównego na handlowe).

Wypłaty

Metoda Opis
GetWithdrawalsList Zwraca listę ostatnich rekordów wypłat.
GetHistoricalWithdrawalsList Zwraca historyczne rekordy wypłat spoza ostatniego okna czasowego.
GetWithdrawalsQuotas Zwraca limit i ograniczenia wypłat dla danej waluty.
ApplyWithdraw Inicjuje wypłatę na zewnętrzny adres.
CancelWithdraw Anuluje oczekującą wypłatę według jej identyfikatora.

Zlecenia

Metoda Opis
PlaceOrder Składa nowe zlecenie spot (rynkowe lub z limitem, kupno lub sprzedaż).
PlaceMarginOrder Składa zlecenie marżowe z pożyczonymi środkami.
CancelOrderByClientOid Anuluje zlecenie przy użyciu identyfikatora przypisanego przez klienta.
GetOrder Zwraca szczegóły określonego zlecenia według identyfikatora przypisanego przez giełdę.
GetOrderByClientOid Zwraca szczegóły określonego zlecenia według identyfikatora przypisanego przez klienta.
ListFills Zwraca listę zrealizowanych zleceń (wykonania transakcji).
GetRecentFills Zwraca najnowsze rekordy realizacji zleceń.

Zlecenia stop

Metoda Opis
PlaceStopOrder Składa zlecenie stop wyzwalane po osiągnięciu ceny stop.
PlaceStopMarketOrder Składa zlecenie stop-rynkowe realizowane po cenie rynkowej po wyzwoleniu.
PlaceStopLimitOrder Składa zlecenie stop-limit, które tworzy zlecenie z limitem po wyzwoleniu.
CancelStopOrder Anuluje zlecenie stop według identyfikatora przypisanego przez giełdę.
CancelStopOrderByClientOid Anuluje zlecenie stop według identyfikatora przypisanego przez klienta.
CancelAllStopOrders Anuluje wszystkie aktywne zlecenia stop, opcjonalnie filtrowane według symbolu.
GetStopOrder Zwraca szczegóły określonego zlecenia stop według identyfikatora giełdy.
GetStopOrderByClientOid Zwraca szczegóły określonego zlecenia stop według identyfikatora klienta.
ListStopOrders Zwraca listę wszystkich aktywnych zleceń stop.

Dane rynkowe

Metoda Opis
GetSymbolList Zwraca listę dostępnych symboli handlowych.
GetAllTickers Zwraca dane tickera dla wszystkich par handlowych.
GetMarketList Zwraca listę dostępnych rynków.
GetPartOrderBook100 Zwraca 100 najlepszych pozycji arkusza zleceń dla symbolu.
GetFullOrderBook Zwraca pełny arkusz zleceń dla symbolu (dane poziomu 3).
GetHistories Zwraca ostatnią historię transakcji dla symbolu.
GetKLines Zwraca dane świecowe/kline dla symbolu w podanym interwale.
GetCurrencies Zwraca listę wszystkich obsługiwanych walut.
GetCurrencyDetail Zwraca szczegóły określonej waluty (informacje o łańcuchu, precyzja itp.).
GetFiatPrice Zwraca cenę fiat dla określonych walut (np. wartość BTC w USD).

API WebSocket Futures

API WebSocket Futures jest dostarczane przez TsgcWSAPI_Kucoin_Futures i oferuje strumieniowanie w czasie rzeczywistym danych kontraktów futures i zdarzeń prywatnego konta.

Kanały publiczne

Metoda Opis
SubscribeSymbolTickerV2 Subskrybuje aktualizacje tickera V2 dla symbolu kontraktu futures.
SubscribeSymbolTicker Subskrybuje aktualizacje tickera dla symbolu kontraktu futures.
SubscribeLevel2MarketData Subskrybuje dane arkusza zleceń poziomu 2 dla kontraktu futures.
SubscribeExecutionData Subskrybuje dane dopasowania/realizacji transakcji futures w czasie rzeczywistym.
SubscribeLevel2_5BestAskBid Subskrybuje 5 najlepszych poziomów kupna/sprzedaży dla kontraktu futures.
SubscribeLevel2_50BestAskBid Subskrybuje 50 najlepszych poziomów kupna/sprzedaży dla kontraktu futures.
SubscribeContractMarketData Subskrybuje dane rynkowe na poziomie kontraktu (stopa finansowania, cena mark itp.).
SubscribeSystemAnnouncements Subskrybuje komunikaty systemowe i powiadomienia o konserwacji.
SubscribeTransactionStatistics Subskrybuje zagregowane statystyki transakcji dla kontraktu futures.
Uwaga: każda metoda Subscribe z tabel futures ma odpowiednik UnSubscribe służący do zatrzymania odbierania aktualizacji z danego kanału.

Kanały prywatne

Metoda Opis
SubscribeTradeOrders Subskrybuje aktualizacje zleceń handlowych futures w czasie rzeczywistym.
SubscribeStopOrder Subskrybuje wyzwalanie zleceń stop i aktualizacje statusu dla futures.
SubscribeAccountBalance Subskrybuje zmiany salda konta futures w czasie rzeczywistym.
SubscribePositionChange Subskrybuje zdarzenia zmiany pozycji (otwarcie, zamknięcie, likwidacja).

REST API Futures

Dostęp do REST API Futures uzyskuje się przez właściwość REST_API komponentu TsgcWSAPI_Kucoin_Futures. Metody te obejmują zarządzanie depozytem zabezpieczającym, limity ryzyka, historię finansowania i zapytania do arkusza zleceń.

Metoda Opis
AddMarginManually Ręcznie dodaje depozyt zabezpieczający do pozycji futures.
ObtainFuturesRiskLimitLevel Zwraca bieżący poziom limitu ryzyka dla kontraktu futures.
AdjustRiskLimitLevel Dostosowuje poziom limitu ryzyka dla kontraktu futures.
GetFundingHistory Zwraca historię stóp finansowania dla kontraktu futures.
GetPartOrderBook100 Zwraca 100 najlepszych pozycji arkusza zleceń futures.
GetFullOrderBook Zwraca pełny arkusz zleceń futures.
GetLevel2PullingMessages Zwraca wiadomości pulling poziomu 2 dla przyrostowych aktualizacji arkusza zleceń.
GetInterestRateList Zwraca listę stóp procentowych używanych do obliczeń finansowania.
GetIndexList Zwraca listę składu indeksu dla kontraktu futures.

Przykład kodu

Poniższy przykład pokazuje, jak utworzyć i skonfigurować komponent TsgcWSAPI_Kucoin do handlu spot, uwierzytelnić się w API, pobrać tickery przez REST, złożyć zlecenie i subskrybować strumień tickera w czasie rzeczywistym przez WebSocket.

var
  oClient: TsgcWebSocketClient;
  oKucoin: TsgcWSAPI_Kucoin;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  oKucoin := TsgcWSAPI_Kucoin.Create(nil);
  oKucoin.Client := oClient;
  // Configure API credentials
  oKucoin.Kucoin.ApiKey := 'your_api_key';
  oKucoin.Kucoin.ApiSecret := 'your_api_secret';
  oKucoin.Kucoin.Passphrase := 'your_passphrase';
  // Connect to KuCoin
  oClient.Active := True;
  // REST: Get all tickers
  ShowMessage(oKucoin.REST_API.GetAllTickers);
  // REST: Place a limit order
  ShowMessage(oKucoin.REST_API.PlaceOrder(myOrder));
  // WebSocket: Subscribe to BTC-USDT ticker
  oKucoin.SubscribeSymbolTicker('BTC-USDT');
end;

Obsługa zdarzeń WebSocket

Przypisz handler zdarzeń do przetwarzania przychodzących wiadomości. Zdarzenie dostarcza temat, podmiot i dane JSON dla każdej aktualizacji.

procedure TForm1.OnKucoinEvent(Sender: TObject;
  const aTopic, aSubject, aData: string);
begin
  // aTopic identifies the channel
  // aSubject provides the specific symbol or identifier
  // aData contains the JSON payload
  Memo1.Lines.Add(aTopic + ' [' + aSubject + ']: ' + aData);
end;

Konfiguracja i uwagi

Właściwości konfiguracji

Oba komponenty TsgcWSAPI_Kucoin (spot) i TsgcWSAPI_Kucoin_Futures (futures) współdzielą te same właściwości uwierzytelniania, dostępne przez właściwość Kucoin.

Właściwość Typ Opis
Kucoin.ApiKey String Twój klucz API KuCoin. Wygeneruj go na stronie zarządzania API KuCoin.
Kucoin.ApiSecret String Twój sekret API KuCoin. Przechowuj tę wartość bezpiecznie i nigdy nie ujawniaj jej w kodzie po stronie klienta.
Kucoin.Passphrase String Hasło ustawione podczas tworzenia klucza API. Wymagane dla wszystkich uwierzytelnionych żądań.

Ważne uwagi

Bezpieczeństwo: nigdy nie umieszczaj na stałe klucza API, sekretu ani hasła bezpośrednio w kodzie produkcyjnym. Przechowuj dane uwierzytelniające w bezpiecznym pliku konfiguracyjnym lub zmiennej środowiskowej.