Depuis sgcWebSockets 2022.6.0, le broker crypto OKX est pris en charge. OKX, anciennement connu sous le nom d'OKEx, est l'un des plus grands exchanges de trading spot et dérivés crypto. OKX est un exchange de cryptomonnaies basé aux Seychelles qui fournit une plateforme pour trader divers instruments comme le spot et les dérivés. Parmi les fonctionnalités principales de l'exchange figurent le trading spot et dérivés.
sgcWebSockets prend en charge l'API WebSocket incluant les canaux publics et privés. Le placement d'ordres est aussi pris en charge.
Configuration
Les canaux WebSocket sont divisés en deux catégories : canaux publics et canaux privés.
- Canaux publics : incluent le canal des tickers, le canal K-Line, le canal de prix limite, le canal du carnet d'ordres et le canal de prix de marquage, etc. — ne nécessitent pas de connexion.
- Canaux privés : incluent le canal de compte, le canal d'ordres et le canal de position, etc. — nécessitent une connexion.
Tu peux configurer les propriétés suivantes dans la propriété OKS.
- ApiKey : tu peux demander une nouvelle clé API dans ton compte OKX, copie simplement la valeur dans cette propriété.
- ApiSecret : c'est la valeur secrète de l'API.
- Passphrase : c'est la chaîne personnalisée définie lors de la création d'une nouvelle clé API.
- IsDemo : si activé, se connectera au compte démo OKX (désactivé par défaut).
- IsPrivate : si activé, tu pourras te connecter aux canaux privés (désactivé par défaut).
Connexion
Quand le client se connecte avec succès aux serveurs OKX, l'événement OnOKXConnect est déclenché. En cas d'erreur lors de la tentative de connexion, l'événement OnOKXError sera déclenché avec les détails de l'erreur.
Après le déclenchement de l'événement OnOKXConnect, tu peux commencer à envoyer et recevoir des messages depuis les serveurs OKX.
oClient := TsgcWebSocketClient.Create(nil);
oOKX := TsgcWSAPI_OKX.Create(nil);
oOKX.Client := oClient;
oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oOKX.OKX.Passphrase := 'secret_passphrase';
oClient.Active := True;
procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string);
begin
DoLog('#OKX Connected');
end;
procedure OnOKXError(Sender: TObject; aCode, aMessage, aRawMessage: string);
begin
DoLog('#error: ' + aMessage);
end;
S'abonner aux canaux
Le flux websocket fournit des mises à jour de marché en temps réel pour les ordres et les trades. Le flux websocket comporte certains canaux publics comme ticker, trades...
oClient := TsgcWebSocketClient.Create(nil); oOKX := TsgcWSAPI_OKX.Create(nil); oOKX.Client := oClient; oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf'; oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j'; oOKX.OKX.Passphrase := 'secret_passphrase'; oClient.Active := True; procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string); begin oOKX.SubscribeInstruments(okxitFutures); end;
Passer des ordres
Tu peux passer un ordre seulement si tu as des fonds suffisants.
// Place Martket Order TsgcWSAPI_OKX1.PlaceMarketOrder(okxosBuy, 'ETH-BTC', 1); // Place Limit Order TsgcWSAPI_OKX1.PlaceLimitOrder(okxosBuy, 'ETH-BTC', 1, 0.25);
