Aggiornamento API OKX sgcWebSockets

· Funzionalità
Integrazione dell'API WebSocket di trading OKX in Delphi

Il componente TsgcWSAPI_OKX fornisce un accesso Delphi completo all'exchange OKX tramite un'interfaccia WebSocket unificata. Supporta stream pubblici di dati di mercato, canali privati di account e operazioni di trading dirette inclusi ordini market e limit, tutto tramite un singolo componente. Questa guida descrive ogni metodo disponibile, le proprietà di configurazione e include esempi di codice funzionanti per iniziare a fare trading su OKX da Delphi.

Indice

Canali pubblici WebSocket

I canali pubblici inviano in stream i dati di mercato a tutti i client connessi senza richiedere autenticazione. Questi canali coprono strumenti, ticker, order book, trade, candlestick, funding rate e altro. Ogni metodo subscribe ha un corrispondente metodo unsubscribe.

Canali dati di mercato

Metodo Descrizione
SubscribeInstruments Sottoscrive gli aggiornamenti degli strumenti (nuovi listing, delisting, cambi di stato).
SubscribeTicker Sottoscrive i dati ticker in tempo reale per uno strumento specifico.
SubscribeOpenInterest Sottoscrive gli aggiornamenti di open interest per contratti futures e perpetual.
SubscribeCandlestick Sottoscrive i dati candle/kline all'intervallo specificato.
SubscribeTrades Sottoscrive i dati di esecuzione operazioni in tempo reale per uno strumento specifico.
SubscribeOrderBook Sottoscrive gli aggiornamenti del libro degli ordini con profondita' configurabile.

Canali di prezzo e indici

Metodo Descrizione
SubscribeEstimatedPrices Sottoscrive il prezzo di consegna/esercizio stimato per opzioni e futures.
SubscribeMarkPrice Sottoscrive gli aggiornamenti del mark price utilizzati per calcoli di margine e PnL.
SubscribeMarkPriceCandlestick Sottoscrive i dati candle basati sul mark price.
SubscribePriceLimit Sottoscrive gli aggiornamenti dei limiti di prezzo (price band) per uno strumento.
SubscribeIndexCandlestick Sottoscrive i dati candle basati sul prezzo dell'indice.
SubscribeIndexTicker Sottoscrive gli aggiornamenti del ticker dell'indice per un indice specifico.
SubscribeFundingRate Sottoscrive gli aggiornamenti del funding rate per contratti perpetual.

Canali opzioni e sistema

Metodo Descrizione
SubscribeOptionSummary Sottoscrive i dati riepilogativi delle opzioni (greche, volatilita', open interest).
SubscribeStatus Sottoscrive gli aggiornamenti dello stato del sistema (manutenzione, interruzioni).
SubscribePublicStructureBlockTrades Sottoscrive i dati pubblici delle operazioni a blocchi strutturati.
SubscribeBlockTickers Sottoscrive gli aggiornamenti del ticker delle operazioni a blocchi.
Nota: Ogni metodo Subscribe elencato sopra ha un corrispettivo UnSubscribe (ad esempio UnSubscribeTicker) per smettere di ricevere aggiornamenti per quel canale.

Canali privati WebSocket

I canali privati richiedono autenticazione e forniscono aggiornamenti in tempo reale sullo stato del tuo account, posizioni, ordini e attivita' di trading algoritmico. Imposta OKX.IsPrivate := True e fornisci credenziali API valide prima di sottoscrivere questi canali.

Canali account e posizioni

Metodo Descrizione
SubscribeAccount Sottoscrive gli aggiornamenti di saldo e equity dell'account in tempo reale.
SubscribePositions Sottoscrive gli aggiornamenti delle posizioni (apertura, chiusura, variazioni di size).
SubscribeBalanceAndPosition Sottoscrive gli aggiornamenti combinati di saldo e posizione in un unico flusso.
SubscribePositionRisk Sottoscrive gli avvisi di rischio sulle posizioni (vicinanza alla liquidazione).
SubscribeAccountGreeks Sottoscrive gli aggiornamenti delle greche a livello di account per le posizioni in opzioni.

Canali ordini e algo

Metodo Descrizione
SubscribeOrdini Sottoscrive gli aggiornamenti di stato degli ordini (piazzato, eseguito, annullato, parzialmente eseguito).
SubscribeOrdiniAlgo Sottoscrive gli aggiornamenti degli ordini algoritmici (trigger, TP/SL, trailing stop).
SubscribeAdvanceAlgo Sottoscrive gli aggiornamenti degli ordini algoritmici avanzati (iceberg, TWAP).

Canali RFQ e block trade

Metodo Descrizione
SubscribeRfqs Sottoscrive gli aggiornamenti delle richieste di quotazione (RFQ) per il block trading.
SubscribeQuotes Sottoscrive gli aggiornamenti delle quotazioni in risposta alle RFQ.
SubscribePrivateStructureBlockTrades Sottoscrive gli aggiornamenti privati delle operazioni a blocchi strutturati.

Canali grid trading

Metodo Descrizione
SubscribeSpotGridAlgoOrdini Sottoscrive gli aggiornamenti degli ordini algoritmici grid spot.
SubscribeContactGridAlgoOrdini Sottoscrive gli aggiornamenti degli ordini algoritmici grid su contratti.
SubscribeGridPositions Sottoscrive gli aggiornamenti delle posizioni di grid trading.
SubscribeGridSubOrdini Sottoscrive gli aggiornamenti dei singoli sub-ordini all'interno di una strategia grid.

Operazioni di trading WebSocket

OKX supporta il piazzamento e la gestione degli ordini direttamente sulla connessione WebSocket, offrendo una latenza inferiore rispetto alle chiamate REST API. Questi metodi richiedono autenticazione.

Metodo Descrizione
PlaceOrder Piazza un nuovo ordine con pieno controllo su tutti i parametri.
PlaceMarketOrder Piazza un ordine market che viene eseguito immediatamente al miglior prezzo disponibile.
PlaceLimitOrder Piazza un ordine limit a un prezzo specificato, eseguito solo quando il mercato raggiunge quel prezzo.
CancelOrder Annulla un ordine esistente tramite il suo order ID.
AmendOrder Modifica un ordine esistente (cambia prezzo o size senza annullare e ripiazzare).
Nota: Il trading via WebSocket offre una latenza molto inferiore rispetto al piazzamento di ordini via REST. OKX elabora gli ordini WebSocket con priorita' maggiore, rendendolo il metodo preferito per strategie sensibili alla latenza.

Esempio di codice

L'esempio seguente mostra come creare e configurare il componente TsgcWSAPI_OKX, autenticarsi con l'API, sottoscrivere i dati ticker, monitorare gli ordini e piazzare ordini market e limit direttamente sulla connessione WebSocket.

var
  oClient: TsgcWebSocketClient;
  oOKX: TsgcWSAPI_OKX;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  oOKX := TsgcWSAPI_OKX.Create(nil);
  oOKX.Client := oClient;
  // Configure API credentials
  oOKX.OKX.ApiKey := 'your_api_key';
  oOKX.OKX.ApiSecret := 'your_api_secret';
  oOKX.OKX.Passphrase := 'your_passphrase';
  oOKX.OKX.IsPrivate := True;
  // Connect to OKX
  oClient.Active := True;
  // Subscribe to BTC-USDT ticker
  oOKX.SubscribeTicker('BTC-USDT');
  // Subscribe to order updates for spot trading
  oOKX.SubscribeOrdini(okxitSpot);
  // Place a market buy order
  oOKX.PlaceMarketOrder(okxosBuy, 'BTC-USDT', 0.001);
  // Place a limit buy order
  oOKX.PlaceLimitOrder(okxosBuy, 'BTC-USDT', 0.001, 30000);
end;

Gestione degli eventi WebSocket

Assegna un gestore di evento per elaborare i messaggi WebSocket in arrivo. L'evento fornisce il nome del canale e il payload JSON per ogni aggiornamento.

procedure TForm1.OnOKXEvent(Sender: TObject;
  const aChannel, aData: string);
begin
  // aChannel identifies the subscription (e.g., 'tickers', 'orders')
  // aData contains the JSON payload
  Memo1.Lines.Add(aChannel + ': ' + aData);
end;

Uso della modalita' demo trading

OKX fornisce un ambiente demo di trading per i test. Abilitalo impostando OKX.IsDemo := True prima di connetterti. La modalita' demo si connette a un endpoint separato con saldi simulati, permettendoti di testare la tua logica di trading senza rischiare fondi reali.

// Enable demo trading mode
oOKX.OKX.IsDemo := True;
oOKX.OKX.IsPrivate := True;
oClient.Active := True;

Configurazione e note

Proprieta' di configurazione

Tutta la configurazione e' accessibile tramite la proprieta' OKX del componente.

Proprietà Tipo Descrizione
OKX.ApiKey Stringa La tua API key OKX. Generala dalla pagina API Management di OKX.
OKX.ApiSecret Stringa Il tuo API secret OKX. Mantieni questo valore al sicuro e non esporlo mai in codice lato client.
OKX.Passphrase Stringa La passphrase impostata quando hai creato l'API key. Richiesta per tutte le richieste autenticate.
OKX.IsDemo Booleano Quando impostata su True, si connette all'ambiente demo di trading OKX con fondi simulati. Default False.
OKX.IsPrivate Booleano Quando impostata su True, abilita l'autenticazione sulla connessione WebSocket. Richiesta per i canali privati e le operazioni di trading. Default False.

Note importanti

Security: Non inserire mai hard-coded la tua API key, secret o passphrase nel codice di produzione. Usa un file di configurazione sicuro o variabili d'ambiente per memorizzare le credenziali.