WebSocket-Kanäle sind in zwei Kategorien unterteilt: öffentliche und private Kanäle.
Sie können die folgenden Eigenschaften in der OKX-Eigenschaft konfigurieren.
Wenn sich der Client erfolgreich mit den OKX-Servern verbindet, wird das Ereignis OnOKXConnect ausgelöst. Wenn beim Verbindungsversuch ein Fehler auftritt, wird das Ereignis OnOKXError mit den Fehlerdetails ausgelöst.
Nachdem das Ereignis OnOKXConnect ausgelöst wurde, können Sie damit beginnen, Nachrichten von den OKX-Servern zu senden und zu empfangen.
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;
Der WebSocket-Feed stellt Echtzeit-Marktdaten-Aktualisierungen für Orders und Trades bereit. Der WebSocket-Feed hat einige öffentliche Kanäle wie ticker, trades ...
Sie können die folgenden öffentlichen Channels abonnieren:
| Methode | Beschreibung |
| SubscribeInstruments | Die vollständige Instrumentenliste wird nach dem Abonnement erstmalig übertragen. Danach werden die Instrumente übertragen, wenn sich der Zustand des Instruments ändert (z. B. Lieferung von FUTURES, Ausübung von OPTION, Listung neuer Kontrakte / Handelspaare, Handelsaussetzung usw.). |
| SubscribeTicker | Den zuletzt gehandelten Preis, Bid-Preis, Ask-Preis und das 24-Stunden-Handelsvolumen von Instrumenten abrufen. Daten werden alle 100 ms gepusht. |
| SubscribeOpenInterest | Ruft das Open Interest ab. Daten werden alle 3 Sekunden gepusht. |
| SubscribeCandlestick | Ruft die Candlestick-Daten eines Instruments ab. Die Push-Frequenz ist das schnellste Intervall: 500 ms pusht die Daten. |
| SubscribeTrades | Ruft die jüngsten Handelsdaten ab. Daten werden gepusht, wann immer ein Trade stattfindet. |
| SubscribeEstimatedPrices |
Den geschätzten Liefer-/Ausübungspreis von FUTURES-Kontrakten und OPTION abrufen. Nur der geschätzte Liefer-/Ausübungspreis wird eine Stunde vor der Lieferung/Ausübung gepusht und wird gepusht, wenn es eine Preisänderung gibt. |
| SubscribeMarkPrice | Ruft den Mark-Preis ab. Daten werden alle 200 ms gepusht, wenn sich der Mark-Preis ändert, und alle 10 Sekunden gepusht, wenn sich der Mark-Preis nicht ändert. |
| SubscribeMarkPriceCandlestick | Die Candlestick-Daten des Mark Price abrufen. Daten werden alle 500 ms gepusht. |
| SubscribePriceLimit | Den maximalen Kaufpreis und minimalen Verkaufspreis des Instruments abrufen. Daten werden alle 5 Sekunden gepusht, wenn es Änderungen in den Limits gibt, und werden nicht gepusht, wenn es keine Änderungen am Limit gibt. |
| SubscribeOrderBook |
Orderbuchdaten abrufen. Verwenden Sie books für 400 Tiefenstufen, book5 für 5 Tiefenstufen, bbo-tbt für Tick-by-Tick mit 1 Tiefenstufe, books50-l2-tbt für Tick-by-Tick mit 50 Tiefenstufen und books-l2-tbt für Tick-by-Tick mit 400 Tiefenstufen.
|
| SubscribeOptionSummary | Ruft detaillierte Preisinformationen aller OPTION-Kontrakte ab. Die Daten werden auf einmal gepusht. |
| SubscribeFundingRate | Ruft die Funding-Rate ab. Daten werden in 30 s bis 90 s gesendet. |
| SubscribeIndexCandlestick | Ruft die Candlestick-Daten des Index ab. Daten werden alle 500 ms übertragen. |
| SubscribeIndexTicker | Index-Ticker-Daten abrufen |
| SubscribeStatus | Ruft den Status der Systemwartung ab und sendet einen Push, wenn sich der Systemwartungsstatus ändert. Erstes Abonnement: "Die neuesten Änderungsdaten senden"; jedes Mal, wenn eine Zustandsänderung auftritt, wird der geänderte Inhalt gesendet |
| SubscribePublicStructureBlockTrades | Daten werden gepusht, sobald ein Blockhandel stattfindet. |
| SubscribeBlockTickers | Ruft das neueste Block-Handelsvolumen der letzten 24 Stunden ab. Die Daten werden gepusht, wenn sie durch ein Transaktionsausführungsereignis ausgelöst werden. Zusätzlich werden sie in 5-Minuten-Intervallen entsprechend der Abonnement-Granularität gepusht. |
| SubscribeAllTrades | Ruft alle Trade-Daten ab. Daten werden übermittelt, wann immer ein Handel stattfindet. |
| SubscribeLiquidationOrders | Ruft Liquidations-Orders ab. Daten werden übermittelt, wenn eine Liquidations-Order vorliegt. |
| SubscribeADLWarning | Ruft ADL-Warndaten ab. Die Daten werden gepusht, wenn das Auto-Deleveraging-Risiko steigt. |
| SubscribeEconomicCalendar | Ruft die Ereignisse des Wirtschaftskalenders ab. Daten werden übermittelt, wenn es Aktualisierungen zu Wirtschaftsereignissen gibt. |
| SubscribePublicBlockTrades | Öffentliche Block-Trades abrufen. Daten werden gepusht, sobald ein Block-Trade vorliegt. |
| SubscribeOptionTrades | Ruft Optionshandelsdaten ab. Daten werden gesendet, sobald ein Optionshandel stattfindet. |
| SubscribeCallAuctionDetails | Ruft Call-Auction-Details ab. Daten werden gepusht, wenn es Aktualisierungen der Call-Auction-Informationen gibt. |
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;
Einschließlich Account-Kanal, Order-Kanal und Positions-Kanal usw. -- erfordern eine Anmeldung.
Sie können die folgenden privaten Kanäle abonnieren:
| Methode | Beschreibung |
| SubscribeAccount | Ruft Kontoinformationen ab. Daten werden gepusht, wenn sie durch Ereignisse wie das Platzieren einer Order, das Stornieren einer Order, die Ausführung einer Transaktion usw. ausgelöst werden. Sie werden außerdem in regelmäßigen Intervallen entsprechend der Abonnement-Granularität gepusht. |
| SubscribePositions | Ruft Positionsinformationen ab. Der anfängliche Snapshot wird gemäß der Abonnement-Granularität gepusht. Daten werden gepusht, wenn sie durch Ereignisse wie das Platzieren/Stornieren einer Order ausgelöst werden, und werden auch in regelmäßigen Intervallen gemäß der Abonnement-Granularität gepusht. |
| SubscribeBalanceAndPosition | Ruft Kontoguthaben- und Positionsinformationen ab. Daten werden gepusht, wenn sie durch Ereignisse wie eine ausgeführte Order oder einen Funding-Transfer ausgelöst werden. |
| SubscribeOrders | Order-Informationen abrufen. Daten werden beim ersten Abonnement nicht gepusht. Daten werden nur gepusht, wenn sie durch Ereignisse wie das Platzieren/Abbrechen einer Order ausgelöst werden. |
| SubscribeOrdersAlgo | Ruft Algo-Orders ab (einschließlich Trigger-Order, OCO-Order, Conditional-Order). Daten werden beim ersten Abonnieren nicht gepusht. Daten werden nur gepusht, wenn sie durch Ereignisse wie das Aufgeben/Stornieren einer Order ausgelöst werden. |
| SubscribeAdvanceAlgo |
Ruft erweiterte Algo-Orders ab (einschließlich Iceberg-Order, TWAP-Order, Trailing-Order). Daten werden beim ersten Abonnieren gesendet. Daten werden gesendet, wenn sie durch Ereignisse wie das Platzieren/Stornieren einer Order ausgelöst werden. |
| SubscribePositionRisk | Dieser Push-Kanal wird nur als Risikowarnung verwendet und wird nicht als Risikobeurteilung für strategischen Handel empfohlen Wenn sich der Markt nicht heftig bewegt, besteht die Möglichkeit, dass die Position zur gleichen Zeit liquidiert wurde, zu der diese Nachricht gesendet wird. |
| SubscribeAccountGreeks | Ruft Greeks-Informationen des Kontos ab. Daten werden übertragen, wenn sie durch Ereignisse wie das Erhöhen/Verringern von Positionen oder das Bargeldguthaben im Konto ausgelöst werden, und werden außerdem in regelmäßigen Intervallen entsprechend der Abonnement-Granularität übertragen. |
| SubscribeRfqs | Ruft die Rfqs ab. |
| SubscribeQuotes |
Die Quotes abrufen. |
| SubscribePrivateStructureBlockTrades | Structure Block Trades abrufen. |
| SubscribeSpotGridAlgoOrders | Spot-Grid-Algo-Orders abrufen. Daten werden beim ersten Abonnement gepusht. Daten werden gepusht, wenn sie durch Ereignisse wie das Platzieren/Stornieren einer Order ausgelöst werden. |
| SubscribeContactGridAlgoOrders | Ruft Kontrakt-Grid-Algo-Orders ab. Daten werden beim ersten Abonnieren gepusht. Daten werden gepusht, wenn sie durch Ereignisse wie das Aufgeben/Stornieren einer Order ausgelöst werden. |
| SubscribeGridPositions | Ruft Grid-Positionen ab. Daten werden beim ersten Abonnieren gepusht. Daten werden gepusht, wenn sie durch Ereignisse wie das Aufgeben/Stornieren einer Order ausgelöst werden. |
| SubscribeGridSubOrders | Ruft Grid-Sub-Orders ab. Daten werden beim ersten Abonnieren gepusht. Daten werden gepusht, wenn sie durch Ereignisse wie das Aufgeben einer Order ausgelöst werden. |
| SubscribeFills | Daten ausgeführter Orders abrufen. Daten werden gepusht, wenn eine Order ausgeführt wird. |
| SubscribeDepositInfo | Ruft Einzahlungsinformationen ab. Daten werden gepusht, wenn es eine Aktualisierung des Einzahlungsstatus gibt. |
| SubscribeWithdrawalInfo | Ruft Auszahlungsinformationen ab. Daten werden gepusht, wenn es eine Statusaktualisierung einer Auszahlung gibt. |
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.SubscribeOrders(okxitFutures, 'BTC-USD', 'BTC-USD-200329');
end;
Der WebSocket-Trade erfordert Authentifizierung.
Sie können einen Auftrag nur platzieren, wenn Sie über ausreichende Mittel verfügen. Im Folgenden finden Sie eine Tabelle mit den Anfrageparametern:
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| id | String | Ja | Eindeutiger Bezeichner der Nachricht Vom Client bereitgestellt. Er wird in der Response-Nachricht zurückgegeben, um den entsprechenden Request zu identifizieren. Eine Kombination aus Groß-/Kleinschreibung beachtenden Alphanumerischen, allen Zahlen oder allen Buchstaben mit bis zu 32 Zeichen. |
| > instId | String | Ja | Instrument-ID, z. B. BTC-USD-190927-5000-C |
| > tdMode | String | Ja | Trade-Modus Margin-Modus isolated crossNon-Margin-Modus cash |
| > ccy | String | No | Margin-Währung Nur anwendbar auf cross MARGIN Orders im Single-currency margin. |
| > clOrdId | String | No | Vom Client bereitgestellte Order-ID Eine Kombination aus Groß-/Kleinschreibung beachtenden alphanumerischen Zeichen, ausschließlich Ziffern oder ausschließlich Buchstaben mit bis zu 32 Zeichen. |
| > Tag | String | No | Order-Tag Eine Kombination aus Groß-/Kleinschreibung beachtenden alphanumerischen Zeichen, ausschließlich Zahlen oder ausschließlich Buchstaben mit bis zu 16 Zeichen. |
| > side | String | Ja | Order-Seite, buy sell |
| > posSide | String | Optional | Positionsseite Der Standardwert ist net im net ModusEr ist im long/short Modus erforderlich und kann nur long oder short sein.Nur anwendbar auf FUTURES/SWAP. |
| > ordType | String | Ja | Order-Typmarket: Market-Orderlimit: Limit-Orderpost_only: Post-only-Orderfok: Fill-or-Kill-Orderioc: Immediate-or-Cancel-Orderoptimal_limit_ioc :Market-Order mit Immediate-or-Cancel-Order
|
| > sz | String | Ja | Zu kaufende oder zu verkaufende Menge. |
| > px | String | Optional | Price Gilt nur für limit,post_only,fok,ioc -Aufträge. |
| > reduceOnly | Boolean | No | Ob die Position nur reduziert werden soll oder nicht, true false, der Standard ist false.Nur anwendbar auf MARGIN Orders und FUTURES/SWAP Orders im net ModusNur anwendbar auf Single-currency margin und Multi-currency margin |
| > tgtCcy | String | No | Mengentypbase_ccy: Basiswährung ,quote_ccy: NotierungswährungNur anwendbar auf SPOT gehandelt mit Market-OrderStandard ist quote_ccy für Kauf, base_ccy für Verkauf
|
| > banAmend | Boolean | No | Ob das Ändern von Spot-Orders verboten werden soll oder nicht, true oder false, der Standardwert ist false. Es wird fehlschlagen, Orders zu platzieren, wenn das Guthaben nicht ausreicht, wenn banAmend true ist. Nur auf SPOT-Market-Orders anwendbar. |
Beispiel zum Platzieren einer Order
Sie können eine Order nur platzieren, wenn Sie über ausreichende Mittel verfügen.
// Place Martket Order
TsgcWSAPI_OKX1.PlaceMarketOrder(okxosBuy, 'ETH-BTC', 1);
// Place Limit Order
TsgcWSAPI_OKX1.PlaceLimitOrder(okxosBuy, 'ETH-BTC', 1, 0.25);
Cancel-Order-Beispiel
Eine unvollständige Order stornieren
TsgcWSAPI_OKX1.CancelOrder('ETH-BTC', '457589362405027840');
Amend Order
Eine unvollständige Order ändern.
TsgcWSAPI_OKX1.AmendOrder('ETH-BTC', '457589362405027840', '', 2);
Die WebSocket Trade API unterstützt außerdem Batch-Vorgänge zum gleichzeitigen Platzieren, Stornieren und Ändern mehrerer Orders. Diese Vorgänge erfordern Authentifizierung.
| Methode | Beschreibung |
| BatchPlaceOrders | Platziert mehrere Orders in einer einzigen Anfrage. Es können maximal 20 Orders gleichzeitig platziert werden. |
| BatchCancelOrders | Storniert mehrere Orders in einer einzigen Anfrage. Es können maximal 20 Orders gleichzeitig storniert werden. |
| BatchAmendOrders | Ändert mehrere unvollständige Orders in einer einzigen Anfrage. Es können maximal 20 Orders gleichzeitig geändert werden. |
| MassCancelOrders | Storniert alle ausstehenden Orders für einen bestimmten Instrumenttyp im Massenverfahren. |