Kucoin API Update sgcWebSockets

· Fonctionnalités
Intégration des API Spot et Futures de KuCoin en Delphi

Les composants TsgcWSAPI_Kucoin et TsgcWSAPI_Kucoin_Futures offrent un accès Delphi complet à l'exchange KuCoin, couvrant les données de marché WebSocket en temps réel, les flux de compte privés et une API REST complète pour le trading, les retraits et les requêtes de marché. Ce guide couvre toutes les méthodes disponibles côté spot et futures, avec les détails de configuration et des exemples de code fonctionnels.

Table des matières

API WebSocket Spot

L'API WebSocket Spot offre un streaming en temps réel des données de marché et des événements de compte privés. Les canaux publics sont disponibles sans authentification, tandis que les canaux privés exigent des identifiants API valides.

Canaux publics

Les canaux publics diffusent les données de marché à tous les clients connectés sans nécessiter d'authentification. Chaque méthode subscribe a une méthode unsubscribe correspondante.

Méthode Description
SubscribeSymbolTicker S'abonne aux mises à jour ticker en temps réel pour un symbole de trading spécifique.
SubscribeAllSymbolsTicker S'abonne aux mises à jour ticker pour tous les symboles de l'exchange.
SubscribeSymbolSnapshot S'abonne aux données snapshot pour un symbole spécifique, incluant les statistiques 24h.
SubscribeMarketSnapshot S'abonne aux mises à jour snapshot à l'échelle du marché.
SubscribeLevel2MarketData S'abonne aux changements du carnet d'ordres Level 2 (profondeur complète).
SubscribeLevel2_5BestAskBid S'abonne aux 5 meilleurs niveaux ask et bid du carnet d'ordres.
SubscribeLevel2_50BestAskBid S'abonne aux 50 meilleurs niveaux ask et bid du carnet d'ordres.
SubscribeKlines S'abonne aux données de chandeliers/kline pour un symbole à l'intervalle spécifié.
SubscribeMatchExecutionData S'abonne aux données match/exécution en temps réel pour les trades d'un symbole.
SubscribeIndexPrice S'abonne aux mises à jour du prix d'index pour un symbole.
SubscribeMarkPrice S'abonne aux mises à jour du prix mark pour un symbole.
SubscribeOrderBookChanged S'abonne aux événements de changement du carnet d'ordres pour un symbole.
Remarque : Chaque méthode Subscribe listée ci-dessus a une contrepartie UnSubscribe correspondante (par exemple, UnSubscribeSymbolTicker) pour arrêter de recevoir les mises à jour de ce canal.

Canaux privés

Private channels require valid API credentials and provide real-time updates on your orders, balances, positions, and margin activity.

Méthode Description
SubscribeTradeOrders S'abonne aux mises à jour en temps réel de tes ordres de trade (ouverts, exécutés, annulés).
SubscribeAccountBalance S'abonne aux changements de solde de compte en temps réel.
SubscribePositionStatus S'abonne aux mises à jour de statut de position pour le trading sur marge.
SubscribeMarginTradeOrders S'abonne aux mises à jour des ordres de trading sur marge.
SubscribeStopOrder S'abonne aux mises à jour de déclenchement et de statut des ordres stop.

API REST Spot

L'API REST Spot est accessible via la propriété REST_API de TsgcWSAPI_Kucoin. Toutes les méthodes renvoient des chaînes JSON. L'API couvre les comptes, les retraits, la gestion des ordres, les ordres stop et les données de marché.

Comptes

Méthode Description
GetAccounts Renvoie une liste de tous les comptes (main, trade, margin).
GetAccount Renvoie les détails d'un compte spécifique par ID de compte.
GetAccountBalanceSubAccount Renvoie le solde d'un sous-compte.
InnerTransfer Transfère des fonds entre tes comptes internes (par exemple, main vers trade).

Retraits

Méthode Description
GetWithdrawalsList Renvoie une liste des enregistrements de retraits récents.
GetHistoricalWithdrawalsList Renvoie les enregistrements de retraits historiques au-delà de la fenêtre récente.
GetWithdrawalsQuotas Renvoie le quota et les limites de retrait pour une devise donnée.
ApplyWithdraw Initie un retrait vers une adresse externe.
CancelWithdraw Annule un retrait en attente par son ID.

Ordres

Méthode Description
PlaceOrder Place un nouvel ordre spot (market ou limit, achat ou vente).
PlaceMarginOrder Place un ordre margin avec des fonds empruntés.
CancelOrderByClientOid Annule un ordre en utilisant l'ID d'ordre assigné par le client.
GetOrder Renvoie les détails d'un ordre spécifique par son ID assigné par l'exchange.
GetOrderByClientOid Renvoie les détails d'un ordre spécifique par son ID assigné par le client.
ListFills Renvoie une liste des ordres exécutés (exécutions de trades).
GetRecentFills Renvoie les enregistrements de remplissage les plus récents.

Ordres stop

Méthode Description
PlaceStopOrder Place un ordre stop qui se déclenche lorsque le prix stop est atteint.
PlaceStopMarketOrder Place un ordre stop-market qui s'exécute au prix du marché une fois déclenché.
PlaceStopLimitOrder Place un ordre stop-limit qui crée un ordre limit une fois déclenché.
CancelStopOrder Annule un ordre stop par son ID assigné par l'exchange.
CancelStopOrderByClientOid Annule un ordre stop par son ID assigné par le client.
CancelAllStopOrders Annule tous les ordres stop actifs, optionnellement filtrés par symbole.
GetStopOrder Renvoie les détails d'un ordre stop spécifique par son ID assigné par l'exchange.
GetStopOrderByClientOid Renvoie les détails d'un ordre stop spécifique par son ID assigné par le client.
ListStopOrders Renvoie une liste de tous les ordres stop actifs.

Données de marché

Méthode Description
GetSymbolList Renvoie une liste des symboles de trading disponibles.
GetAllTickers Renvoie les données ticker pour toutes les paires de trading.
GetMarketList Renvoie une liste des marchés disponibles.
GetPartOrderBook100 Renvoie les 100 premières entrées du carnet d'ordres pour un symbole.
GetFullOrderBook Renvoie le carnet d'ordres complet pour un symbole (données Level 3).
GetHistories Renvoie l'historique récent des trades pour un symbole.
GetKLines Renvoie les données de chandeliers/kline pour un symbole à un intervalle donné.
GetCurrencies Renvoie une liste de toutes les devises supportées.
GetCurrencyDetail Renvoie les détails d'une devise spécifique (info chain, précision, etc.).
GetFiatPrice Renvoie le prix fiat pour les devises spécifiées (par exemple, valeur USD de BTC).

API WebSocket Futures

L'API WebSocket Futures est fournie par TsgcWSAPI_Kucoin_Futures et offre un streaming en temps réel pour les données de contrats futures et les événements de compte privés.

Canaux publics

Méthode Description
SubscribeSymbolTickerV2 S'abonne aux mises à jour ticker V2 pour un symbole de contrat futures.
SubscribeSymbolTicker S'abonne aux mises à jour ticker pour un symbole de contrat futures.
SubscribeLevel2MarketData S'abonne aux données du carnet d'ordres Level 2 pour un contrat futures.
SubscribeExecutionData S'abonne aux données match/exécution en temps réel pour les trades futures.
SubscribeLevel2_5BestAskBid S'abonne aux 5 meilleurs niveaux ask/bid pour un contrat futures.
SubscribeLevel2_50BestAskBid S'abonne aux 50 meilleurs niveaux ask/bid pour un contrat futures.
SubscribeContractMarketData S'abonne aux données de marché au niveau du contrat (taux de financement, prix mark, etc.).
SubscribeSystemAnnouncements S'abonne aux annonces système et avis de maintenance.
SubscribeTransactionStatistics S'abonne aux statistiques de transactions agrégées pour un contrat futures.
Remarque : Chaque méthode Subscribe listée dans les tableaux futures a une contrepartie UnSubscribe correspondante pour arrêter de recevoir les mises à jour de ce canal.

Canaux privés

Méthode Description
SubscribeTradeOrders S'abonne aux mises à jour en temps réel de tes ordres de trade futures.
SubscribeStopOrder S'abonne aux mises à jour de déclenchement et de statut des ordres stop pour les futures.
SubscribeAccountBalance S'abonne aux changements de solde de compte futures en temps réel.
SubscribePositionChange S'abonne aux événements de changement de position (ouverture, fermeture, liquidation).

API REST Futures

L'API REST Futures est accessible via la propriété REST_API de TsgcWSAPI_Kucoin_Futures. Ces méthodes couvrent la gestion de marge, les limites de risque, l'historique de financement et les requêtes du carnet d'ordres.

Méthode Description
AddMarginManually Ajoute manuellement de la marge à une position futures.
ObtainFuturesRiskLimitLevel Renvoie le niveau de limite de risque actuel pour un contrat futures.
AdjustRiskLimitLevel Ajuste le niveau de limite de risque pour un contrat futures.
GetFundingHistory Renvoie l'historique du taux de financement pour un contrat futures.
GetPartOrderBook100 Renvoie les 100 premières entrées du carnet d'ordres futures.
GetFullOrderBook Renvoie le carnet d'ordres futures complet.
GetLevel2PullingMessages Renvoie les messages pulling Level 2 pour les mises à jour incrémentielles du carnet d'ordres.
GetInterestRateList Renvoie la liste des taux d'intérêt utilisés pour les calculs de financement.
GetIndexList Renvoie la liste de composition d'index pour un contrat futures.

Exemple de code

L'exemple suivant montre comment créer et configurer le composant TsgcWSAPI_Kucoin pour le trading spot, s'authentifier auprès de l'API, récupérer les tickers via REST, placer un ordre et s'abonner à un flux ticker en temps réel 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;

Handling WebSocket Events

Assign an event handler to process incoming messages. The event provides the topic, subject, and JSON data for each update.

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;

Configuration et notes

Configuration Properties

Les composants TsgcWSAPI_Kucoin (spot) et TsgcWSAPI_Kucoin_Futures (futures) partagent les mêmes propriétés d'authentification, accessibles via la propriété Kucoin.

Propriété Type Description
Kucoin.ApiKey String Ta clé API KuCoin. Génère-la depuis la page KuCoin API Management.
Kucoin.ApiSecret String Ton API secret KuCoin. Garde cette valeur en sécurité et ne l'expose jamais dans du code côté client.
Kucoin.Passphrase String La passphrase définie lors de la création de la clé API. Obligatoire pour toutes les requêtes authentifiées.

Important Notes

Sécurité : Ne code jamais ta clé API, ton secret ou ta passphrase directement dans du code en production. Utilise un fichier de configuration sécurisé ou une variable d'environnement pour stocker les identifiants.