API MEXC

MEXC è un exchange di criptovalute globale che espone dati di mercato e di account in streaming tramite connessioni WebSocket sicure.

 

L'API Spot WebSocket segue le specifiche pubblicate nella documentazione Market Streams e User Data Streams. I canali di mercato vengono consegnati come frame Protocol Buffers mentre i flussi privati usano JSON. Il componente TsgcWSAPI_MEXC gestisce il ciclo di vita della connessione, l'autenticazione e la manutenzione della chiave di ascolto in modo che le applicazioni possano concentrarsi sull'elaborazione dei dati inviati.

 

Oltre allo streaming tramite WebSocket, il toolkit espone anche l'API HTTP Spot completa. Il componente TsgcHTTP_API_MEXC_Spot (unità sgcHTTP_API_MEXC) incapsula ogni endpoint REST ufficiale in modo che le applicazioni possano interrogare i dati di mercato o operare con richieste firmate.

 

Configurazione del componente

L'endpoint WebSocket di base è wss://wbs-api.mexc.com/ws. Quando MEXCUserDataStreams.UserStream è abilitato e viene fornita una chiave API valida, il componente richiede automaticamente una chiave di ascolto e la aggiunge all'URL di connessione.

 

Inserire un componente TsgcWebSocketClient e un componente TsgcWSAPI_MEXC nel form (o crearli nel codice), assegnare l'istanza client al componente API e attivare il client per avviare la sessione.

 

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;

 

Proprietà

 

Eventi

 

L'esempio seguente mostra come decodificare un frame di trade:

 

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;

 

Metodi di sottoscrizione WebSocket

Il componente espone helper per ogni canale Spot pubblico. Richiamare il metodo Subscribe* per avviare lo streaming dei dati e il corrispondente UnSubscribe* per interromperlo.

 

Canali pubblici

Metodo Parametri Descrizione
SubscribeTrade Symbol, Interval (ms) Esecuzioni di scambi aggregati distribuite come Protobuf publicdeals.
SubscribeKline Symbol, Interval Aggiornamenti candlestick per intervalli configurabili (da 1 minuto a 1 mese).
SubscribeDiffDepth Symbol, Interval (ms) Delta di profondità incrementale del book ordini per la gestione del book locale.
SubscribeBookDepth Symbol, Levels Istantanee periodiche del libro degli ordini limite con la profondità richiesta (predefinita 5).
SubscribeBookTicker Symbol, Interval (ms) Aggiornamenti migliore offerta/domanda per una singola coppia di trading.
SubscribeBookTickerBatch flag UTC Aggiornamenti aggregati del book ticker per più simboli.
SubscribeMiniTickers flag UTC Statistiche mini ticker rolling delle ultime 24 ore per tutti gli strumenti attivi.
SubscribeMiniTicker Symbol, flag UTC Mini ticker per un singolo simbolo.

 

Canali privati

I topic privati richiedono una chiave API valida. Il componente effettua la sottoscrizione utilizzando la listen key attiva e la rinnova periodicamente.

 

Metodo Descrizione
SubscribeAccountUpdate Variazioni del saldo e della posizione dell'account.
SubscribeAccountDeals Report di esecuzione per gli ordini eseguiti.
SubscribeAccountOrders Aggiornamenti del ciclo di vita degli ordini (nuovo, annullato, rifiutato, ecc.).

 

Utilizzare i metodi UnSubscribe* corrispondenti per terminare uno stream. Il componente invia automaticamente comandi PING e convalida i PONG restituiti per monitorare la connettività.

 

 

Endpoint REST pubblici

Metodi REST disponibili pubblicamente.

 

Metodo Descrizione
Ping Verifica di connettività che chiama /api/v3/ping e restituisce True quando l'exchange risponde con un oggetto vuoto.
GetServerTime Recupera il timestamp corrente dell'exchange da /api/v3/time.
GetExchangeInformation Restituisce le regole di trading e i metadati dei simboli da /api/v3/exchangeInfo.
GetOrderBook Scarica snapshot del libro degli ordini da /api/v3/depth; impostare il parametro opzionale limit per controllare il numero di livelli (predefinito 100).
GetTrades Recupera le transazioni pubbliche recenti da /api/v3/trades con un limit opzionale (predefinito 100).
GetHistoricalTrades Fornisce dati storici sugli scambi con filtri opzionali limit e fromId.
GetAggregateTrades Restituisce operazioni compresse/aggregate tramite /api/v3/aggTrades supportando filtri opzionali per limit, fromId, startTime e endTime.
GetKlines Scarica i candlestick da /api/v3/klines supportando i filtri di intervallo temporale e di limite.
GetAveragePrice Restituisce il prezzo medio ponderato corrente da /api/v3/avgPrice.
Get24hrTicker Recupera le statistiche ticker delle ultime 24 ore per uno o tutti i simboli tramite /api/v3/ticker/24hr.
GetPriceTicker Recupera il prezzo più recente tramite /api/v3/ticker/price; passare un simbolo vuoto per recuperare i prezzi di tutte le coppie di trading.
GetBookTicker Ottiene le migliori quotazioni bid/ask da /api/v3/ticker/bookTicker con supporto per richieste su singolo simbolo o sull'intero exchange.

 

Endpoint REST privati

Gli endpoint privati richiedono chiavi API valide e una stringa di query firmata. Il componente aggiunge automaticamente il timestamp, recvWindow e la firma HMAC.

 

Metodo Descrizione
GetAccountInformation Restituisce saldi e permessi da /api/v3/account.
GetOpenOrders Elenca gli ordini aperti correnti (facoltativamente filtrati per simbolo).
GetAllOrders Recupera gli ordini storici con filtri opzionali di tempo e limite.
GetOrder Interroga lo stato di un ordine specifico fornendo orderId o origClientOrderId.
GetMyTrades Elenca le esecuzioni di scambi private con filtri opzionali limit, fromId, startTime e endTime.
NewOrder Inserisce un ordine live su /api/v3/order (market, limit, stop, ecc.) con parametri opzionali timeInForce, quantity, quoteOrderQty, price, newClientOrderId, stopPrice, icebergQty e parametri aggiuntivi.
TestNewOrder Invia una richiesta di sola validazione a /api/v3/order/test accettando lo stesso insieme di parametri di NewOrder.
CancelOrder Annulla un ordine specifico su /api/v3/order utilizzando orderId o origClientOrderId.
CancelAllOrders Annulla in blocco tutti gli ordini aperti per un simbolo tramite /api/v3/openOrders.
GetSubAccounts Elenca i sotto-account gestiti (/api/v3/sub-account/list).
GetSubAccountAssets Restituisce i saldi di un sotto-account specifico.
TransferSubAccount Trasferisce asset tra sub-account tramite /api/v3/sub-account/transfer; fornire l'importo e opzionalmente il tipo di trasferimento.
GetDepositAddress Richiede gli indirizzi di deposito con un filtro opzionale per network.
GetDepositHistory Recupera i record di deposito con filtri opzionali per coin, status, startTime e endTime.
GetWithdrawHistory Restituisce la cronologia dei prelievi filtrata per coin, status e intervallo di tempo opzionale.
Withdraw Invia una richiesta di prelievo tramite /api/v3/capital/withdraw/apply includendo i parametri obbligatori coin, address e amount oltre ai parametri opzionali network, addressTag, withdrawOrderId e parametri aggiuntivi.
BatchOrders Invia ordini batch per più simboli in una singola richiesta.
GetTradeFee Ottieni la commissione di trading per un simbolo specifico.
GetDepositHistory Recupera i record di deposito con filtri opzionali per coin, status, startTime e endTime.
CancelWithdraw Annulla una richiesta di prelievo in sospeso tramite l'ID del prelievo.
CreateInternalTransfer Trasferisce internamente asset tra account.
GetTransferHistory Ottieni la cronologia dei trasferimenti interni tra account.