API MEXC

MEXC es un exchange de criptomonedas global que expone datos de mercado y de cuenta en tiempo real mediante conexiones WebSocket seguras.

 

La API Spot WebSocket sigue las especificaciones publicadas en la documentación de Market Streams y User Data Streams. Los canales de mercado se entregan como tramas Protocol Buffers mientras que los flujos privados usan JSON. El componente TsgcWSAPI_MEXC gestiona el ciclo de vida de la conexión, la autenticación y el mantenimiento de la clave de escucha para que las aplicaciones puedan centrarse en procesar los datos enviados.

 

Además de la transmisión por WebSockets, el conjunto de herramientas también expone la API HTTP Spot completa. El componente TsgcHTTP_API_MEXC_Spot (unidad sgcHTTP_API_MEXC) encapsula cada endpoint REST oficial para que las aplicaciones puedan consultar datos de mercado o realizar operaciones con solicitudes firmadas.

 

Configuración del componente

El endpoint base de WebSocket es wss://wbs-api.mexc.com/ws. Cuando MEXCUserDataStreams.UserStream está habilitado y se proporciona una clave API válida, el componente solicita automáticamente una clave de escucha y la añade a la URL de conexión.

 

Coloque un componente TsgcWebSocketClient y un componente TsgcWSAPI_MEXC en el formulario (o créelos en código), asigne la instancia del cliente al componente API y active el cliente para iniciar la sesión.

 

var
  WSClient: TsgcWebSocketClient;
  MEXC: TsgcWSAPI_MEXC;
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  MEXC := TsgcWSAPI_MEXC.Create(nil);
  MEXC.Client := WSClient;
  MEXC.MEXCAPI.ApiKey := 'YOUR_KEY';
  MEXC.MEXCAPI.ApiSecret := 'YOUR_SECRET';
  MEXC.MEXCUserDataStreams.UserStream := True;
  if WSClient.Connect then
    MEXC.SubscribeTrade('BTCUSDT');
end;

 

Propiedades

 

Eventos

 

El siguiente ejemplo muestra cómo decodificar un frame de operación:

 

procedure TMainForm.MEXCMarketStream(Sender: TObject;
  const aMessage: TsgcMEXCSpotProtoMessage; const aStream: TMemoryStream);
var
  Deal: TsgcMEXCDealItem;
begin
  if aMessage.MessageType = sgcmxspmtTrade then
  begin
    Deal := TsgcMEXCTradeStream(aMessage.Trade).PublicDeals.DealsList[0];
    Memo1.Lines.Add(Format('Trade %s x %s', [Deal.Quantity, Deal.Price]));
  end;
end;

 

Métodos de suscripción WebSocket

El componente expone asistentes para cada canal Spot público. Invoque el método Subscribe* para comenzar a recibir datos en tiempo real y el correspondiente UnSubscribe* para detenerlo.

 

Canales públicos

Método Parámetros Descripción
SubscribeTrade Symbol, Interval (ms) Ejecuciones de operaciones agregadas entregadas como Protobuf publicdeals.
SubscribeKline Symbol, Interval Actualizaciones de velas para intervalos configurables (de 1 minuto a 1 mes).
SubscribeDiffDepth Symbol, Interval (ms) Deltas incrementales del libro de órdenes para el mantenimiento del libro local.
SubscribeBookDepth Symbol, Levels Instantáneas periódicas del libro de órdenes limitadas con la profundidad solicitada (predeterminado: 5).
SubscribeBookTicker Symbol, Interval (ms) Actualizaciones del mejor precio de compra/venta para un único par de trading.
SubscribeBookTickerBatch Indicador UTC Actualizaciones de ticker de libro agregado para múltiples símbolos.
SubscribeMiniTickers Indicador UTC Estadísticas del mini ticker de 24h en ventana deslizante para todos los instrumentos activos.
SubscribeMiniTicker Símbolo, indicador UTC Mini ticker para un símbolo individual.

 

Canales privados

Los temas privados requieren una clave API válida. El componente se suscribe usando la clave de escucha activa y la renueva periódicamente.

 

Método Descripción
SubscribeAccountUpdate Cambios en el saldo de la cuenta y en las posiciones.
SubscribeAccountDeals Informes de ejecución de órdenes completadas.
SubscribeAccountOrders Actualizaciones del ciclo de vida de la orden (nueva, cancelada, rechazada, etc.).

 

Utilice los métodos UnSubscribe* correspondientes para terminar un flujo. El componente envía automáticamente comandos PING y valida el PONG devuelto para supervisar la conectividad.

 

 

Endpoints REST públicos

Métodos REST disponibles públicamente.

 

Método Descripción
Ping Comprobación de conectividad que llama a /api/v3/ping y devuelve True cuando el exchange responde con un objeto vacío.
GetServerTime Recupera la marca de tiempo actual del exchange desde /api/v3/time.
GetExchangeInformation Devuelve las reglas de negociación y metadatos de símbolo desde /api/v3/exchangeInfo.
GetOrderBook Descarga instantáneas del libro de órdenes desde /api/v3/depth; establezca el parámetro opcional limit para controlar el número de niveles (predeterminado: 100).
GetTrades Recupera las operaciones públicas recientes desde /api/v3/trades con un limit opcional (predeterminado 100).
GetHistoricalTrades Proporciona datos históricos de operaciones con filtros opcionales de limit y fromId.
GetAggregateTrades Devuelve operaciones comprimidas/agregadas a través de /api/v3/aggTrades con soporte para filtros opcionales de limit, fromId, startTime y endTime.
GetKlines Descarga velas desde /api/v3/klines con soporte para filtros de rango de tiempo y límite.
GetAveragePrice Devuelve el precio promedio ponderado actual desde /api/v3/avgPrice.
Get24hrTicker Recupera las estadísticas del ticker de las últimas 24 horas para uno o todos los símbolos mediante /api/v3/ticker/24hr.
GetPriceTicker Obtiene el precio más reciente usando /api/v3/ticker/price; pase un símbolo vacío para recuperar los precios de todos los pares de negociación.
GetBookTicker Obtiene las mejores cotizaciones de compra/venta desde /api/v3/ticker/bookTicker con soporte para solicitudes de símbolo único o de todo el mercado.

 

Endpoints REST privados

Los endpoints privados requieren claves de API válidas y una cadena de consulta firmada. El componente añade automáticamente la marca de tiempo, recvWindow y la firma HMAC.

 

Método Descripción
GetAccountInformation Devuelve balances y permisos de /api/v3/account.
GetOpenOrders Lista las órdenes abiertas actuales (opcionalmente filtradas por símbolo).
GetAllOrders Recupera órdenes históricas con filtros opcionales de tiempo y límite.
GetOrder Consulta el estado de una orden específica proporcionando orderId u origClientOrderId.
GetMyTrades Lista las ejecuciones de operaciones privadas con los filtros opcionales limit, fromId, startTime y endTime.
NewOrder Coloca una orden en vivo en /api/v3/order (mercado, límite, stop, etc.) con parámetros opcionales timeInForce, quantity, quoteOrderQty, price, newClientOrderId, stopPrice, icebergQty y parámetros adicionales.
TestNewOrder Envía una solicitud de solo validación a /api/v3/order/test que acepta el mismo conjunto de parámetros que NewOrder.
CancelOrder Cancela una orden específica en /api/v3/order usando orderId o origClientOrderId.
CancelAllOrders Cancela en bloque todos los pedidos abiertos para un símbolo a través de /api/v3/openOrders.
GetSubAccounts Lista las subcuentas gestionadas (/api/v3/sub-account/list).
GetSubAccountAssets Devuelve los saldos de una subcuenta específica.
TransferSubAccount Transfiere activos entre subcuentas a través de /api/v3/sub-account/transfer; proporcione el importe y, opcionalmente, el tipo de transferencia.
GetDepositAddress Solicita direcciones de depósito con un filtro opcional de red.
GetDepositHistory Obtiene registros de depósitos con filtros opcionales de coin, status, startTime y endTime.
GetWithdrawHistory Devuelve el historial de retiros filtrado por coin, status y rango de tiempo opcional.
Retirar Envía una solicitud de retiro a través de /api/v3/capital/withdraw/apply incluyendo los campos obligatorios coin, address y amount, más los opcionales network, addressTag, withdrawOrderId y parámetros adicionales.
BatchOrders Envíe órdenes en lote para múltiples símbolos en una sola solicitud.
GetTradeFee Obtiene la tasa de comisión de operaciones para un símbolo específico.
GetDepositHistory Obtiene registros de depósitos con filtros opcionales de coin, status, startTime y endTime.
CancelWithdraw Cancelar una solicitud de retirada pendiente por ID de retirada.
CreateInternalTransfer Transferir activos entre cuentas de forma interna.
GetTransferHistory Obtener el historial de transferencias internas entre cuentas.