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.
- Używaj
TsgcWSAPI_Kucoin do handlu spot i TsgcWSAPI_Kucoin_Futures do handlu futures. Każdy komponent łączy się z innym punktem końcowym KuCoin.
- Właściwość
Passphrase jest obowiązkowa dla KuCoin i jest ustawiana podczas tworzenia klucza API na stronie KuCoin.
- Wszystkie metody REST zwracają ciągi JSON. Użyj parsera JSON (np.
TJSONObject z System.JSON) do przetwarzania odpowiedzi.
- Publiczne kanały WebSocket nie wymagają uwierzytelniania i można ich używać do pobierania danych rynkowych bez konfigurowania danych API.
- Prywatne kanały WebSocket i wszystkie metody REST modyfikujące stan konta wymagają prawidłowych danych uwierzytelniających API.
- KuCoin stosuje limity szybkości zarówno dla REST, jak i WebSocket API. Aktualne limity znajdziesz w oficjalnej dokumentacji KuCoin.
- Połączenia WebSocket używają systemu uwierzytelniania opartego na tokenach. Komponent obsługuje pozyskiwanie i odnawianie tokenów automatycznie.