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
Les canaux privés requièrent des identifiants API valides et fournissent des mises à jour en temps réel sur tes ordres, soldes, positions et activité sur marge.
| 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;
Gestion des évènements WebSocket
Assigne un gestionnaire d'évènement pour traiter les messages entrants. L'évènement fournit le topic, le sujet et les données JSON pour chaque mise à jour.
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
Propriétés de configuration
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. |
Notes importantes
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.
- Utilise
TsgcWSAPI_Kucoin pour le trading spot et TsgcWSAPI_Kucoin_Futures pour le trading Futures. Chaque composant se connecte à un endpoint KuCoin différent.
- La propriété
Passphrase est obligatoire pour KuCoin et se définit lors de la création de la clé API sur le site de KuCoin.
- Toutes les méthodes REST renvoient des chaînes JSON. Utilise un parseur JSON (comme
TJSONObject de System.JSON) pour analyser les réponses.
- Les canaux WebSocket publics ne requièrent pas d'authentification et peuvent être utilisés pour les données de marché sans configurer les identifiants API.
- Les canaux WebSocket privés et toutes les méthodes REST qui modifient l'état du compte requièrent des identifiants API valides.
- KuCoin applique des limites de débit sur les API REST et WebSocket. Consulte la documentation officielle KuCoin pour connaître les limites actuelles.
- Les connexions WebSocket utilisent un système d'authentification par token. Le composant gère automatiquement l'obtention et le renouvellement des tokens.