MEXC è un exchange di criptovalute globale che supporta spot trading e contratti futures perpetui su centinaia di coppie di token. Gli sviluppatori Delphi possono integrarsi con MEXC tramite due componenti dedicati: TsgcWSAPI_MEXC per il mercato Spot e TsgcWSAPI_MEXC_Futures per il mercato Futures. Ogni componente fornisce sia sottoscrizioni WebSocket per dati in tempo reale sia un'interfaccia REST per query on-demand e gestione degli ordini. Questo articolo descrive ogni metodo disponibile su entrambi i mercati.
Indice
- Panoramica dell'architettura
- API WebSocket Spot
- API REST Spot
- API WebSocket Futures
- API REST Futures
- Per iniziare — esempi di codice
- Riferimento configurazione
- Suggerimenti e note
Panoramica dell'architettura
MEXC fornisce superfici API separate per i suoi mercati Spot e Futures. Nella libreria sgcWebSockets, questo si riflette in due componenti distinti:
TsgcWSAPI_MEXC— Gestisce il mercato Spot. Fornisce sottoscrizioni WebSocket per operazioni in tempo reale, kline, depth e ticker, oltre a stream di eventi privati dell'account. L'interfaccia REST e' accessibile tramiteREST_API(di tipoTsgcHTTP_API_MEXC_Spot).TsgcWSAPI_MEXC_Futures— Gestisce il mercato Futures. Fornisce sottoscrizioni WebSocket per dati specifici dei futures come deal, funding rate, prezzi dell'indice e fair price. L'interfaccia REST e' accessibile tramiteREST_API(di tipoTsgcHTTP_API_MEXC_Futures).
Entrambi i componenti seguono lo stesso pattern: assegna un TsgcWebSocketClient, configura le credenziali API, attiva il client per le sottoscrizioni WebSocket e accedi a REST_API per le chiamate HTTP sincrone.
API WebSocket Spot
L'API WebSocket Spot fornisce dati di mercato in tempo reale tramite canali pubblici e aggiornamenti dell'account tramite canali privati. Ogni sottoscrizione ha un metodo di unsubscribe corrispondente.
Canali pubblici
| Sottoscrivi | Annulla sottoscrizione | Descrizione |
|---|---|---|
SubscribeTrade |
UnSubscribeTrade |
Esecuzioni di operazioni in tempo reale per un simbolo. |
SubscribeKline |
UnSubscribeKline |
Aggiornamenti in tempo reale di candle/kline per un simbolo e un intervallo. |
SubscribeDiffDepth |
UnSubscribeDiffDepth |
Aggiornamenti incrementali della profondita' del libro degli ordini (diff stream). |
SubscribeBookDepth |
UnSubscribeBookDepth |
Snapshot completi della profondita' del libro degli ordini a un dato livello. |
SubscribeBookTicker |
UnSubscribeBookTicker |
Miglior prezzo bid/ask e relativa quantita' per un simbolo specifico. |
SubscribeBookTickerBatch |
UnSubscribeBookTickerBatch |
Migliori prezzi bid/ask per tutti i simboli in un singolo stream. |
SubscribeMiniTickers |
UnSubscribeMiniTickers |
Dati ticker condensati (prezzo, volume) per tutti i simboli. |
SubscribeMiniTicker |
UnSubscribeMiniTicker |
Dati ticker condensati per un simbolo specifico. |
Canali privati
I canali privati richiedono autenticazione e forniscono aggiornamenti in tempo reale sull'attività del tuo account. Abilita lo user data stream tramite la proprietà MEXCUserDataStreams.UserStream.
| Sottoscrivi | Annulla sottoscrizione | Descrizione |
|---|---|---|
SubscribeAccountUpdate |
UnSubscribeAccountUpdate |
Aggiornamenti di saldo e posizione dell'account quando si verificano cambiamenti. |
SubscribeAccountDeals |
UnSubscribeAccountDeals |
Notifiche in tempo reale quando i tuoi ordini vengono eseguiti (esecuzioni di operazioni). |
SubscribeAccountOrdini |
UnSubscribeAccountOrdini |
Cambi di stato dell'ordine (piazzato, parzialmente eseguito, eseguito, annullato). |
API REST Spot
L'API REST Spot è accessibile tramite oMEXC.REST_API (di tipo TsgcHTTP_API_MEXC_Spot). Gli endpoint pubblici non richiedono autenticazione; quelli privati richiedono una API key e un secret validi.
Endpoint pubblici
| Metodo | Descrizione |
|---|---|
Ping |
Verifica la connettivita' al server API MEXC. |
GetServerTime |
Restituisce l'ora corrente del server MEXC. |
GetDefaultSymbols |
Restituisce l'elenco dei simboli di trading di default. |
GetExchangeInformation |
Restituisce le regole di trading dell'exchange e le informazioni sui simboli (filtri, precisione, stato). |
GetOrderBook |
Restituisce il libro degli ordini (bid e ask) per un simbolo a una data profondita'. |
GetTrades |
Restituisce le operazioni pubbliche recenti per un simbolo. |
GetAggregateTrades |
Restituisce record di operazioni aggregati/compressi. |
GetKlines |
Restituisce dati storici di kline/candle per un simbolo e un intervallo. |
GetAveragePrice |
Restituisce il prezzo medio corrente per un simbolo. |
Get24hrTicker |
Restituisce le statistiche di variazione prezzo su finestra mobile di 24 ore. |
GetPriceTicker |
Restituisce l'ultimo prezzo per uno o tutti i simboli. |
GetBookTicker |
Restituisce il miglior prezzo bid/ask e la relativa quantita' dal libro degli ordini. |
Endpoint privati
| Metodo | Descrizione |
|---|---|
NewOrder |
Piazza un nuovo ordine spot (market, limit o altri tipi supportati). |
TestNewOrder |
Convalida un nuovo ordine senza piazzarlo effettivamente (dry run). |
CancelOrder |
Annulla uno specifico ordine aperto tramite order ID. |
CancelAllOrdini |
Annulla tutti gli ordini aperti per un simbolo. |
GetOrder |
Restituisce lo stato e i dettagli di un ordine specifico. |
GetOpenOrdini |
Restituisce tutti gli ordini attualmente aperti (non eseguiti). |
GetAllOrdini |
Restituisce tutti gli ordini (aperti, eseguiti, annullati) entro un intervallo di tempo. |
GetAccountInformation |
Restituisce i saldi dell'account e i permessi. |
GetMyTrades |
Restituisce lo storico delle operazioni per un simbolo. |
GetSubAccounts |
Restituisce un elenco di sub-account sotto il master account. |
GetDepositAddress |
Restituisce l'indirizzo di deposito per una specifica coin e network. |
GetWithdrawHistory |
Restituisce i record dello storico dei prelievi. |
Withdraw |
Avvia un prelievo verso un indirizzo esterno. |
GetCapitalConfig |
Restituisce la configurazione del capitale (network supportati, importi min/max di prelievo, commissioni). |
API WebSocket Futures
L'API WebSocket Futures fornisce dati in tempo reale specifici per i contratti futures perpetui. Tutti i canali sono pubblici e non richiedono autenticazione. Ogni sottoscrizione ha un metodo di unsubscribe corrispondente.
| Sottoscrivi | Annulla sottoscrizione | Descrizione |
|---|---|---|
SubscribeDeal |
UnSubscribeDeal |
Esecuzioni di operazioni/deal futures in tempo reale. |
SubscribeTickers |
UnSubscribeTickers |
Dati ticker per tutti i contratti futures. |
SubscribeTicker |
UnSubscribeTicker |
Dati ticker per uno specifico contratto futures. |
SubscribeDepth |
UnSubscribeDepth |
Aggiornamenti incrementali della profondita' del libro degli ordini per i futures. |
SubscribeDepthFull |
UnSubscribeDepthFull |
Snapshot completi della profondita' del libro degli ordini per i futures. |
SubscribeKline |
UnSubscribeKline |
Aggiornamenti in tempo reale di candle/kline per contratti futures. |
SubscribeFundingRate |
UnSubscribeFundingRate |
Aggiornamenti in tempo reale del funding rate per contratti perpetual. |
SubscribeIndexPrice |
UnSubscribeIndexPrice |
Aggiornamenti in tempo reale del prezzo dell'indice. |
SubscribeFairPrice |
UnSubscribeFairPrice |
Aggiornamenti in tempo reale del fair/mark price utilizzati per i calcoli di liquidazione. |
API REST Futures
L'API REST Futures è accessibile tramite oMEXCFut.REST_API (di tipo TsgcHTTP_API_MEXC_Futures). Copre dati di mercato, gestione dell'account, controllo delle posizioni e operazioni sugli ordini.
Endpoint pubblici
| Metodo | Descrizione |
|---|---|
GetPing |
Verifica la connettivita' al server API MEXC Futures. |
GetServerTime |
Restituisce l'ora corrente del server futures. |
GetContracts |
Restituisce un elenco di tutti i contratti futures disponibili e relative specifiche. |
GetDepth |
Restituisce la profondita' del libro degli ordini per un contratto futures. |
GetDeals |
Restituisce lo storico recente delle operazioni/deal pubblici per un contratto futures. |
GetKlines |
Restituisce dati storici di kline/candle per un contratto futures. |
GetIndexPrice |
Restituisce il prezzo dell'indice corrente per un contratto. |
GetFairPrice |
Restituisce il fair/mark price corrente per un contratto. |
GetFundingRate |
Restituisce il funding rate corrente e previsto per un contratto perpetual. |
Endpoint privati
| Metodo | Descrizione |
|---|---|
GetAccountAssets |
Restituisce i saldi degli asset dell'account futures e le informazioni di margine. |
GetPositionList |
Restituisce tutte le posizioni futures aperte con size, prezzo di ingresso e PnL. |
SetPositionLeverage |
Imposta il moltiplicatore di leva per uno specifico contratto futures. |
PlaceOrder |
Piazza un nuovo ordine futures (market, limit o altri tipi supportati). |
CancelOrder |
Annulla uno specifico ordine futures aperto. |
CancelAllOrdini |
Annulla tutti gli ordini futures aperti per un contratto. |
GetOpenOrdini |
Restituisce tutti gli ordini futures attualmente aperti. |
GetOrderHistory |
Restituisce lo storico degli ordini futures (eseguiti, annullati, ecc.). |
GetFundingHistory |
Restituisce lo storico dei pagamenti delle funding fee. |
Per iniziare — esempi di codice
Esempio mercato Spot
L'esempio seguente si connette al WebSocket MEXC Spot, si iscrive ai trade in tempo reale, interroga le informazioni di exchange via REST e piazza un ordine market di acquisto.
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;
Esempio mercato Futures
Questo esempio si connette al WebSocket MEXC Futures, si iscrive a un ticker futures e interroga i contratti disponibili via 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 e Futures utilizzano connessioni WebSocket separate e componenti API separati. Hai bisogno di un'istanza distinta di TsgcWebSocketClient per ciascuno.
Riferimento configurazione
Configurazione Spot
| Proprietà | Tipo | Descrizione |
|---|---|---|
MEXCAPI.ApiKey |
Stringa | La tua API key MEXC per le richieste spot autenticate. |
MEXCAPI.ApiSecret |
Stringa | Il tuo API secret MEXC per firmare le richieste. |
MEXCUserDataStreams.UserStream |
Booleano | Imposta su True per abilitare lo user data stream privato per aggiornamenti di account, deal ed eventi sugli ordini. |
Configurazione Futures
| Proprietà | Tipo | Descrizione |
|---|---|---|
MEXCFuturesAPI.ApiKey |
Stringa | La tua API key MEXC per le richieste futures autenticate. |
MEXCFuturesAPI.ApiSecret |
Stringa | Il tuo API secret MEXC per firmare le richieste futures. |
Suggerimenti e note
Componentei separati per Spot e Futures
MEXC tratta Spot e Futures come mercati completamente separati con endpoint API diversi, convenzioni di naming dei simboli diverse (ad esempio BTCUSDT per spot vs BTC_USDT per futures) e scope di autenticazione diversi. Usa sempre il componente corretto per il mercato target.
User Data Stream
Per ricevere eventi privati dell'account sul WebSocket Spot (aggiornamenti di account, deal, modifiche agli ordini) devi impostare MEXCUserDataStreams.UserStream := True prima di attivare il client. Questo indica al componente di richiedere una listen key e stabilire automaticamente lo stream privato.
Test degli ordini
Usa il metodo TestNewOrder sulla REST API Spot per convalidare i parametri di un ordine senza piazzarlo effettivamente. E' utile per verificare che i parametri di simbolo, side, type e quantita' siano formattati correttamente prima di impegnare fondi reali.
Convenzioni di naming dei simboli
Fai attenzione ai diversi formati dei simboli tra i due mercati. Spot usa coppie concatenate come BTCUSDT, mentre Futures usa coppie separate da underscore come BTC_USDT. Usare il formato sbagliato causa errori "symbol not found".
Rate limit
MEXC applica rate limit sia su REST sia su WebSocket. Gli endpoint REST consentono in genere un numero fisso di richieste al minuto. Se superi il limite ricevi uno status code 429. Implementa logica di backoff appropriata o usa sottoscrizioni WebSocket per dati che cambiano frequentemente.
Suggerimento: Per monitoraggio ad alta frequenza preferisci le sottoscrizioni WebSocket al polling degli endpoint REST. Le sottoscrizioni recapitano i dati in tempo reale con latenza inferiore e non incidono sui rate limit REST.