MEXC expone una API de streaming dedicada para contratos perpetuos y de entrega, documentada en la especificación oficial de Futures WebSocket. El componente TsgcWSAPI_MEXC_Futures encapsula la conexión, el protocolo de inicio de sesión y la gestión de temas necesarios para consumir datos de derivados en tiempo real.
MEXC también mantiene una interfaz REST para el trading de derivados. El componente TsgcHTTP_API_MEXC_Futures incluido en sgcHTTP_API_MEXC complementa los feeds WebSocket con ayudantes HTTP que se corresponden uno a uno con los endpoints oficiales.
El endpoint WebSocket de Futuros es wss://contract.mexc.com/edge. Los mensajes se codifican como objetos JSON y el exchange requiere tramas periódicas de ping/pong que el componente gestiona automáticamente.
Para recibir notificaciones privadas (datos de órdenes y cuenta) debe autenticarse. Establezca MEXCAPI.ApiKey y MEXCAPI.ApiSecret antes de activar el cliente WebSocket. Cuando las credenciales están presentes, el componente firma una solicitud de inicio de sesión (HMAC SHA256) en cuanto se conecta el socket.
var
WSClient: TsgcWebSocketClient;
Futures: TsgcWSAPI_MEXC_Futures;
begin
WSClient := TsgcWebSocketClient.Create(nil);
Futures := TsgcWSAPI_MEXC_Futures.Create(nil);
Futures.Client := WSClient;
Futures.MEXCAPI.ApiKey := 'YOUR_KEY';
Futures.MEXCAPI.ApiSecret := 'YOUR_SECRET';
if WSClient.Connect then
Futures.SubscribeDepth('BTC_USDT', True);
end;
El siguiente manejador registra las confirmaciones de suscripción e imprime las instantáneas de profundidad entrantes:
procedure TMainForm.MEXCSubscribed(Sender: TObject; const aChannel, aRaw: string);
begin
Memo1.Lines.Add('Subscribed to ' + aChannel);
end;
procedure TMainForm.MEXCMessage(Sender: TObject; const aChannel, aRaw: string);
begin
if SameText(aChannel, 'push.depth') then
Memo1.Lines.Add(aRaw);
end;
Cada auxiliar encapsula una solicitud sub/unsub tal como describe la API oficial. Utilice el método UnSubscribe* correspondiente para cancelar el flujo.
| Método | Parámetros | Descripción |
| SubscribeDeal | Symbol | Operaciones ejecutadas en el contrato (canal: deal). |
| SubscribeTickers | – | Estadísticas globales del ticker para todos los contratos. |
| SubscribeTicker | Symbol | Resumen del ticker para un único instrumento. |
| SubscribeDepth | Symbol, Compress | Actualizaciones incrementales del libro de órdenes |
| SubscribeDepthFull | Symbol, Level | Instantáneas de profundidad completa con número de niveles configurable (predeterminado 20). |
| SubscribeKline | Symbol, Interval | Datos de velas japonesas para marcos temporales admitidos (Min1, Min5, Min15, Min30, Min60, Hour4, Hour12, Day1, Week1, Month1). |
| SubscribeFundingRate | Symbol | Últimos anuncios de tasas de financiación. |
| SubscribeIndexPrice | Symbol | Flujo del precio del índice subyacente. |
| SubscribeFairPrice | Symbol | Actualizaciones del precio mark (justo) enviadas por el exchange. |
Cuando el servidor confirma una solicitud, el evento OnMEXCSubscribed se activa con el nombre del canal (por ejemplo, rs.sub.depth.BTC_USDT). Los errores se reenvían a través de OnMEXCError, incluido el mensaje del servidor para facilitar la resolución de problemas.
Los canales privados requieren una clave API válida. El componente se autentica automáticamente cuando se proporcionan las credenciales.
| Método | Descripción |
| SubscribePersonalOrder | Actualizaciones de órdenes personales. |
| SubscribePersonalOrderDeal | Actualizaciones de operaciones personales (fills). |
| SubscribePersonalPosition | Actualizaciones de posición personal. |
| SubscribePersonalPlanOrder | Actualizaciones de órdenes del plan personal (desencadenante). |
| SubscribePersonalStopOrder | Actualizaciones personales de órdenes stop. |
| SubscribePersonalStopPlanOrder | Actualizaciones de órdenes de plan de stop personal. |
| SubscribePersonalRiskLimit | Actualizaciones del límite de riesgo personal. |
| SubscribePersonalADLLevel | Actualizaciones del nivel ADL (auto-desapalancamiento) personal. |
| SubscribePersonalAsset | Actualizaciones de activos personales. |
Métodos REST disponibles públicamente.
| Método | Descripción |
| GetPing | Comprueba la accesibilidad de la API mediante /api/v1/ping. |
| GetServerTime | Devuelve la marca de tiempo del servidor desde /api/v1/time. |
| GetContracts | Proporciona la lista de contratos disponibles (/api/v1/contract/detail). |
| GetDepth | Descarga la profundidad del libro de órdenes desde /api/v1/contract/depth; use el parámetro opcional limit (predeterminado 50) para seleccionar el número de niveles. |
| GetDeals | Recupera las operaciones recientes usando /api/v1/contract/deals con un límite opcional (predeterminado 100). |
| GetKlines | Devuelve datos de velas mediante /api/v1/contract/kline con filtros opcionales de startTime, endTime y limit (valor predeterminado 200). |
| GetIndexPrice | Obtiene el precio del índice subyacente para el símbolo solicitado (/api/v1/contract/indexPrice). |
| GetFairPrice | Devuelve el precio justo (mark) de un contrato desde /api/v1/contract/fairPrice. |
| GetFundingRate | Informa la tasa de financiamiento más reciente para un símbolo usando /api/v1/contract/fundingRate. |
| GetAllTickers | Obtiene todos los tickers de contratos de futuros con resúmenes de precios en tiempo real. |
| GetFundingRateHistory | Obtenga registros históricos de la tasa de financiación para un contrato. |
| GetFairPriceKline | Obtiene datos de velas/kline del precio justo (mark) para un contrato. |
| GetIndexPriceKline | Obtiene datos kline/velas del precio índice para un contrato. |
Los endpoints privados de derivados requieren credenciales de API. El componente firma cada solicitud con la marca de tiempo y recvWindow de forma automática.
| Método | Descripción |
| GetAccountAssets | Devuelve los saldos de margen desde /api/v1/private/account/assets. |
| GetPositionList | Lista las posiciones actuales a través de /api/v1/private/position/list, opcionalmente filtradas por símbolo. |
| SetPositionLeverage | Actualiza el apalancamiento de un símbolo y, si se suministra, el modo de margen. |
| PlaceOrder | Coloca una orden de futuros en /api/v1/private/order proporcionando symbol, side, positionSide, type y quantity, además de los parámetros opcionales price, clientOrderId y parámetros adicionales. |
| CancelOrder | Cancela una orden específica usando /api/v1/private/order/cancel por orderId o clientOrderId. |
| CancelAllOrders | Cancela todas las órdenes abiertas para un símbolo mediante /api/v1/private/order/cancel-all. |
| GetOpenOrders | Lista las órdenes abiertas actuales a través de /api/v1/private/order/list/open con un filtro de símbolo opcional. |
| GetOrderHistory | Recupera el historial de órdenes (/api/v1/private/order/list/history) con parámetros opcionales de símbolo, rango de tiempo y límite. |
| GetFundingHistory | Devuelve los pagos de financiación pasados desde /api/v1/private/account/funding con los filtros opcionales startTime, endTime y limit. |
| GetOpenPositions | Obtener todas las posiciones abiertas actualmente. |
| ChangeMargin | Cambia el importe del margen para una posición. |
| GetPositionMode | Obtener el modo de posición actual (modo unidireccional o de cobertura). |
| ChangePositionMode | Cambie el modo de posición entre modo unidireccional y modo cobertura. |
| PlaceBatchOrder | Coloque múltiples órdenes de futuros en una sola solicitud por lotes. |
| GetOrderDetail | Obtener información detallada de una orden específica. |
| GetOrderDealDetails | Obtener los detalles de ejecución/acuerdo para una orden específica. |
| PlaceTriggerOrder | Coloque una orden de activación (plan) que se ejecute cuando se cumplan las condiciones. |
| CancelTriggerOrder | Cancelar una orden de activación específica. |
| CancelAllTriggerOrders | Cancela todas las órdenes trigger abiertas. |
| GetTriggerOrders | Obtener la lista de órdenes de activación (plan). |
| GetStopOrders | Obtiene la lista de órdenes de stop. |
| CancelStopOrder | Cancelar una orden de stop específica. |
| CancelAllStopOrders | Cancelar todas las órdenes stop abiertas. |