Mise à jour de l'API OKX dans sgcWebSockets

· Fonctionnalités
Intégration de l'API de trading OKX WebSocket dans Delphi

Le composant TsgcWSAPI_OKX fournit un accès Delphi complet à l'exchange OKX via une interface WebSocket unifiée. Il prend en charge les flux de données de marché publics, les canaux privés du compte et les opérations de trading direct, y compris les ordres au marché et à cours limité, le tout via un seul composant. Ce guide détaille chaque méthode disponible, chaque propriété de configuration et inclut des exemples de code fonctionnels pour commencer à trader sur OKX depuis Delphi.

Table des matières

Canaux WebSocket publics

Les canaux publics diffusent les données de marché à tous les clients connectés sans nécessiter d'authentification. Ces canaux couvrent les instruments, les tickers, les carnets d'ordres, les trades, les chandeliers, les taux de financement et bien d'autres. Chaque méthode subscribe possède une méthode unsubscribe correspondante.

Canaux de données de marché

Méthode Description
SubscribeInstruments S'abonne aux mises à jour d'instruments (nouvelles cotations, retraits, changements de statut).
SubscribeTicker S'abonne aux données ticker en temps réel pour un instrument spécifique.
SubscribeOpenInterest S'abonne aux mises à jour de l'open interest pour les contrats futures et perpétuels.
SubscribeCandlestick S'abonne aux données de chandeliers (kline) à l'intervalle spécifié.
SubscribeTrades S'abonne aux données d'exécution de trades en temps réel pour un instrument spécifique.
SubscribeOrderBook S'abonne aux mises à jour du carnet d'ordres avec une profondeur configurable.

Canaux de prix et d'indices

Méthode Description
SubscribeEstimatedPrices S'abonne au prix estimé de livraison/exercice pour les options et les futures.
SubscribeMarkPrice S'abonne aux mises à jour du mark price utilisé pour les calculs de marge et de PnL.
SubscribeMarkPriceCandlestick S'abonne aux données de chandeliers basées sur le mark price.
SubscribePriceLimit S'abonne aux mises à jour de la limite de prix (price band) d'un instrument.
SubscribeIndexCandlestick S'abonne aux données de chandeliers basées sur l'index price.
SubscribeIndexTicker S'abonne aux mises à jour de l'index ticker pour un indice donné.
SubscribeFundingRate S'abonne aux mises à jour du funding rate pour les contrats perpétuels.

Canaux Options et système

Méthode Description
SubscribeOptionSummary S'abonne au résumé des options (grecques, volatilité, open interest).
SubscribeStatus S'abonne aux mises à jour du statut système (maintenance, perturbations).
SubscribePublicStructureBlockTrades S'abonne aux données de block trades à structure publique.
SubscribeBlockTickers S'abonne aux mises à jour du ticker des block trades.
Note : chaque méthode Subscribe listée ci-dessus possède une contrepartie UnSubscribe (par exemple UnSubscribeTicker) pour arrêter de recevoir les mises à jour de ce canal.

Canaux WebSocket privés

Les canaux privés nécessitent une authentification et fournissent des mises à jour en temps réel sur l'état de ton compte, tes positions, tes ordres et ton activité de trading algorithmique. Définis OKX.IsPrivate := True et fournis des identifiants API valides avant de t'abonner à ces canaux.

Canaux de compte et de positions

Méthode Description
SubscribeAccount S'abonne aux mises à jour du solde et de l'équité du compte en temps réel.
SubscribePositions S'abonne aux mises à jour des positions (ouverture, fermeture, changements de taille).
SubscribeBalanceAndPosition S'abonne aux mises à jour combinées de solde et de positions dans un seul flux.
SubscribePositionRisk S'abonne aux alertes de risque sur les positions (proximité de liquidation).
SubscribeAccountGreeks S'abonne aux mises à jour des grecques au niveau du compte pour les positions d'options.

Canaux d'ordres et algorithmiques

Méthode Description
SubscribeOrders S'abonne aux mises à jour de statut des ordres (placés, exécutés, annulés, partiellement exécutés).
SubscribeOrdersAlgo S'abonne aux mises à jour des ordres algorithmiques (trigger, TP/SL, trailing stop).
SubscribeAdvanceAlgo S'abonne aux mises à jour des ordres algorithmiques avancés (iceberg, TWAP).

Canaux RFQ et block trades

Méthode Description
SubscribeRfqs S'abonne aux mises à jour des demandes de cotation (RFQ) pour le block trading.
SubscribeQuotes S'abonne aux mises à jour des cotations en réponse aux RFQ.
SubscribePrivateStructureBlockTrades S'abonne aux mises à jour des block trades à structure privée.

Canaux de grid trading

Méthode Description
SubscribeSpotGridAlgoOrders S'abonne aux mises à jour des ordres algorithmiques de grid spot.
SubscribeContactGridAlgoOrders S'abonne aux mises à jour des ordres algorithmiques de grid sur contrats.
SubscribeGridPositions S'abonne aux mises à jour des positions de grid trading.
SubscribeGridSubOrders S'abonne aux mises à jour des sous-ordres individuels dans une stratégie de grid.

Opérations de trading WebSocket

OKX prend en charge le placement et la gestion d'ordres directement via la connexion WebSocket, ce qui offre une latence plus faible qu'avec les appels REST. Ces méthodes nécessitent une authentification.

Méthode Description
PlaceOrder Place un nouvel ordre avec un contrôle complet de tous les paramètres.
PlaceMarketOrder Place un ordre au marché qui s'exécute immédiatement au meilleur prix disponible.
PlaceLimitOrder Place un ordre à cours limité au prix spécifié, exécuté uniquement lorsque le marché atteint ce prix.
CancelOrder Annule un ordre existant par son ID.
AmendOrder Modifie un ordre existant (changement de prix ou de taille sans annuler et replacer).
Note : le trading via WebSocket offre une latence nettement plus faible que le placement d'ordres via REST. OKX traite les ordres WebSocket avec une priorité plus élevée, ce qui en fait la méthode recommandée pour les stratégies sensibles à la latence.

Exemple de code

L'exemple suivant montre comment créer et configurer le composant TsgcWSAPI_OKX, s'authentifier auprès de l'API, s'abonner aux données ticker, surveiller les ordres et passer des ordres au marché et à cours limité directement via la connexion WebSocket.

var
  oClient: TsgcWebSocketClient;
  oOKX: TsgcWSAPI_OKX;
begin
  // Créer le client WebSocket
  oClient := TsgcWebSocketClient.Create(nil);
  oOKX := TsgcWSAPI_OKX.Create(nil);
  oOKX.Client := oClient;
  // Configurer les identifiants API
  oOKX.OKX.ApiKey := 'your_api_key';
  oOKX.OKX.ApiSecret := 'your_api_secret';
  oOKX.OKX.Passphrase := 'your_passphrase';
  oOKX.OKX.IsPrivate := True;
  // Se connecter à OKX
  oClient.Active := True;
  // S'abonner au ticker BTC-USDT
  oOKX.SubscribeTicker('BTC-USDT');
  // S'abonner aux mises à jour d'ordres pour le trading spot
  oOKX.SubscribeOrders(okxitSpot);
  // Placer un ordre d'achat au marché
  oOKX.PlaceMarketOrder(okxosBuy, 'BTC-USDT', 0.001);
  // Placer un ordre d'achat à cours limité
  oOKX.PlaceLimitOrder(okxosBuy, 'BTC-USDT', 0.001, 30000);
end;

Gestion des événements WebSocket

Associe un gestionnaire d'événement pour traiter les messages WebSocket entrants. L'événement fournit le nom du canal et la charge JSON pour chaque mise à jour.

procedure TForm1.OnOKXEvent(Sender: TObject;
  const aChannel, aData: string);
begin
  // aChannel identifie l'abonnement (par exemple 'tickers', 'orders')
  // aData contient la charge JSON
  Memo1.Lines.Add(aChannel + ': ' + aData);
end;

Utiliser le mode démo

OKX fournit un environnement de trading démo pour les tests. Active-le en définissant OKX.IsDemo := True avant de te connecter. Le mode démo se connecte à un endpoint séparé avec des soldes simulés, ce qui te permet de tester ta logique de trading sans risquer de fonds réels.

// Activer le mode de trading démo
oOKX.OKX.IsDemo := True;
oOKX.OKX.IsPrivate := True;
oClient.Active := True;

Configuration et notes

Propriétés de configuration

Toute la configuration est accessible via la propriété OKX du composant.

Propriété Type Description
OKX.ApiKey String Ta clé API OKX. Génère-la depuis la page OKX API Management.
OKX.ApiSecret String Ton secret API OKX. Garde cette valeur en sécurité et ne l'expose jamais dans du code côté client.
OKX.Passphrase String La passphrase que tu as définie lors de la création de la clé API. Obligatoire pour toutes les requêtes authentifiées.
OKX.IsDemo Boolean Lorsqu'elle vaut True, se connecte à l'environnement de trading démo OKX avec des fonds simulés. La valeur par défaut est False.
OKX.IsPrivate Boolean Lorsqu'elle vaut True, active l'authentification sur la connexion WebSocket. Obligatoire pour les canaux privés et les opérations de trading. La valeur par défaut est False.

Notes importantes

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