API OKX

OKX

 

Unterstützte APIs

 

Properties

WebSocket-Kanäle sind in zwei Kategorien unterteilt: öffentliche und private Kanäle.

 

 

Sie können die folgenden Eigenschaften in der OKX-Eigenschaft konfigurieren.

 

 

Verbindung

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;

Public Channels

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.

  • books: 400 Tiefenstufen werden im anfänglichen vollständigen Snapshot gepusht. Inkrementelle Daten werden alle 100 ms gepusht, wenn sich das Orderbuch ändert.
  • books5: 5 Tiefenstufen werden jedes Mal gepusht. Daten werden alle 100 ms gepusht, wenn sich das Orderbuch ändert.
  • bbo-tbt: 1 Tiefenstufe wird jedes Mal gepusht. Daten werden alle 10 ms gepusht, wenn sich das Orderbuch ändert.
  • books-l2-tbt: 400 Tiefenstufen werden im anfänglichen vollständigen Snapshot gepusht. Inkrementelle Daten werden alle 10 ms gepusht, wenn sich das Orderbuch ändert.
  • books50-l2-tbt: 50 Tiefenstufen werden im anfänglichen vollständigen Snapshot gepusht. Inkrementelle Daten werden alle 10 ms gepusht, wenn sich das Orderbuch ändert. Wenn asks oder bids ein leeres Array ist, bedeutet dies, dass es Änderungen in der 400er-Tiefe gibt, nicht in der 50er-Tiefe. Wenn Sie die Orderbuchdaten lokal pflegen, ignorieren Sie bitte leere asks und bids.
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;

Private Kanäle

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;

 

Trading

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 cross
Non-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 Modus
Er ist im long/short Modus erforderlich und kann nur long oder short sein.
Nur anwendbar auf FUTURES/SWAP.
> ordType String Ja Order-Typ
market: Market-Order
limit: Limit-Order
post_only: Post-only-Order
fok: Fill-or-Kill-Order
ioc: Immediate-or-Cancel-Order
optimal_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 Modus
Nur anwendbar auf Single-currency margin und Multi-currency margin
> tgtCcy String No Mengentyp
base_ccy: Basiswährung ,quote_ccy: Notierungswährung
Nur anwendbar auf SPOT gehandelt mit Market-Order
Standard 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);

Batch Trade Operations

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.