API OKX

OKX

 

API supportate

 

Proprietà

I canali WebSocket sono divisi in due categorie: canali pubblici e canali privati.

 

 

È possibile configurare le seguenti proprietà nella proprietà OKX.

 

 

Connessione

Quando il client si connette con successo ai server OKX, viene attivato l'evento OnOKXConnect . Se si verifica un errore durante il tentativo di connessione, l'evento OnOKXError verrà attivato con i dettagli dell'errore.

Dopo che l'evento OnOKXConnect viene attivato, è possibile iniziare a inviare e ricevere messaggi dai server 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;

Canali pubblici

Il feed websocket fornisce aggiornamenti in tempo reale dei dati di mercato per ordini e trade. Il feed websocket ha alcuni canali pubblici come ticker, trade...

 

È possibile sottoscriversi ai seguenti canali pubblici:

 

Method Description
SubscribeInstruments L'elenco completo degli strumenti verrà inviato per la prima volta dopo la sottoscrizione. Successivamente, gli strumenti verranno inviati in caso di modifiche allo stato dello strumento (come la consegna di FUTURES, l'esercizio di OPTION, la quotazione di nuovi contratti/coppie di trading, la sospensione delle negoziazioni, ecc.).
SubscribeTicker Recupera l'ultimo prezzo negoziato, il prezzo bid, il prezzo ask e il volume di scambi delle ultime 24 ore degli strumenti. I dati vengono aggiornati ogni 100 ms.
SubscribeOpenInterest Recupera l'open interest. I dati verranno inviati ogni 3 secondi.
SubscribeCandlestick Recupera i dati delle candele di uno strumento. La frequenza di push è l'intervallo più veloce, con push dei dati ogni 500ms.
SubscribeTrades Recupera i dati dei trade recenti. I dati vengono inviati ogni volta che avviene un trade.
SubscribeEstimatedPrices

Recupera il prezzo di consegna/esercizio stimato dei contratti FUTURES e delle OPTION.

Solo il prezzo stimato di consegna/esercizio verrà inviato tramite push un'ora prima della consegna/esercizio, e verrà inviato tramite push in caso di qualsiasi variazione di prezzo.

SubscribeMarkPrice Recupera il prezzo mark. I dati vengono inviati ogni 200 ms quando il prezzo mark cambia, e ogni 10 secondi quando il prezzo mark non cambia.
SubscribeMarkPriceCandlestick Recupera i dati candlestick del prezzo mark. I dati verranno inviati ogni 500 ms.
SubscribePriceLimit Recuperare il prezzo massimo di acquisto e il prezzo minimo di vendita dello strumento. I dati vengono inviati ogni 5 secondi quando ci sono variazioni nei limiti, e non vengono inviati in assenza di variazioni.
SubscribeOrderBook

Recupera i dati del book degli ordini.

Utilizzare books per 400 livelli di profondità, book5 per 5 livelli di profondità, bbo-tbt tick-by-tick con 1 livello di profondità, books50-l2-tbt tick-by-tick con 50 livelli di profondità, e books-l2-tbt per tick-by-tick con 400 livelli di profondità.

  • books: 400 livelli di profondità verranno inviati nello snapshot completo iniziale. I dati incrementali verranno inviati ogni 100 ms quando c'è un cambiamento nel libro degli ordini.
  • books5: 5 livelli di profondità verranno inviati ogni volta. I dati verranno inviati ogni 100 ms quando c'è un cambiamento nel libro degli ordini.
  • bbo-tbt: 1 livello di profondità verrà inviato ogni volta. I dati verranno inviati ogni 10 ms quando c'è un cambiamento nel libro degli ordini.
  • books-l2-tbt: 400 livelli di profondità verranno inviati nello snapshot completo iniziale. I dati incrementali verranno inviati ogni 10 ms quando c'è un cambiamento nel libro degli ordini.
  • books50-l2-tbt: 50 livelli di profondità verranno inviati nello snapshot completo iniziale. I dati incrementali verranno inviati ogni 10 ms quando c'è un cambiamento nel libro degli ordini. Se asks o bids è un array vuoto, significa che ci sono cambiamenti a 400 livelli di profondità, invece che a 50. Se si mantengono i dati del libro degli ordini localmente, ignorare asks e bids vuoti.
SubscribeOptionSummary Recupera informazioni dettagliate sui prezzi di tutti i contratti OPTION. I dati verranno inviati tutti in una volta.
SubscribeFundingRate Recupera il tasso di finanziamento. I dati verranno inviati ogni 30-90 secondi.
SubscribeIndexCandlestick Recupera i dati candlestick dell'indice. I dati verranno inviati ogni 500 ms.
SubscribeIndexTicker Recupera i dati dei ticker dell'indice
SubscribeStatus Ottieni lo stato della manutenzione del sistema e ricevi notifiche push quando lo stato cambia. Prima sottoscrizione: "Invia gli ultimi dati modificati"; ogni volta che si verifica un cambiamento di stato, invia il contenuto modificato
SubscribePublicStructureBlockTrades I dati vengono inviati ogni volta che si verifica un block trade.
SubscribeBlockTickers Recupera l'ultimo volume di block trading nelle ultime 24 ore. I dati verranno inviati quando attivati da un evento di esecuzione di transazioni. Inoltre, verranno inviati anche con un intervallo di 5 minuti in base alla granularità della sottoscrizione.
SubscribeAllTrades Recupera tutti i dati delle operazioni. I dati verranno inviati ogni volta che si verifica un'operazione.
SubscribeLiquidationOrders Recupera gli ordini di liquidazione. I dati verranno trasmessi quando è presente un ordine di liquidazione.
SubscribeADLWarning Recupera i dati di avviso ADL. I dati verranno inviati quando il rischio di auto-deleveraging aumenta.
SubscribeEconomicCalendar Recupera gli eventi del calendario economico. I dati verranno inviati quando vi sono aggiornamenti agli eventi economici.
SubscribePublicBlockTrades Recuperare le negoziazioni a blocchi pubbliche. I dati verranno inviati ogni volta che si verifica una negoziazione a blocchi.
SubscribeOptionTrades Recupera i dati delle negoziazioni su opzioni. I dati verranno inviati ogni volta che si verifica una negoziazione su opzioni.
SubscribeCallAuctionDetails Recupera i dettagli dell'asta a chiamata. I dati verranno inviati quando ci sono aggiornamenti alle informazioni sull'asta a chiamata.

 


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;

Canali privati

Inclusi il canale account, il canale ordini e il canale posizioni, ecc. -- richiedono l'accesso.

 

È possibile iscriversi ai seguenti canali Privati:

 

Method Description
SubscribeAccount Recupera le informazioni dell'account. I dati verranno inviati quando attivati da eventi come l'inserimento di un ordine, l'annullamento di un ordine, l'esecuzione di una transazione, ecc. Verranno inoltre inviati a intervalli regolari in base alla granularità della sottoscrizione.
SubscribePositions Recupera le informazioni sulla posizione. Lo snapshot iniziale verrà inviato in base alla granularità della sottoscrizione. I dati verranno inviati quando attivati da eventi quali l'inserimento/annullamento di ordini, e verranno inviati anche a intervalli regolari in base alla granularità della sottoscrizione.
SubscribeBalanceAndPosition Recupera le informazioni sul saldo e sulla posizione dell'account. I dati vengono inviati quando attivati da eventi quali ordini eseguiti, trasferimenti di fondi.
SubscribeOrders Recupera le informazioni sull'ordine. I dati non verranno inviati alla prima sottoscrizione. I dati verranno inviati solo quando attivati da eventi come il piazzamento/annullamento di un ordine.
SubscribeOrdersAlgo Recupera gli ordini algo (include ordini trigger, ordini oco, ordini condizionali). I dati non vengono inviati al primo abbonamento. I dati vengono inviati solo quando attivati da eventi come il piazzamento/cancellazione di ordini.
SubscribeAdvanceAlgo

Recupera gli ordini algo avanzati (inclusi ordine Iceberg, ordine TWAP, ordine Trailing). I dati verranno inviati al primo abbonamento. I dati verranno inviati quando attivati da eventi quali l'inserimento/annullamento di un ordine.

SubscribePositionRisk Questo canale push viene utilizzato solo come avviso di rischio e non è raccomandato come giudizio di rischio per il trading strategico
Nel caso in cui il mercato non si muova violentemente, potrebbe esserci la possibilità che la posizione sia stata liquidata nello stesso momento in cui viene inviato questo messaggio.
SubscribeAccountGreeks Recupera le informazioni greche dell'account. I dati verranno inviati quando attivati da eventi quali aumento/diminuzione delle posizioni o saldo in contanti nell'account, e verranno inviati anche a intervalli regolari in base alla granularità della sottoscrizione.
SubscribeRfqs Recupera gli Rfq.
SubscribeQuotes

Recuperare le quotazioni.

SubscribePrivateStructureBlockTrades Recupero delle operazioni di struttura a blocchi.
SubscribeSpotGridAlgoOrders Recupera gli ordini di algoritmi spot grid. I dati vengono inviati alla prima sottoscrizione. I dati vengono inviati quando attivati da eventi come il piazzamento/annullamento di un ordine.
SubscribeContactGridAlgoOrders Recupera gli ordini algo a griglia per contratti. I dati verranno inviati alla prima iscrizione. I dati verranno inviati quando attivati da eventi come il piazzamento o l'annullamento di un ordine.
SubscribeGridPositions Recupera le posizioni della griglia. I dati vengono inviati al primo abbonamento. I dati vengono inviati quando attivati da eventi come il piazzamento/cancellazione di ordini.
SubscribeGridSubOrders Recupera gli ordini secondari della griglia. I dati vengono inviati al primo abbonamento. I dati vengono inviati quando attivati da eventi come il piazzamento di ordini.
SubscribeFills Recupera i dati degli ordini eseguiti. I dati verranno inviati quando un ordine viene eseguito.
SubscribeDepositInfo Recupera le informazioni sui depositi. I dati verranno inviati quando si verifica un aggiornamento dello stato di un deposito.
SubscribeWithdrawalInfo Recupera le informazioni sui prelievi. I dati verranno inviati quando vi è un aggiornamento dello stato di un prelievo.

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

Il WebSocket Trade richiede l'autenticazione.

 

È possibile inserire un ordine solo se si dispone di fondi sufficienti. Di seguito una tabella con i parametri della richiesta:

 

Parametro Tipo Obbligatorio Descrizione
id String Identificatore univoco del messaggio
Fornito dal client. Verrà restituito nel messaggio di risposta per identificare la richiesta corrispondente.
Una combinazione di caratteri alfanumerici con distinzione tra maiuscole e minuscole, tutti numeri o tutte lettere, fino a 32 caratteri.
> instId String ID strumento, ad es. BTC-USD-190927-5000-C
> tdMode String Modalità di trading
Modalità margine isolated cross
Modalità senza margine cash
> ccy String No Valuta del margine
Applicabile solo agli ordini cross MARGIN in Single-currency margin.
> clOrdId String No ID dell'ordine fornito dal client
Una combinazione di caratteri alfanumerici con distinzione tra maiuscole e minuscole, tutti numeri o tutte lettere, fino a 32 caratteri.
> tag String No Tag dell'ordine
Una combinazione di caratteri alfanumerici sensibili alle maiuscole, tutti numeri o tutte lettere fino a 16 caratteri.
> lato String Lato dell'ordine, buy sell
> posSide String Opzionale Lato della posizione
Il valore predefinito è net nella modalità net
È richiesto nella modalità long/short e può essere solo long o short.
Applicabile solo a FUTURES/SWAP.
> ordType String Tipo di ordine
market: ordine di mercato
limit: ordine limite
post_only: ordine Post-only
fok: ordine Fill-or-kill
ioc: ordine Immediate-or-cancel
optimal_limit_ioc :Ordine di mercato con ordine immediate-or-cancel
> sz String Quantità da acquistare o vendere.
> px String Opzionale Price
Applicabile solo agli ordini limit,post_only,fok,ioc .
> reduceOnly Boolean No Se ridurre solo la posizione o meno, true false, il valore predefinito è false
Applicabile solo agli ordini MARGIN , e agli ordini FUTURES/SWAP in modalità net
Applicabile solo al margine Single-currency margin e Multi-currency margin
> tgtCcy String No Tipo di quantità
base_ccy: Valuta base ,quote_ccy: Valuta di quotazione
Applicabile solo a SPOT negoziato con ordine Market
L'impostazione predefinita è quote_ccy per l'acquisto, base_ccy per la vendita
> banAmend Boolean No Se impedire la modifica degli ordini spot o meno, true o false, il valore predefinito è false.
Il piazzamento degli ordini non riuscirà se il saldo non è sufficiente quando banAmend è true. Applicabile solo agli ordini di mercato SPOT

 

 

Esempio di inserimento ordine

 

È possibile inserire un ordine solo se si dispone di fondi sufficienti.


// Place Martket Order
TsgcWSAPI_OKX1.PlaceMarketOrder(okxosBuy, 'ETH-BTC', 1);
// Place Limit Order
TsgcWSAPI_OKX1.PlaceLimitOrder(okxosBuy, 'ETH-BTC', 1, 0.25);

 

Esempio di cancellazione ordine

 

Annulla un ordine incompleto


TsgcWSAPI_OKX1.CancelOrder('ETH-BTC', '457589362405027840');

 

Modifica ordine

 

Modifica un ordine incompleto.


TsgcWSAPI_OKX1.AmendOrder('ETH-BTC', '457589362405027840', '', 2);

Operazioni di Trading in Batch

L'API WebSocket Trade supporta anche operazioni batch per il piazzamento, la cancellazione e la modifica di più ordini contemporaneamente. Queste operazioni richiedono l'Autenticazione.

Method Description
BatchPlaceOrders Invia più ordini in una singola richiesta. È possibile inviare un massimo di 20 ordini alla volta.
BatchCancelOrders Annulla più ordini in una singola richiesta. È possibile annullare al massimo 20 ordini alla volta.
BatchAmendOrders Modifica più ordini incompleti in una singola richiesta. È possibile modificare un massimo di 20 ordini alla volta.
MassCancelOrders Annulla in massa tutti gli ordini in sospeso per un tipo di strumento specifico.