I contratti perpetui e a consegna di MEXC espongono una API di streaming dedicata, documentata nella specifica ufficiale Futures WebSocket. Il componente TsgcWSAPI_MEXC_Futures incapsula la connessione, l'handshake di login e la gestione dei topic necessari per consumare dati sui derivati in tempo reale.
MEXC mantiene anche un'interfaccia REST per il trading di derivati. Il componente TsgcHTTP_API_MEXC_Futures contenuto in sgcHTTP_API_MEXC integra i feed WebSocket con helper HTTP che corrispondono uno a uno agli endpoint ufficiali.
L'endpoint WebSocket Futures è wss://contract.mexc.com/edge. I messaggi sono codificati come oggetti JSON e la piattaforma richiede frame ping/pong periodici che vengono gestiti automaticamente dal componente.
Per ricevere notifiche private (dati di ordini e account) è necessario autenticarsi. Impostare MEXCAPI.ApiKey e MEXCAPI.ApiSecret prima di attivare il client WebSocket. Quando le credenziali sono presenti, il componente firma una richiesta di accesso (HMAC SHA256) non appena il socket si connette.
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;
Il seguente gestore registra le conferme di iscrizione e stampa gli snapshot di profondità in arrivo:
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;
Ogni helper racchiude una richiesta sub/unsub come descritto dall'API ufficiale. Usare il metodo UnSubscribe* corrispondente per annullare lo stream.
| Metodo | Parametri | Descrizione |
| SubscribeDeal | Symbol | Operazioni eseguite sul contratto (canale: deal). |
| SubscribeTickers | – | Statistiche globali del ticker per tutti i contratti. |
| SubscribeTicker | Symbol | Riepilogo ticker per un singolo strumento. |
| SubscribeDepth | Symbol, Compress | Aggiornamenti incrementali del libro degli ordini |
| SubscribeDepthFull | Symbol, Level | Snapshot di profondità completa con numero di livelli configurabile (predefinito 20). |
| SubscribeKline | Symbol, Interval | Dati candlestick per i timeframe supportati (Min1, Min5, Min15, Min30, Min60, Hour4, Hour12, Day1, Week1, Month1). |
| SubscribeFundingRate | Symbol | Ultimi annunci sul tasso di finanziamento. |
| SubscribeIndexPrice | Symbol | Flusso del prezzo dell'indice sottostante. |
| SubscribeFairPrice | Symbol | Aggiornamenti del prezzo Mark (equo) inviati dall'exchange. |
Quando il server riconosce una richiesta, viene attivato l'evento OnMEXCSubscribed con il nome del canale (ad esempio rs.sub.depth.BTC_USDT). Gli errori vengono inoltrati tramite OnMEXCError, incluso il messaggio del server per la risoluzione dei problemi.
I canali privati richiedono una chiave API valida. Il componente esegue automaticamente l'autenticazione quando vengono fornite le credenziali.
| Metodo | Descrizione |
| SubscribePersonalOrder | Aggiornamenti personali sugli ordini. |
| SubscribePersonalOrderDeal | Aggiornamenti delle operazioni (fill) degli ordini personali. |
| SubscribePersonalPosition | Aggiornamenti della posizione personale. |
| SubscribePersonalPlanOrder | Aggiornamenti degli ordini del piano personale (trigger). |
| SubscribePersonalStopOrder | Aggiornamenti degli ordini stop personali. |
| SubscribePersonalStopPlanOrder | Aggiornamenti degli ordini stop personali. |
| SubscribePersonalRiskLimit | Aggiornamenti del limite di rischio personale. |
| SubscribePersonalADLLevel | Aggiornamenti del livello ADL (auto-deleveraging) personale. |
| SubscribePersonalAsset | Aggiornamenti degli asset personali. |
Metodi REST disponibili pubblicamente.
| Metodo | Descrizione |
| GetPing | Verifica la raggiungibilità dell'API tramite /api/v1/ping. |
| GetServerTime | Restituisce il timestamp del server da /api/v1/time. |
| GetContracts | Fornisce l'elenco dei contratti disponibili (/api/v1/contract/detail). |
| GetDepth | Scarica la profondità del book degli ordini da /api/v1/contract/depth; utilizzare il parametro opzionale limit (predefinito 50) per selezionare il numero di livelli. |
| GetDeals | Recupera le transazioni recenti tramite /api/v1/contract/deals con un limite facoltativo (predefinito 100). |
| GetKlines | Restituisce dati candlestick tramite /api/v1/contract/kline con filtri facoltativi startTime, endTime e limit (default 200). |
| GetIndexPrice | Recupera il prezzo dell'indice sottostante per il simbolo richiesto (/api/v1/contract/indexPrice). |
| GetFairPrice | Restituisce il prezzo equo (mark) per un contratto da /api/v1/contract/fairPrice. |
| GetFundingRate | Riporta l'ultimo tasso di finanziamento per un simbolo utilizzando /api/v1/contract/fundingRate. |
| GetAllTickers | Ottieni tutti i ticker dei contratti futures con riepiloghi dei prezzi in tempo reale. |
| GetFundingRateHistory | Recupera i record storici del tasso di finanziamento per un contratto. |
| GetFairPriceKline | Recupera i dati kline/candlestick del prezzo equo (mark price) per un contratto. |
| GetIndexPriceKline | Recupera i dati kline/candlestick del prezzo indice per un contratto. |
Gli endpoint derivati privati richiedono credenziali API. Il componente firma automaticamente ogni richiesta con il timestamp e il recvWindow.
| Metodo | Descrizione |
| GetAccountAssets | Restituisce i saldi del margine da /api/v1/private/account/assets. |
| GetPositionList | Elenca le posizioni correnti tramite /api/v1/private/position/list, opzionalmente filtrate per simbolo. |
| SetPositionLeverage | Aggiorna la leva per un simbolo e, se fornita, la modalità di margine. |
| PlaceOrder | Inserisce un ordine futures su /api/v1/private/order fornendo symbol, side, positionSide, type e quantity più i parametri opzionali price, clientOrderId e altri parametri aggiuntivi. |
| CancelOrder | Annulla un ordine specifico utilizzando /api/v1/private/order/cancel tramite orderId o clientOrderId. |
| CancelAllOrders | Annulla tutti gli ordini aperti per un symbol tramite /api/v1/private/order/cancel-all. |
| GetOpenOrders | Elenca gli ordini aperti correnti tramite /api/v1/private/order/list/open con un filtro symbol opzionale. |
| GetOrderHistory | Recupera la cronologia degli ordini (/api/v1/private/order/list/history) con parametri facoltativi di symbol, intervallo temporale e limit. |
| GetFundingHistory | Restituisce i pagamenti di funding passati da /api/v1/private/account/funding con filtri opzionali startTime, endTime e limit. |
| GetOpenPositions | Ottieni tutte le posizioni attualmente aperte. |
| ChangeMargin | Modifica l'importo del margine per una posizione. |
| GetPositionMode | Ottenere la modalità di posizione corrente (modalità unidirezionale o hedge). |
| ChangePositionMode | Cambia la modalità di posizione tra modalità unidirezionale e modalità hedge. |
| PlaceBatchOrder | Invia più ordini futures in un'unica richiesta batch. |
| GetOrderDetail | Ottiene informazioni dettagliate per un ordine specifico. |
| GetOrderDealDetails | Ottieni i dettagli di esecuzione/operazione per un ordine specifico. |
| PlaceTriggerOrder | Inserire un ordine trigger (piano) che viene eseguito quando le condizioni sono soddisfatte. |
| CancelTriggerOrder | Annulla uno specifico ordine trigger. |
| CancelAllTriggerOrders | Annulla tutti gli ordini trigger aperti. |
| GetTriggerOrders | Ottieni l'elenco degli ordini trigger (plan). |
| GetStopOrders | Ottieni l'elenco degli ordini stop. |
| CancelStopOrder | Annullare uno specifico ordine stop. |
| CancelAllStopOrders | Annulla tutti gli ordini stop aperti. |