Aggiornamento API Kucoin per sgcWebSockets

· Funzionalità
Integrazione delle API Spot e Futures di KuCoin in Delphi

I componenti TsgcWSAPI_Kucoin e TsgcWSAPI_Kucoin_Futures forniscono un accesso Delphi completo all'exchange KuCoin, coprendo dati di mercato WebSocket in tempo reale, stream privati dell'account e un'API REST completa per il trading, i prelievi e le query di mercato. Questa guida copre ogni metodo disponibile sia per spot che per futures, con dettagli di configurazione ed esempi di codice funzionanti.

Indice

API WebSocket Spot

L'API WebSocket spot fornisce streaming in tempo reale per dati di mercato ed eventi privati dell'account. I canali pubblici sono disponibili senza autenticazione, mentre i canali privati richiedono credenziali API valide.

Canali pubblici

I canali pubblici trasmettono dati di mercato a tutti i client connessi senza richiedere autenticazione. Ogni metodo subscribe ha un corrispondente metodo unsubscribe.

MetodoDescrizione
SubscribeSymbolTickerIscriviti agli aggiornamenti del ticker in tempo reale per uno specifico simbolo di trading.
SubscribeAllSymbolsTickerIscriviti agli aggiornamenti del ticker per tutti i simboli sull'exchange.
SubscribeSymbolSnapshotIscriviti ai dati snapshot per un simbolo specifico, incluse le statistiche delle 24h.
SubscribeMarketSnapshotIscriviti agli aggiornamenti snapshot di tutto il mercato.
SubscribeLevel2MarketDataIscriviti ai cambiamenti del book degli ordini di Livello 2 (profondità completa).
SubscribeLevel2_5BestAskBidIscriviti ai 5 migliori livelli ask e bid del book degli ordini.
SubscribeLevel2_50BestAskBidIscriviti ai 50 migliori livelli ask e bid del book degli ordini.
SubscribeKlinesIscriviti ai dati candlestick/kline per un simbolo all'intervallo specificato.
SubscribeMatchExecutionDataIscriviti ai dati di match/esecuzione in tempo reale per gli scambi su un simbolo.
SubscribeIndexPriceIscriviti agli aggiornamenti dell'index price per un simbolo.
SubscribeMarkPriceIscriviti agli aggiornamenti del mark price per un simbolo.
SubscribeOrderBookChangedIscriviti agli eventi di cambiamento del book degli ordini per un simbolo.
Nota: ogni metodo Subscribe elencato sopra ha una controparte UnSubscribe corrispondente (es. UnSubscribeSymbolTicker) per smettere di ricevere aggiornamenti per quel canale.

Canali privati

I canali privati richiedono credenziali API valide e forniscono aggiornamenti in tempo reale sui tuoi ordini, saldi, posizioni e attività di margine.

MetodoDescrizione
SubscribeTradeOrdersIscriviti agli aggiornamenti in tempo reale sui tuoi ordini di trading (aperti, eseguiti, cancellati).
SubscribeAccountBalanceIscriviti ai cambiamenti del saldo dell'account in tempo reale.
SubscribePositionStatusIscriviti agli aggiornamenti dello stato delle posizioni per il margin trading.
SubscribeMarginTradeOrdersIscriviti agli aggiornamenti degli ordini di margin trade.
SubscribeStopOrderIscriviti agli aggiornamenti di trigger e stato degli stop order.

API REST Spot

L'API REST spot è accessibile tramite la proprietà REST_API di TsgcWSAPI_Kucoin. Tutti i metodi restituiscono stringhe JSON. L'API copre account, prelievi, gestione degli ordini, stop order e dati di mercato.

Account

MetodoDescrizione
GetAccountsRestituisce una lista di tutti gli account (main, trade, margin).
GetAccountRestituisce i dettagli per un account specifico tramite ID account.
GetAccountBalanceSubAccountRestituisce il saldo di un sub-account.
InnerTransferTrasferisce fondi tra i tuoi account interni (es. main a trade).

Prelievi

MetodoDescrizione
GetWithdrawalsListRestituisce un elenco dei record di prelievo recenti.
GetHistoricalWithdrawalsListRestituisce record storici di prelievo oltre la finestra recente.
GetWithdrawalsQuotasRestituisce la quota di prelievo e i limiti per una data valuta.
ApplyWithdrawAvvia un prelievo verso un indirizzo esterno.
CancelWithdrawCancella un prelievo in sospeso tramite il suo ID.

Ordini

MetodoDescrizione
PlaceOrderPiazza un nuovo ordine spot (market o limit, buy o sell).
PlaceMarginOrderPiazza un ordine di margine con fondi presi in prestito.
CancelOrderByClientOidCancella un ordine usando l'ID ordine assegnato dal client.
GetOrderRestituisce i dettagli per un ordine specifico tramite il suo ID assegnato dall'exchange.
GetOrderByClientOidRestituisce i dettagli per un ordine specifico tramite il suo ID assegnato dal client.
ListFillsRestituisce un elenco di ordini eseguiti (esecuzioni di scambi).
GetRecentFillsRestituisce i record di fill più recenti.

Stop Order

MetodoDescrizione
PlaceStopOrderPiazza uno stop order che si attiva quando viene raggiunto lo stop price.
PlaceStopMarketOrderPiazza uno stop-market order che si esegue al prezzo di mercato una volta attivato.
PlaceStopLimitOrderPiazza uno stop-limit order che crea un ordine limit una volta attivato.
CancelStopOrderCancella uno stop order tramite il suo ID assegnato dall'exchange.
CancelStopOrderByClientOidCancella uno stop order tramite il suo ID assegnato dal client.
CancelAllStopOrdersCancella tutti gli stop order attivi, opzionalmente filtrati per simbolo.
GetStopOrderRestituisce i dettagli per uno stop order specifico tramite il suo ID assegnato dall'exchange.
GetStopOrderByClientOidRestituisce i dettagli per uno stop order specifico tramite il suo ID assegnato dal client.
ListStopOrdersRestituisce un elenco di tutti gli stop order attivi.

Dati di mercato

MetodoDescrizione
GetSymbolListRestituisce un elenco dei simboli di trading disponibili.
GetAllTickersRestituisce i dati ticker per tutte le coppie di trading.
GetMarketListRestituisce un elenco dei mercati disponibili.
GetPartOrderBook100Restituisce le prime 100 voci del book degli ordini per un simbolo.
GetFullOrderBookRestituisce il book degli ordini completo per un simbolo (dati di Livello 3).
GetHistoriesRestituisce la cronologia recente degli scambi per un simbolo.
GetKLinesRestituisce i dati candlestick/kline per un simbolo a un dato intervallo.
GetCurrenciesRestituisce un elenco di tutte le valute supportate.
GetCurrencyDetailRestituisce dettagli per una valuta specifica (info catena, precisione, ecc.).
GetFiatPriceRestituisce il prezzo fiat per le valute specificate (es. valore in USD di BTC).

API WebSocket Futures

L'API WebSocket futures è fornita da TsgcWSAPI_Kucoin_Futures e offre streaming in tempo reale per dati dei contratti futures ed eventi privati dell'account.

Canali pubblici

MetodoDescrizione
SubscribeSymbolTickerV2Iscriviti agli aggiornamenti ticker V2 per un simbolo di contratto futures.
SubscribeSymbolTickerIscriviti agli aggiornamenti ticker per un simbolo di contratto futures.
SubscribeLevel2MarketDataIscriviti ai dati del book degli ordini di Livello 2 per un contratto futures.
SubscribeExecutionDataIscriviti ai dati di match/esecuzione in tempo reale per gli scambi futures.
SubscribeLevel2_5BestAskBidIscriviti ai 5 migliori livelli ask/bid per un contratto futures.
SubscribeLevel2_50BestAskBidIscriviti ai 50 migliori livelli ask/bid per un contratto futures.
SubscribeContractMarketDataIscriviti ai dati di mercato a livello di contratto (funding rate, mark price, ecc.).
SubscribeSystemAnnouncementsIscriviti agli annunci di sistema e avvisi di manutenzione.
SubscribeTransactionStatisticsIscriviti alle statistiche aggregate delle transazioni per un contratto futures.
Nota: ogni metodo Subscribe elencato nelle tabelle futures ha una controparte UnSubscribe corrispondente per smettere di ricevere aggiornamenti per quel canale.

Canali privati

MetodoDescrizione
SubscribeTradeOrdersIscriviti agli aggiornamenti in tempo reale sui tuoi ordini di trade futures.
SubscribeStopOrderIscriviti agli aggiornamenti di trigger e stato degli stop order per i futures.
SubscribeAccountBalanceIscriviti ai cambiamenti del saldo del conto futures in tempo reale.
SubscribePositionChangeIscriviti agli eventi di cambiamento di posizione (apertura, chiusura, liquidazione).

API REST Futures

L'API REST futures è accessibile tramite la proprietà REST_API di TsgcWSAPI_Kucoin_Futures. Questi metodi coprono la gestione dei margini, i limiti di rischio, la cronologia del funding e le query del book degli ordini.

MetodoDescrizione
AddMarginManuallyAggiungi manualmente margine a una posizione futures.
ObtainFuturesRiskLimitLevelRestituisce il livello di limite di rischio corrente per un contratto futures.
AdjustRiskLimitLevelRegola il livello di limite di rischio per un contratto futures.
GetFundingHistoryRestituisce la cronologia del funding rate per un contratto futures.
GetPartOrderBook100Restituisce le prime 100 voci del book degli ordini futures.
GetFullOrderBookRestituisce il book degli ordini futures completo.
GetLevel2PullingMessagesRestituisce messaggi pulling di Livello 2 per aggiornamenti incrementali del book.
GetInterestRateListRestituisce l'elenco dei tassi di interesse usati per i calcoli di funding.
GetIndexListRestituisce l'elenco di composizione dell'indice per un contratto futures.

Esempio di codice

L'esempio seguente dimostra come creare e configurare il componente TsgcWSAPI_Kucoin per il trading spot, autenticarsi con l'API, recuperare ticker via REST, piazzare un ordine e iscriversi a uno stream ticker in tempo reale via 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;

Gestione degli eventi WebSocket

Assegna un gestore di evento per elaborare i messaggi in arrivo. L'evento fornisce il topic, il subject e i dati JSON per ogni aggiornamento.

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;

Configurazione e note

Proprietà di configurazione

Sia TsgcWSAPI_Kucoin (spot) che TsgcWSAPI_Kucoin_Futures (futures) condividono le stesse proprietà di autenticazione, accessibili tramite la proprietà Kucoin.

ProprietàTipoDescrizione
Kucoin.ApiKeyStringaLa tua API key KuCoin. Generala dalla pagina API Management di KuCoin.
Kucoin.ApiSecretStringaIl tuo API secret KuCoin. Mantieni questo valore al sicuro e non esporlo mai nel codice client.
Kucoin.PassphraseStringaLa passphrase che hai impostato durante la creazione dell'API key. Richiesta per tutte le richieste autenticate.

Note importanti

Sicurezza: non scrivere mai a hard-code la tua API key, secret o passphrase direttamente nel codice di produzione. Usa un file di configurazione sicuro o una variabile d'ambiente per memorizzare le credenziali.