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.
- Use
TsgcWSAPI_Kucoin for spot trading and TsgcWSAPI_Kucoin_Futures for futures trading. Each component connects to a different KuCoin endpoint.
- The
Passphrase property is mandatory for KuCoin and is set during API key creation on the KuCoin website.
- All REST methods return JSON strings. Use a JSON parser (such as
TJSONObject from System.JSON) to parse responses.
- Public WebSocket channels do not require authentication and can be used for market data without setting API credentials.
- Private WebSocket channels and all REST methods that modify account state require valid API credentials.
- KuCoin enforces rate limits on both REST and WebSocket APIs. Refer to the official KuCoin documentation for current limits.
- WebSocket connections use a token-based authentication system. The component handles token acquisition and renewal automatically.