Update KuCoin-API in sgcWebSockets

· Functies
Integratie van de KuCoin Spot- en Futures-API in Delphi

De componenten TsgcWSAPI_Kucoin en TsgcWSAPI_Kucoin_Futures bieden uitgebreide Delphi-toegang tot de KuCoin-beurs: realtime WebSocket-marktdata, private account-streams en een volledige REST-API voor trading, opnames en marktvragen. Deze gids behandelt elke beschikbare methode voor spot en futures, met configuratiedetails en werkende codevoorbeelden.

Inhoudsopgave

Spot-WebSocket-API

De Spot-WebSocket-API biedt realtime streaming voor marktdata en private accountgebeurtenissen. Publieke kanalen zijn beschikbaar zonder authenticatie; private kanalen vereisen geldige API-credentials.

Publieke kanalen

Publieke kanalen streamen marktdata naar alle verbonden clients zonder dat authenticatie vereist is. Elke subscribe-methode heeft een bijbehorende unsubscribe-methode.

Methode Beschrijving
SubscribeSymbolTicker Abonneert zich op realtime ticker-updates voor een specifiek handelssymbool.
SubscribeAllSymbolsTicker Abonneert zich op ticker-updates voor alle symbolen op de exchange.
SubscribeSymbolSnapshot Abonneert zich op snapshot-data voor een specifiek symbool, inclusief 24-uursstatistieken.
SubscribeMarketSnapshot Abonneert zich op marktbrede snapshot-updates.
SubscribeLevel2MarketData Abonneert zich op Level 2-orderboekwijzigingen (volledige diepte).
SubscribeLevel2_5BestAskBid Abonneert zich op de top 5 beste ask- en bid-niveaus van het orderboek.
SubscribeLevel2_50BestAskBid Abonneert zich op de top 50 beste ask- en bid-niveaus van het orderboek.
SubscribeKlines Abonneert zich op candlestick-/kline-data voor een symbool met het opgegeven interval.
SubscribeMatchExecutionData Abonneert zich op realtime match-/uitvoeringsdata voor trades op een symbool.
SubscribeIndexPrice Abonneert zich op indexprijs-updates voor een symbool.
SubscribeMarkPrice Abonneert zich op mark-price-updates voor een symbool.
SubscribeOrderBookChanged Abonneert zich op orderboekwijzigingsgebeurtenissen voor een symbool.
Let op: Elke hierboven vermelde Subscribe-methode heeft een bijbehorende UnSubscribe-tegenhanger (bijvoorbeeld UnSubscribeSymbolTicker) om updates voor dat kanaal te stoppen.

Private kanalen

Private kanalen vereisen geldige API-credentials en bieden realtime updates over je orders, saldi, posities en margin-activiteit.

Methode Beschrijving
SubscribeTradeOrders Abonneert zich op realtime updates van je trade-orders (open, gevuld, geannuleerd).
SubscribeAccountBalance Abonneert zich op realtime wijzigingen van het accountsaldo.
SubscribePositionStatus Abonneert zich op positiestatus-updates voor margin-trading.
SubscribeMarginTradeOrders Abonneert zich op updates van margin-trade-orders.
SubscribeStopOrder Abonneert zich op trigger- en status-updates van stop-orders.

Spot-REST-API

De Spot-REST-API is toegankelijk via de REST_API-property van TsgcWSAPI_Kucoin. Alle methodes geven JSON-strings terug. De API dekt accounts, opnames, orderbeheer, stop-orders en marktdata.

Accounts

Methode Beschrijving
GetAccounts Geeft een lijst terug van alle accounts (main, trade, margin).
GetAccount Geeft details terug van een specifiek account op basis van account-ID.
GetAccountBalanceSubAccount Geeft het saldo terug van een sub-account.
InnerTransfer Verplaatst fondsen tussen je interne accounts (bijvoorbeeld main naar trade).

Opnames

Methode Beschrijving
GetWithdrawalsList Geeft een lijst terug van recente opnamegegevens.
GetHistoricalWithdrawalsList Geeft historische opnamegegevens terug buiten het recente venster.
GetWithdrawalsQuotas Geeft de opnamequota en -limieten terug voor een opgegeven valuta.
ApplyWithdraw Start een opname naar een extern adres.
CancelWithdraw Annuleert een lopende opname op basis van het ID.

Orders

Methode Beschrijving
PlaceOrder Plaatst een nieuwe spot-order (market of limit, koop of verkoop).
PlaceMarginOrder Plaatst een margin-order met geleende fondsen.
CancelOrderByClientOid Annuleert een order op basis van het door de client toegekende order-ID.
GetOrder Geeft details terug van een specifieke order op basis van het door de exchange toegekende ID.
GetOrderByClientOid Geeft details terug van een specifieke order op basis van het door de client toegekende ID.
ListFills Geeft een lijst terug van gevulde orders (trade-uitvoeringen).
GetRecentFills Geeft de meest recente fill-records terug.

Stop-orders

Methode Beschrijving
PlaceStopOrder Plaatst een stop-order die wordt geactiveerd wanneer de stop-prijs bereikt is.
PlaceStopMarketOrder Plaatst een stop-market-order die wordt uitgevoerd tegen marktprijs zodra deze geactiveerd is.
PlaceStopLimitOrder Plaatst een stop-limit-order die een limit-order aanmaakt zodra deze geactiveerd is.
CancelStopOrder Annuleert een stop-order op basis van het door de exchange toegekende ID.
CancelStopOrderByClientOid Annuleert een stop-order op basis van het door de client toegekende ID.
CancelAllStopOrders Annuleert alle actieve stop-orders, optioneel gefilterd op symbool.
GetStopOrder Geeft details terug van een specifieke stop-order op basis van het door de exchange toegekende ID.
GetStopOrderByClientOid Geeft details terug van een specifieke stop-order op basis van het door de client toegekende ID.
ListStopOrders Geeft een lijst terug van alle actieve stop-orders.

Marktdata

Methode Beschrijving
GetSymbolList Geeft een lijst terug van beschikbare handelssymbolen.
GetAllTickers Geeft ticker-data terug voor alle handelsparen.
GetMarketList Geeft een lijst terug van beschikbare markten.
GetPartOrderBook100 Geeft de top 100-vermeldingen terug van het orderboek voor een symbool.
GetFullOrderBook Geeft het volledige orderboek terug voor een symbool (Level 3-data).
GetHistories Geeft de recente handelsgeschiedenis terug voor een symbool.
GetKLines Geeft candlestick-/kline-data terug voor een symbool met een opgegeven interval.
GetCurrencies Geeft een lijst terug van alle ondersteunde valuta's.
GetCurrencyDetail Geeft details terug van een specifieke valuta (chain-informatie, precisie, enzovoort).
GetFiatPrice Geeft de fiat-prijs terug voor opgegeven valuta's (bijvoorbeeld de USD-waarde van BTC).

Futures-WebSocket-API

De Futures-WebSocket-API wordt geleverd door TsgcWSAPI_Kucoin_Futures en biedt realtime streaming voor futurescontract-data en private accountgebeurtenissen.

Publieke kanalen

Methode Beschrijving
SubscribeSymbolTickerV2 Abonneert zich op V2-ticker-updates voor een futurescontract-symbool.
SubscribeSymbolTicker Abonneert zich op ticker-updates voor een futurescontract-symbool.
SubscribeLevel2MarketData Abonneert zich op Level 2-orderboekdata voor een futurescontract.
SubscribeExecutionData Abonneert zich op realtime match-/uitvoeringsdata voor futures-trades.
SubscribeLevel2_5BestAskBid Abonneert zich op de top 5 beste ask-/bid-niveaus voor een futurescontract.
SubscribeLevel2_50BestAskBid Abonneert zich op de top 50 beste ask-/bid-niveaus voor een futurescontract.
SubscribeContractMarketData Abonneert zich op contractbrede marktdata (funding rate, mark price, enzovoort).
SubscribeSystemAnnouncements Abonneert zich op systeembrede aankondigingen en onderhoudsmeldingen.
SubscribeTransactionStatistics Abonneert zich op geaggregeerde transactiestatistieken voor een futurescontract.
Let op: Elke Subscribe-methode in de futures-tabellen heeft een bijbehorende UnSubscribe-tegenhanger om updates voor dat kanaal te stoppen.

Private kanalen

Methode Beschrijving
SubscribeTradeOrders Abonneert zich op realtime updates van je futures-trade-orders.
SubscribeStopOrder Abonneert zich op trigger- en status-updates van stop-orders voor futures.
SubscribeAccountBalance Abonneert zich op realtime wijzigingen van het futures-accountsaldo.
SubscribePositionChange Abonneert zich op positiewijzigings-gebeurtenissen (open, sluiten, liquidatie).

Futures-REST-API

De Futures-REST-API is toegankelijk via de REST_API-property van TsgcWSAPI_Kucoin_Futures. Deze methodes dekken margin-beheer, risicolimieten, funding-geschiedenis en orderboek-queries.

Methode Beschrijving
AddMarginManually Voegt handmatig margin toe aan een futurespositie.
ObtainFuturesRiskLimitLevel Geeft het huidige risicolimietniveau terug voor een futurescontract.
AdjustRiskLimitLevel Past het risicolimietniveau aan voor een futurescontract.
GetFundingHistory Geeft de funding-rate-geschiedenis terug voor een futurescontract.
GetPartOrderBook100 Geeft de top 100-vermeldingen terug van het futures-orderboek.
GetFullOrderBook Geeft het volledige futures-orderboek terug.
GetLevel2PullingMessages Geeft Level 2-pulling-berichten terug voor incrementele orderboek-updates.
GetInterestRateList Geeft de rentetarievenlijst terug die wordt gebruikt voor funding-berekeningen.
GetIndexList Geeft de indexsamenstellingslijst terug voor een futurescontract.

Codevoorbeeld

Het volgende voorbeeld laat zien hoe je het TsgcWSAPI_Kucoin-component aanmaakt en configureert voor spot-trading, authenticeert met de API, tickers ophaalt via REST, een order plaatst en je abonneert op een realtime tickerstream via WebSocket.

var
  oClient: TsgcWebSocketClient;
  oKucoin: TsgcWSAPI_Kucoin;
begin
  // WebSocket-client aanmaken
  oClient := TsgcWebSocketClient.Create(nil);
  oKucoin := TsgcWSAPI_Kucoin.Create(nil);
  oKucoin.Client := oClient;
  // API-credentials configureren
  oKucoin.Kucoin.ApiKey := 'your_api_key';
  oKucoin.Kucoin.ApiSecret := 'your_api_secret';
  oKucoin.Kucoin.Passphrase := 'your_passphrase';
  // Verbinden met KuCoin
  oClient.Active := True;
  // REST: alle tickers ophalen
  ShowMessage(oKucoin.REST_API.GetAllTickers);
  // REST: een limit-order plaatsen
  ShowMessage(oKucoin.REST_API.PlaceOrder(myOrder));
  // WebSocket: abonneren op BTC-USDT-ticker
  oKucoin.SubscribeSymbolTicker('BTC-USDT');
end;

WebSocket-events afhandelen

Wijs een event-handler toe om binnenkomende berichten te verwerken. De gebeurtenis levert het topic, het subject en de JSON-data voor elke update.

procedure TForm1.OnKucoinEvent(Sender: TObject;
  const aTopic, aSubject, aData: string);
begin
  // aTopic identificeert het kanaal
  // aSubject levert het specifieke symbool of de identificator
  // aData bevat de JSON-payload
  Memo1.Lines.Add(aTopic + ' [' + aSubject + ']: ' + aData);
end;

Configuratie en opmerkingen

Configuratie-properties

Zowel TsgcWSAPI_Kucoin (spot) als TsgcWSAPI_Kucoin_Futures (futures) delen dezelfde authenticatie-properties, die toegankelijk zijn via de Kucoin-property.

Property Type Beschrijving
Kucoin.ApiKey String Je KuCoin-API-sleutel. Genereer deze op de KuCoin API Management-pagina.
Kucoin.ApiSecret String Je KuCoin-API-secret. Bewaar deze waarde veilig en geef deze nooit prijs in client-side code.
Kucoin.Passphrase String De passphrase die je hebt ingesteld bij het aanmaken van de API-sleutel. Vereist voor alle geauthenticeerde requests.

Belangrijke opmerkingen

Beveiliging: Hard-code je API-sleutel, secret of passphrase nooit rechtstreeks in productiecode. Gebruik een veilig configuratiebestand of een omgevingsvariabele om credentials op te slaan.