API OKX

OKX

 

APIs admitidas

 

Propiedades

Los canales WebSocket se dividen en dos categorías: canales públicos y privados.

 

 

Puede configurar las siguientes propiedades en la propiedad OKX.

 

 

Conexión

Cuando el cliente se conecta correctamente a los servidores de OKX, se activa el evento OnOKXConnect. Si se produce algún error al intentar conectarse, se activará el evento OnOKXError con los detalles del error.

Después de que se active el evento OnOKXConnect, puede empezar a enviar y recibir mensajes de los servidores 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;

Canales Públicos

El feed de WebSocket proporciona actualizaciones de datos de mercado en tiempo real para órdenes y operaciones. El feed de WebSocket tiene algunos canales públicos como ticker, operaciones...

 

Puede suscribirse a los siguientes canales públicos:

 

Método Descripción
SubscribeInstruments La lista completa de instrumentos se enviará por primera vez tras la suscripción. Posteriormente, los instrumentos se enviarán si hay algún cambio en el estado del instrumento (como la entrega de FUTURES, el ejercicio de OPTION, la cotización de nuevos contratos o pares de trading, la suspensión de la negociación, etc.).
SubscribeTicker Recuperar el último precio negociado, precio de compra, precio de venta y volumen de negociación de 24 horas de los instrumentos. Los datos se enviarán cada 100 ms.
SubscribeOpenInterest Recupera el interés abierto. Los datos se enviarán cada 3 segundos.
SubscribeCandlestick Recupera los datos de velas de un instrumento. La frecuencia de envío es el intervalo más rápido: 500 ms por envío.
SubscribeTrades Recupera los datos de operaciones recientes. Los datos se enviarán cuando se produzca una operación.
SubscribeEstimatedPrices

Recuperar el precio estimado de entrega/ejercicio de contratos FUTURES y OPTION.

Solo se enviará el precio estimado de entrega/ejercicio una hora antes de la entrega/ejercicio, y se enviará únicamente si hay algún cambio de precio.

SubscribeMarkPrice Obtiene el precio de referencia. Los datos se enviarán cada 200 ms cuando el precio de referencia cambie, y cada 10 segundos cuando el precio de referencia no cambie.
SubscribeMarkPriceCandlestick Recupera los datos de velas del precio de marca. Los datos se enviarán cada 500 ms.
SubscribePriceLimit Recupere el precio máximo de compra y el precio mínimo de venta del instrumento. Los datos se enviarán cada 5 segundos cuando haya cambios en los límites, y no se enviarán cuando no haya cambios en los límites.
SubscribeOrderBook

Recupere datos del libro de órdenes.

Utilice books para 400 niveles de profundidad, book5 para 5 niveles de profundidad, bbo-tbt tick a tick con 1 nivel de profundidad, books50-l2-tbt tick a tick con 50 niveles de profundidad, y books-l2-tbt para tick a tick con 400 niveles de profundidad.

  • books: Se enviarán 400 niveles de profundidad en la instantánea completa inicial. Los datos incrementales se enviarán cada 100 ms cuando haya cambios en el libro de órdenes.
  • books5: Se enviarán 5 niveles de profundidad cada vez. Los datos se enviarán cada 100 ms cuando haya cambios en el libro de órdenes.
  • bbo-tbt: Se enviará 1 nivel de profundidad cada vez. Los datos se enviarán cada 10 ms cuando haya cambios en el libro de órdenes.
  • books-l2-tbt: Se enviarán 400 niveles de profundidad en la instantánea completa inicial. Los datos incrementales se enviarán cada 10 ms cuando haya cambios en el libro de órdenes.
  • books50-l2-tbt: Se enviarán 50 niveles de profundidad en la instantánea completa inicial. Los datos incrementales se enviarán cada 10 ms cuando haya cambios en el libro de órdenes. Si asks o bids es un array vacío, significa que hay cambios en 400 niveles de profundidad en lugar de 50. Si mantiene los datos del libro de órdenes localmente, ignore los asks y bids vacíos.
SubscribeOptionSummary Recuperar información de precios detallada de todos los contratos OPTION. Los datos se enviarán de una vez.
SubscribeFundingRate Recuperar tasa de financiación. Los datos se enviarán en un intervalo de 30 a 90 segundos.
SubscribeIndexCandlestick Recupera los datos de velas del índice. Los datos se enviarán cada 500 ms.
SubscribeIndexTicker Recuperar datos de tickers de índice
SubscribeStatus Obtener el estado del mantenimiento del sistema y enviar notificación cuando cambie el estado del mantenimiento del sistema. Primera suscripción: "Enviar los últimos datos de cambio"; cada vez que haya un cambio de estado, enviar el contenido modificado
SubscribePublicStructureBlockTrades Los datos se enviarán siempre que haya una operación en bloque.
SubscribeBlockTickers Recupera el volumen de negociación en bloque más reciente de las últimas 24 horas. Los datos se enviarán cuando se active el evento de ejecución de una transacción. Además, también se enviará en intervalos de 5 minutos según la granularidad de la suscripción.
SubscribeAllTrades Recuperar todos los datos de operaciones. Los datos se enviarán cada vez que se realice una operación.
CancelOrderBatch Recuperar órdenes de liquidación. Los datos se enviarán cuando haya una orden de liquidación.
SubscribeADLWarning Recuperar datos de advertencia ADL. Los datos se enviarán cuando aumente el riesgo de desapalancamiento automático.
SubscribeEconomicCalendar Recupera los eventos del calendario económico. Los datos se enviarán cuando haya actualizaciones en los eventos económicos.
SubscribePublicBlockTrades Recuperar operaciones de bloque públicas. Los datos se enviarán cada vez que haya una operación de bloque.
SubscribeOptionTrades Recupera datos de operaciones de opciones. Los datos se enviarán cada vez que se produzca una operación de opciones.
SubscribeCallAuctionDetails Recuperar detalles de la subasta de llamadas. Los datos se enviarán cuando haya actualizaciones en la información de la subasta de llamadas.

 


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;

Canales Privados

Incluyendo el canal de cuenta, el canal de órdenes y el canal de posiciones, etc. — requieren inicio de sesión.

 

Puede suscribirse a los siguientes canales privados:

 

Método Descripción
SubscribeAccount Recupera información de la cuenta. Los datos se enviarán cuando se activen eventos como colocar una orden, cancelar una orden, ejecución de transacción, etc. También se enviarán a intervalos regulares según la granularidad de la suscripción.
SubscribePositions Recupera información de posición. Se enviará una instantánea inicial según la granularidad de la suscripción. Los datos se enviarán cuando se activen eventos como colocar/cancelar órdenes, y también se enviarán en intervalos regulares según la granularidad de la suscripción.
SubscribeBalanceAndPosition Recupera el saldo de la cuenta e información de posición. Los datos se enviarán cuando se activen por eventos como órdenes ejecutadas o transferencias de fondos.
SubscribeOrders Recuperar información de órdenes. Los datos no se enviarán al suscribirse por primera vez. Solo se enviarán cuando sean activados por eventos como la colocación o cancelación de una orden.
SubscribeOrdersAlgo Recuperar órdenes algorítmicas (incluye órdenes de activación, órdenes OCO y órdenes condicionales). Los datos no se enviarán al suscribirse por primera vez. Los datos solo se enviarán cuando sean activados por eventos como la colocación o cancelación de órdenes.
SubscribeAdvanceAlgo

Recuperar órdenes algorítmicas avanzadas (incluidas órdenes Iceberg, TWAP y de seguimiento). Los datos se enviarán al suscribirse por primera vez. Los datos se enviarán cuando se activen por eventos como la colocación o cancelación de una orden.

SubscribePositionRisk Este canal de envío solo se utiliza como advertencia de riesgo y no se recomienda como criterio de decisión de riesgo para operaciones estratégicas.
En caso de que el mercado no se mueva de forma violenta, puede darse la posibilidad de que la posición haya sido liquidada al mismo tiempo que se envía este mensaje.
SubscribeAccountGreeks Recupera información de griegas de la cuenta. Los datos se enviarán cuando se activen eventos como incremento/decremento de posiciones o saldo en efectivo en la cuenta, y también se enviarán a intervalos regulares según la granularidad de la suscripción.
SubscribeRfqs Recuperar las Rfqs.
SubscribeQuotes

Recuperar las cotizaciones.

SubscribePrivateStructureBlockTrades Recuperar operaciones de bloques de estructura.
SubscribeSpotGridAlgoOrders Recuperar órdenes de algoritmo de cuadrícula spot. Los datos se enviarán cuando se suscriba por primera vez. Los datos se enviarán cuando se activen por eventos como la colocación o cancelación de órdenes.
SubscribeContactGridAlgoOrders Recuperar órdenes de algoritmo de cuadrícula de contratos. Los datos se enviarán cuando se suscriba por primera vez. Los datos se enviarán cuando se activen por eventos como la colocación o cancelación de órdenes.
SubscribeGridPositions Recuperar posiciones de cuadrícula. Los datos se enviarán al suscribirse por primera vez. Los datos se enviarán cuando sean activados por eventos como la colocación o cancelación de órdenes.
SubscribeGridSubOrders Recuperar subórdenes de cuadrícula. Los datos se enviarán al suscribirse por primera vez. Los datos se enviarán cuando sean activados por eventos como la colocación de órdenes.
SubscribeFills Recupera los datos de órdenes completadas. Los datos se enviarán cuando se complete una orden.
SubscribeDepositInfo Recuperar información de depósito. Los datos se enviarán cuando haya una actualización del estado de un depósito.
SubscribeWithdrawalInfo Recupera información sobre retiros. Los datos se enviarán cuando haya una actualización del estado de un retiro.

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

La operación WebSocket requiere autenticación.

 

Solo puede realizar una orden si dispone de fondos suficientes. A continuación encontrará una tabla con los parámetros de la solicitud:

 

Parámetro Tipo Obligatorio Descripción
id String Identificador único del mensaje
Proporcionado por el cliente. Se devolverá en el mensaje de respuesta para identificar la solicitud correspondiente.
Una combinación de caracteres alfanuméricos que distingue mayúsculas de minúsculas, todos números o todas letras, de hasta 32 caracteres.
> instId String ID de instrumento, por ejemplo BTC-USD-190927-5000-C
> tdMode String Modo de operación
Modo de margen isolated cross
Modo sin margen cash
> ccy String No Moneda de margen
Solo aplicable a órdenes cross MARGIN en Single-currency margin.
> clOrdId String No ID de orden proporcionado por el cliente
Una combinación de caracteres alfanuméricos que distingue mayúsculas de minúsculas, todos números o todas letras de hasta 32 caracteres.
> tag String No Etiqueta de orden
Una combinación de caracteres alfanuméricos sensibles a mayúsculas, todos números o todas letras de hasta 16 caracteres.
> lado String Lado de la orden, buy sell
> posSide String Opcional Lado de la posición
El valor predeterminado es net en el modo net
Es obligatorio en el modo long/short y solo puede ser long o short.
Solo aplicable a FUTURES/SWAP.
> ordType String Tipo de orden
market: orden de mercado
limit: orden limitada
post_only: orden solo publicación
fok: orden Fill-or-Kill
ioc: orden Immediate-or-Cancel
optimal_limit_ioc :Orden de mercado con orden Immediate-or-Cancel
> sz String Cantidad a comprar o vender.
> px String Opcional Precio
Solo aplicable a órdenes de tipo limit,post_only,fok,ioc.
> reduceOnly Boolean No Si reducir solo la posición o no, true false, el valor predeterminado es false.
Solo aplicable a órdenes MARGIN y órdenes FUTURES/SWAP en modo net
Solo aplicable a Single-currency margin y Multi-currency margin
> tgtCcy String No Tipo de cantidad
base_ccy: Divisa base, quote_ccy: Divisa de cotización
Solo aplicable a SPOT negociado con orden de mercado
El valor predeterminado es quote_ccy para compra, base_ccy para venta
> banAmend Boolean No Si se prohíbe o no la modificación de órdenes spot, true o false; el valor predeterminado es false.
Si banAmend es true, fallará al colocar órdenes cuando el saldo sea insuficiente. Solo aplicable a órdenes de mercado SPOT.

 

 

Ejemplo de Colocación de Orden

 

Solo puede colocar una orden si dispone de fondos suficientes.


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

 

Ejemplo de cancelación de orden

 

Cancela una orden incompleta.


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

 

Modificar orden

 

Modificar una orden incompleta.


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

Operaciones de Comercio por Lotes

La API de negociación WebSocket también admite operaciones por lotes para colocar, cancelar y modificar múltiples órdenes a la vez. Estas operaciones requieren Autenticación.

Método Descripción
BatchPlaceOrders Coloque múltiples órdenes en una sola solicitud. Se pueden colocar un máximo de 20 órdenes a la vez.
BatchCancelOrders Cancela múltiples órdenes en una sola solicitud. Se pueden cancelar un máximo de 20 órdenes a la vez.
BatchAmendOrders Modifica múltiples órdenes incompletas en una sola solicitud. Se pueden modificar un máximo de 20 órdenes a la vez.
MassCancelOrders Cancela masivamente todas las órdenes pendientes de un tipo de instrumento específico.