Actualización de la API CEX Plus en sgcWebSockets

· Características
Integración de la API WebSocket de CEX.IO Plus en Delphi

CEX.IO Plus es la plataforma avanzada de trading de CEX.IO, diseñada para traders profesionales e institucionales. El componente TsgcWSAPI_CexPlus proporciona acceso Delphi completo a su API WebSocket, cubriendo suscripciones de datos de mercado, gestión de órdenes, operaciones de cuenta y transferencias de fondos — todo mediante una única conexión persistente.

Índice de contenidos

Visión general

La API CEX.IO Plus amplía significativamente la oferta estándar de CEX.IO. Proporciona tres niveles de funcionalidad: suscripciones públicas para feeds en tiempo real de order book y trades, consultas de datos de mercado para snapshots bajo demanda de tickers, candles e información del exchange, y métodos de cuenta para operaciones completas de trading incluyendo gestión de órdenes, consultas de comisiones, historial de transacciones y transferencias de fondos. El componente TsgcWSAPI_CexPlus encapsula todas estas capacidades.

Primeros pasos

Crea un componente TsgcWebSocketClient y un TsgcWSAPI_CexPlus, enlázalos y configura tus credenciales API. El componente se conecta automáticamente al endpoint WebSocket de CEX.IO Plus.

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your_api_key';
oCexPlus.CexPlus.ApiSecret := 'your_api_secret';
oClient.Active := True;
Nota: CEX.IO Plus usa un endpoint API y esquema de autenticación distintos a la API CEX.IO estándar. Asegúrate de que tus credenciales API se generan desde el dashboard de CEX.IO Plus, no desde la plataforma CEX.IO estándar.

Métodos WebSocket públicos

Los métodos de suscripción públicos proporcionan datos en streaming en tiempo real sin requerir autenticación. Son ideales para monitorización de mercado y construir feeds de datos en vivo.

Método Descripción
SubscribeOrderBook Subscribe to real-time order book updates for a trading pair.
UnSubscribeOrderBook Unsubscribe from order book updates for a trading pair.
SubscribeTrade Subscribe to live trade execution feed for a trading pair.
UnSubscribeTrade Unsubscribe from the trade execution feed.
// Subscribe to BTC-USD order book and trades
oCexPlus.SubscribeOrderBook('BTC-USD');
oCexPlus.SubscribeTrade('BTC-USD');
// Unsubscribe when no longer needed
oCexPlus.UnSubscribeOrderBook('BTC-USD');
oCexPlus.UnSubscribeTrade('BTC-USD');

Métodos de datos de mercado

Los métodos de datos de mercado devuelven snapshots bajo demanda de datos del exchange. A diferencia de las suscripciones, son llamadas request-response que devuelven un único resultado.

Método Descripción
GetTicker Retrieve the current ticker (bid, ask, last price) for a pair.
GetOrderBook Retrieve the current order book snapshot for a pair.
GetCandles Retrieve OHLCV candle data for charting.
GetTradeHistory Retrieve recent public trade history for a pair.
GetServerTime Retrieve the current server timestamp for synchronization.
GetPairsInfo Retrieve information about all available trading pairs.
GetCurrenciesInfo Retrieve information about all supported currencies.
GetProcessingInfo Retrieve deposit and withdrawal processing details.

Consultar datos de mercado

// Get current ticker for BTC-USD
oCexPlus.GetTicker('BTC-USD');
// Get order book snapshot
oCexPlus.GetOrderBook('BTC-USD');
// Get candle data for charting
oCexPlus.GetCandles('BTC-USD');
// Get available trading pairs
oCexPlus.GetPairsInfo;

Métodos de cuenta y trading

Los métodos de cuenta requieren autenticación y proporcionan capacidades completas de trading, incluyendo colocación de órdenes, comprobaciones de estado de cuenta, gestión de comisiones y transferencias de fondos.

Gestión de cuenta

Método Descripción
Ping Send a keepalive ping to maintain the connection.
CreateAccount Create a new sub-account on the platform.
GetAccountStatus Retrieve the current account status and details.
GetCurrentFee Retrieve the current trading fee rate for the account.
GetFeeStrategy Retrieve the fee strategy and tier information.
GetVolume Retrieve the trading volume for fee tier calculation.

Gestión de órdenes

Método Descripción
GetOrders Retrieve all open orders on the account.
NewOrder Place a new order with full parameter control.
NewMarketOrder Place a market order that executes at the current best price.
NewLimitOrder Place a limit order at a specified price.
CancelOrder Cancel a specific open order by its identifier.
CancelAllOrders Cancel all open orders at once.

Historial y fondos

Método Descripción
GetTransactionHistory Retrieve the account's transaction history.
GetFundingHistory Retrieve deposit and withdrawal history.
InternalTransfer Transfer funds between sub-accounts internally.
GetDepositAddress Generate or retrieve a deposit address for a currency.
FundsDepositFromWallet Deposit funds from an external wallet into the trading account.
FundsWithdrawalToWallet Withdraw funds from the trading account to an external wallet.

Ejemplo de código

El siguiente ejemplo muestra cómo conectar con CEX.IO Plus, comprobar el estado de la cuenta, suscribirse al order book y colocar una orden market.

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your_api_key';
oCexPlus.CexPlus.ApiSecret := 'your_api_secret';
oClient.Active := True;
// Get account status
oCexPlus.GetAccountStatus;
// Subscribe to order book
oCexPlus.SubscribeOrderBook('BTC-USD');
// Place a market order
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);

Colocar distintos tipos de orden

CEX.IO Plus soporta varios tipos de orden. Usa NewMarketOrder para ejecución inmediata al mejor precio disponible, NewLimitOrder para órdenes a un precio concreto, o NewOrder para control total de los parámetros.

// Market order: buy BTC with USD at market price
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);
// Limit order: buy BTC at a specific price
oCexPlus.NewLimitOrder('BTC', 'USD', cxpsBuy, 0.01, 30000);
// Cancel a specific order
oCexPlus.CancelOrder('order-id-here');
// Cancel all open orders
oCexPlus.CancelAllOrders;

Transferencias de fondos

El componente soporta transferencias internas de fondos entre subcuentas, así como operaciones de depósito y retirada.

// Get deposit address for BTC
oCexPlus.GetDepositAddress('BTC');
// Retrieve funding history
oCexPlus.GetFundingHistory;
// Transfer funds between sub-accounts
oCexPlus.InternalTransfer('from-account', 'to-account', 'BTC', 0.5);

Configuración y notas

Credenciales API

Genera tu API key y secret desde la plataforma CEX.IO Plus. Son distintas a las credenciales estándar de CEX.IO. Asegúrate de que la API key tenga habilitados los permisos adecuados para las operaciones que vayas a realizar (p. ej. trading, withdrawal).

Convención de nombres de pares

CEX.IO Plus usa un formato de par con guion como BTC-USD, a diferencia de la API CEX.IO estándar que usa parámetros separados de base y quote. Usa siempre el formato con guion al llamar a métodos de suscripción y consultas de datos de mercado.

Enumeración del lado de la orden

Los métodos de orden usan los valores de enumeración cxpsBuy y cxpsSell para especificar la dirección de la orden. Son específicos del componente CEX.IO Plus y difieren de la enumeración estándar de CEX.IO.

Keepalive de la conexión

Usa el método Ping a intervalos regulares para mantener viva la sesión autenticada. Esto evita que el servidor cierre la conexión por inactividad.

Consejo: usa GetPairsInfo y GetCurrenciesInfo al arrancar para descubrir dinámicamente los pares de trading disponibles y las divisas soportadas, en lugar de codificarlas en tu aplicación.

Gestión de errores

Todas las respuestas de CEX.IO Plus incluyen un campo status. Gestiona las respuestas de error en el evento de mensaje del componente comprobando el estado y los detalles del error. Errores comunes son saldo insuficiente, nombres de par inválidos y fallos de autenticación.