MEXC es un exchange global de criptomonedas que admite trading spot y contratos de futuros perpetuos sobre cientos de pares de tokens. Los desarrolladores Delphi pueden integrarse con MEXC mediante dos componentes dedicados: TsgcWSAPI_MEXC para el mercado Spot y TsgcWSAPI_MEXC_Futures para el mercado de Futuros. Cada componente proporciona tanto suscripciones WebSocket para datos en tiempo real como una interfaz REST para consultas bajo demanda y gestión de órdenes. Este artículo detalla todos los métodos disponibles en ambos mercados.
Índice
- Visión general de arquitectura
- API WebSocket Spot
- API REST Spot
- API WebSocket de Futuros
- API REST de Futuros
- Primeros pasos — Ejemplos de código
- Referencia de configuración
- Consejos y notas
Visión general de arquitectura
MEXC ofrece superficies de API separadas para sus mercados Spot y de Futuros. En la librería sgcWebSockets esto se refleja en dos componentes distintos:
TsgcWSAPI_MEXC— Gestiona el mercado Spot. Ofrece suscripciones WebSocket para trades, klines, profundidad y tickers en tiempo real, además de streams privados de eventos de cuenta. Se accede a la interfaz REST a través deREST_API(de tipoTsgcHTTP_API_MEXC_Spot).TsgcWSAPI_MEXC_Futures— Gestiona el mercado de Futuros. Ofrece suscripciones WebSocket para datos específicos de futuros como deals, funding rates, precios de índice y precios fair. Se accede a la interfaz REST a través deREST_API(de tipoTsgcHTTP_API_MEXC_Futures).
Ambos componentes siguen el mismo patrón: asigna un TsgcWebSocketClient, configura las credenciales de la API, activa el cliente para las suscripciones WebSocket y utiliza REST_API para las llamadas HTTP síncronas.
API WebSocket Spot
La API WebSocket de Spot ofrece datos de mercado en tiempo real a través de canales públicos y actualizaciones de cuenta a través de canales privados. Cada suscripción tiene su correspondiente método de cancelación.
Canales públicos
| Suscribirse | Cancelar suscripción | Descripción |
|---|---|---|
SubscribeTrade |
UnSubscribeTrade |
Ejecuciones de trade en tiempo real para un símbolo. |
SubscribeKline |
UnSubscribeKline |
Actualizaciones de velas/klines en vivo para un símbolo y un intervalo. |
SubscribeDiffDepth |
UnSubscribeDiffDepth |
Actualizaciones incrementales de la profundidad del order book (diff stream). |
SubscribeBookDepth |
UnSubscribeBookDepth |
Snapshots completos de la profundidad del order book a un nivel dado. |
SubscribeBookTicker |
UnSubscribeBookTicker |
Mejor precio y cantidad de bid/ask para un símbolo concreto. |
SubscribeBookTickerBatch |
UnSubscribeBookTickerBatch |
Mejores precios de bid/ask para todos los símbolos en un único stream. |
SubscribeMiniTickers |
UnSubscribeMiniTickers |
Datos resumidos de ticker (precio, volumen) para todos los símbolos. |
SubscribeMiniTicker |
UnSubscribeMiniTicker |
Datos resumidos de ticker para un símbolo concreto. |
Canales privados
Los canales privados requieren autenticación y entregan actualizaciones en tiempo real sobre la actividad de tu cuenta. Activa el user data stream mediante la propiedad MEXCUserDataStreams.UserStream.
| Suscribirse | Cancelar suscripción | Descripción |
|---|---|---|
SubscribeAccountUpdate |
UnSubscribeAccountUpdate |
Actualizaciones del balance y de las posiciones de la cuenta cuando se producen cambios. |
SubscribeAccountDeals |
UnSubscribeAccountDeals |
Notificaciones en tiempo real cuando se ejecutan tus órdenes (trade executions). |
SubscribeAccountOrders |
UnSubscribeAccountOrders |
Cambios en el estado de las órdenes (creada, parcialmente ejecutada, ejecutada, cancelada). |
API REST Spot
Se accede a la API REST de Spot a través de oMEXC.REST_API (de tipo TsgcHTTP_API_MEXC_Spot). Los endpoints públicos no requieren autenticación; los privados sí requieren una API key y un secret válidos.
Endpoints públicos
| Método | Descripción |
|---|---|
Ping |
Comprueba la conectividad con el servidor de la API de MEXC. |
GetServerTime |
Devuelve la hora actual del servidor de MEXC. |
GetDefaultSymbols |
Devuelve la lista de símbolos de trading por defecto. |
GetExchangeInformation |
Devuelve las reglas de trading del exchange y la información de los símbolos (filtros, precisión, estado). |
GetOrderBook |
Devuelve el order book (bids y asks) de un símbolo a una profundidad dada. |
GetTrades |
Devuelve los trades públicos recientes para un símbolo. |
GetAggregateTrades |
Devuelve registros de trades agregados/comprimidos. |
GetKlines |
Devuelve datos históricos de klines/velas para un símbolo y un intervalo. |
GetAveragePrice |
Devuelve el precio medio actual de un símbolo. |
Get24hrTicker |
Devuelve estadísticas de variación de precio en ventana móvil de 24 horas. |
GetPriceTicker |
Devuelve el último precio para uno o todos los símbolos. |
GetBookTicker |
Devuelve el mejor precio y cantidad de bid/ask del order book. |
Endpoints privados
| Método | Descripción |
|---|---|
NewOrder |
Crea una nueva orden spot (market, limit u otros tipos admitidos). |
TestNewOrder |
Valida una nueva orden sin llegar a crearla (dry run). |
CancelOrder |
Cancela una orden abierta concreta por su order ID. |
CancelAllOrders |
Cancela todas las órdenes abiertas para un símbolo. |
GetOrder |
Devuelve el estado y los detalles de una orden concreta. |
GetOpenOrders |
Devuelve todas las órdenes actualmente abiertas (sin ejecutar). |
GetAllOrders |
Devuelve todas las órdenes (abiertas, ejecutadas, canceladas) dentro de un rango de tiempo. |
GetAccountInformation |
Devuelve los balances y permisos de la cuenta. |
GetMyTrades |
Devuelve tu historial de trades para un símbolo. |
GetSubAccounts |
Devuelve la lista de subcuentas asociadas a la cuenta principal. |
GetDepositAddress |
Devuelve la dirección de depósito para una moneda y red concretas. |
GetWithdrawHistory |
Devuelve el historial de retiradas. |
Withdraw |
Inicia una retirada hacia una dirección externa. |
GetCapitalConfig |
Devuelve la configuración de capital (redes admitidas, importes mín./máx. de retirada, comisiones). |
API WebSocket de Futuros
La API WebSocket de Futuros ofrece datos en tiempo real específicos de los contratos de futuros perpetuos. Todos los canales son públicos y no requieren autenticación. Cada suscripción cuenta con su correspondiente método de cancelación.
| Suscribirse | Cancelar suscripción | Descripción |
|---|---|---|
SubscribeDeal |
UnSubscribeDeal |
Ejecuciones de trade/deal de futuros en tiempo real. |
SubscribeTickers |
UnSubscribeTickers |
Datos de ticker para todos los contratos de futuros. |
SubscribeTicker |
UnSubscribeTicker |
Datos de ticker para un contrato de futuros concreto. |
SubscribeDepth |
UnSubscribeDepth |
Actualizaciones incrementales de la profundidad del order book para futuros. |
SubscribeDepthFull |
UnSubscribeDepthFull |
Snapshots completos de la profundidad del order book para futuros. |
SubscribeKline |
UnSubscribeKline |
Actualizaciones de velas/klines en vivo para contratos de futuros. |
SubscribeFundingRate |
UnSubscribeFundingRate |
Actualizaciones en tiempo real del funding rate para contratos perpetuos. |
SubscribeIndexPrice |
UnSubscribeIndexPrice |
Actualizaciones en tiempo real del precio de índice. |
SubscribeFairPrice |
UnSubscribeFairPrice |
Actualizaciones en tiempo real del precio fair/mark utilizadas para los cálculos de liquidación. |
API REST de Futuros
Se accede a la API REST de Futuros a través de oMEXCFut.REST_API (de tipo TsgcHTTP_API_MEXC_Futures). Cubre datos de mercado, gestión de cuentas, control de posiciones y operaciones sobre órdenes.
Endpoints públicos
| Método | Descripción |
|---|---|
GetPing |
Comprueba la conectividad con el servidor de la API de MEXC Futures. |
GetServerTime |
Devuelve la hora actual del servidor de futuros. |
GetContracts |
Devuelve una lista de todos los contratos de futuros disponibles y sus especificaciones. |
GetDepth |
Devuelve la profundidad del order book para un contrato de futuros. |
GetDeals |
Devuelve el historial reciente de trades/deals públicos para un contrato de futuros. |
GetKlines |
Devuelve datos históricos de klines/velas para un contrato de futuros. |
GetIndexPrice |
Devuelve el precio de índice actual para un contrato. |
GetFairPrice |
Devuelve el precio fair/mark actual para un contrato. |
GetFundingRate |
Devuelve el funding rate actual y previsto para un contrato perpetuo. |
Endpoints privados
| Método | Descripción |
|---|---|
GetAccountAssets |
Devuelve los balances de activos y la información de margen de la cuenta de futuros. |
GetPositionList |
Devuelve todas las posiciones de futuros abiertas con su tamaño, precio de entrada y PnL. |
SetPositionLeverage |
Establece el multiplicador de apalancamiento para un contrato de futuros concreto. |
PlaceOrder |
Crea una nueva orden de futuros (market, limit u otros tipos admitidos). |
CancelOrder |
Cancela una orden de futuros abierta concreta. |
CancelAllOrders |
Cancela todas las órdenes de futuros abiertas para un contrato. |
GetOpenOrders |
Devuelve todas las órdenes de futuros actualmente abiertas. |
GetOrderHistory |
Devuelve el historial de órdenes de futuros (ejecutadas, canceladas, etc.). |
GetFundingHistory |
Devuelve tu historial de pagos de comisiones de funding. |
Primeros pasos — Ejemplos de código
Ejemplo de mercado Spot
El siguiente ejemplo se conecta al WebSocket Spot de MEXC, se suscribe a trades en tiempo real, consulta la información del exchange vía REST y crea una orden de compra a mercado.
var
oClient: TsgcWebSocketClient;
oMEXC: TsgcWSAPI_MEXC;
begin
// Create the WebSocket client
oClient := TsgcWebSocketClient.Create(nil);
// Create the MEXC Spot API component
oMEXC := TsgcWSAPI_MEXC.Create(nil);
oMEXC.Client := oClient;
// Configure API credentials
oMEXC.MEXCAPI.ApiKey := 'your_api_key';
oMEXC.MEXCAPI.ApiSecret := 'your_api_secret';
// Connect to the WebSocket
oClient.Active := True;
// WebSocket: Subscribe to real-time trades for BTCUSDT
oMEXC.SubscribeTrade('BTCUSDT');
// REST: Get exchange information
ShowMessage(oMEXC.REST_API.GetExchangeInformation);
// REST: Place a market buy order for 0.001 BTC
ShowMessage(oMEXC.REST_API.NewOrder('BTCUSDT', 'BUY', 'MARKET', '', 0.001));
end;
Ejemplo de mercado de Futuros
Este ejemplo se conecta al WebSocket de Futuros de MEXC, se suscribe a un ticker de futuros y consulta los contratos disponibles vía REST.
var
oClientFut: TsgcWebSocketClient;
oMEXCFut: TsgcWSAPI_MEXC_Futures;
begin
// Create the WebSocket client for futures
oClientFut := TsgcWebSocketClient.Create(nil);
// Create the MEXC Futures API component
oMEXCFut := TsgcWSAPI_MEXC_Futures.Create(nil);
oMEXCFut.Client := oClientFut;
// Configure API credentials
oMEXCFut.MEXCFuturesAPI.ApiKey := 'your_api_key';
oMEXCFut.MEXCFuturesAPI.ApiSecret := 'your_api_secret';
// Connect to the WebSocket
oClientFut.Active := True;
// WebSocket: Subscribe to futures ticker for BTC_USDT
oMEXCFut.SubscribeTicker('BTC_USDT');
// REST: Get all available futures contracts
ShowMessage(oMEXCFut.REST_API.GetContracts);
end;
Nota: Spot y Futuros utilizan conexiones WebSocket y componentes API independientes. Necesitas una instancia distinta de TsgcWebSocketClient para cada uno.
Referencia de configuración
Configuración Spot
| Propiedad | Tipo | Descripción |
|---|---|---|
MEXCAPI.ApiKey |
String | Tu API key de MEXC para las peticiones spot autenticadas. |
MEXCAPI.ApiSecret |
String | Tu API secret de MEXC para firmar las peticiones. |
MEXCUserDataStreams.UserStream |
Boolean | Establécelo a True para activar el user data stream privado con eventos de cuenta, deals y órdenes. |
Configuración de Futuros
| Propiedad | Tipo | Descripción |
|---|---|---|
MEXCFuturesAPI.ApiKey |
String | Tu API key de MEXC para las peticiones autenticadas de futuros. |
MEXCFuturesAPI.ApiSecret |
String | Tu API secret de MEXC para firmar las peticiones de futuros. |
Consejos y notas
Componentes separados para Spot y Futuros
MEXC trata Spot y Futuros como mercados totalmente independientes, con endpoints de API distintos, convenios de nomenclatura de símbolos diferentes (por ejemplo, BTCUSDT para spot frente a BTC_USDT para futuros) y ámbitos de autenticación diferentes. Utiliza siempre el componente adecuado para tu mercado objetivo.
User Data Streams
Para recibir eventos privados de cuenta en el WebSocket Spot (actualizaciones de cuenta, deals, cambios de órdenes), debes establecer MEXCUserDataStreams.UserStream := True antes de activar el cliente. Esto le indica al componente que solicite una listen key y establezca automáticamente el stream privado.
Pruebas de órdenes
Utiliza el método TestNewOrder de la API REST Spot para validar los parámetros de una orden sin llegar a crearla. Es útil para comprobar que tus parámetros de símbolo, side, type y quantity tienen el formato correcto antes de comprometer fondos reales.
Convenios de nomenclatura de símbolos
Presta atención a los distintos formatos de símbolo en cada mercado. Spot utiliza pares concatenados como BTCUSDT, mientras que Futuros usa pares separados por guion bajo como BTC_USDT. Usar el formato incorrecto provoca errores de tipo "symbol not found".
Límites de tasa
MEXC aplica límites de tasa tanto en sus APIs REST como WebSocket. Los endpoints REST suelen permitir un número fijo de peticiones por minuto. Si excedes el límite, recibirás un código de estado 429. Implementa una lógica adecuada de backoff o utiliza suscripciones WebSocket para los datos que cambien con frecuencia.
Consejo: Para monitorización de alta frecuencia, utiliza preferentemente suscripciones WebSocket en lugar de hacer polling sobre endpoints REST. Las suscripciones entregan datos en tiempo real con menor latencia y no cuentan dentro de los límites de tasa REST.