MEXC perpetuele en leveringscontracten bieden een speciale streaming-API gedocumenteerd in de officiële Futures WebSocket-specificatie. Het component TsgcWSAPI_MEXC_Futures kapselt de verbinding, de aanmeldings-handshake en het topicbeheer in die nodig zijn om realtime derivatengegevens te gebruiken.
MEXC onderhoudt ook een REST-interface voor derivatenhandel. Het TsgcHTTP_API_MEXC_Futures-component dat is opgenomen in sgcHTTP_API_MEXC vult de WebSocket-feeds aan met HTTP-hulpmiddelen die één-op-één overeenkomen met de officiële endpoints.
Het Futures WebSocket-eindpunt is wss://contract.mexc.com/edge. Berichten worden gecodeerd als JSON-objecten en de exchange vereist periodieke ping/pong-frames, die automatisch door de component worden afgehandeld.
Om privémeldingen (order- en accountgegevens) te ontvangen, moet u zich authenticeren. Stel MEXCAPI.ApiKey en MEXCAPI.ApiSecret in voordat u de WebSocket-client activeert. Wanneer er inloggegevens aanwezig zijn, ondertekent de component een inlogverzoek (HMAC SHA256) zodra de socket verbinding maakt.
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;
De volgende handler registreert abonnementsbevestigingen en drukt inkomende diepte-snapshots af:
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;
Elke helper omhult een sub/unsub-verzoek zoals beschreven door de officiële API. Gebruik de bijbehorende UnSubscribe*-methode om de stream te annuleren.
| Methode | Parameters | Beschrijving |
| SubscribeDeal | Symbol | Uitgevoerde transacties op het contract (kanaal: deal). |
| SubscribeTickers | – | Globaal ticker statistics for alle contracts. |
| SubscribeTicker | Symbol | Ticker-overzicht voor één instrument. |
| SubscribeDepth | Symbool, Comprimeren | Incremental order book updates |
| SubscribeDepthFull | Symbol, Level | Volledige diepte-snapshots met configureerbaar aantal niveaus (standaard 20). |
| SubscribeKline | Symbool, Interval | Candlestick data for supported timeframes (Min1, Min5, Min15, Min30, Min60, Hour4, Hour12, Day1, Week1, Month1). |
| SubscribeFundingRate | Symbol | Meest recente aankondigingen van financieringstarieven. |
| SubscribeIndexPrice | Symbol | Onderliggende indexprijsstream. |
| SubscribeFairPrice | Symbol | Markprijs-updates gepusht door de exchange. |
Wanneer de server een aanvraag bevestigt, wordt de gebeurtenis OnMEXCSubscribed geactiveerd met de kanaalnaam (bijvoorbeeld rs.sub.depth.BTC_USDT). Fouten worden doorgestuurd via OnMEXCError, inclusief het serverfoutbericht voor probleemoplossing.
Privékanalen vereisen een geldige API-sleutel. De component authenticeert automatisch wanneer referenties zijn opgegeven.
| Methode | Beschrijving |
| SubscribePersonalOrder | Persoonlijke orderupdates. |
| SubscribePersonalOrderDeal | Persoonlijke updates van ordertransacties (vullingen). |
| SubscribePersonalPosition | Persoonlijke positie-updates. |
| SubscribePersonalPlanOrder | Updates van persoonlijk plan (trigger) orders. |
| SubscribePersonalStopOrder | Persoonlijke stop-order updates. |
| SubscribePersonalStopPlanOrder | Persoonlijke stop-plan-orderupdates. |
| SubscribePersonalRiskLimit | Updates van persoonlijke risicolimiet. |
| SubscribePersonalADLLevel | Persoonlijke ADL (auto-deleveraging) niveauupdates. |
| SubscribePersonalAsset | Persoonlijke activaupdates. |
Openbaar beschikbare REST-methoden.
| Methode | Beschrijving |
| GetPing | Controleert de bereikbaarheid van de API via /api/v1/ping. |
| GetServerTime | Retourneert de servertijdstempel van /api/v1/time. |
| GetContracts | Biedt de lijst van beschikbare contracten (/api/v1/contract/detail). |
| GetDepth | Downloadt orderboekdiepte van /api/v1/contract/depth; gebruik de optionele parameter limit (standaard 50) om het aantal niveaus te selecteren. |
| GetDeals | Haalt recente handel op via /api/v1/contract/deals met een optionele limit (standaard 100). |
| GetKlines | Retourneert candlestickgegevens via /api/v1/contract/kline met optionele startTime-, endTime- en limit-filters (standaard 200). |
| GetIndexPrice | Haalt de onderliggende indexprijs op voor het opgevraagde symbool (/api/v1/contract/index_price). |
| GetFairPrice | Retourneert de reële (mark-)prijs voor een contract van /api/v1/contract/fair_price. |
| GetFundingRate | Rapporteert de laatste financieringsrente voor een symbool via /api/v1/contract/funding_rate. |
| GetAllTickers | Haal alle futures-contracttickers op met realtime prijsoverzichten. |
| GetFundingRateHistory | Historische financieringsrategegevens ophalen voor een contract. |
| GetFairPriceKline | Get fair (mark) price kline/candlestick data for a contract. |
| GetIndexPriceKline | Haal indexprijs kline/candlestick-gegevens op voor een contract. |
Private derivatives-endpoints vereisen API-credentials. Het component ondertekent elk verzoek automatisch met de timestamp en recvWindow.
Ingrijpende wijziging: de signaturen van PlaceOrder en SetPositionLeverage zijn gewijzigd om overeen te komen met de contract-eindpunten die MEXC publiceert, zodat een toepassing die deze aanroept niet meer compileert totdat zij is bijgewerkt. PlaceOrder heeft zijn parameter positionSide vervangen door openType, en SetPositionLeverage heeft marginMode, die het eindpunt niet accepteert, vervangen door positionId, openType en positionType. Ook zijn verschillende eindpuntroutes gecorrigeerd.
| Methode | Beschrijving |
| GetAccountAssets | Returns margin balances from /api/v1/private/account/assets. |
| GetPositionList | Geeft huidige posities weer via /api/v1/private/position/list/history_positions. |
| SetPositionLeverage | Werkt de leverage van een positie bij via /api/v1/private/position/change_leverage. Deze methode neemt het symbol en de leverage, plus een optionele positionId, en openType (1 geïsoleerd, 2 cross) en positionType (1 long, 2 short) die alleen vereist zijn wanneer de positie nog niet open is. |
| PlaceOrder | Plaatst een futures-order op /api/v1/private/order/submit met symbol, side, type, openType (1 geïsoleerd, 2 cross), de hoeveelheid, die als vol wordt verzonden, en de price, die het eindpunt ook voor marktorders vereist, plus een optionele externalOid en extra parameters. |
| CancelOrder | Annuleert een specifieke order via /api/v1/private/order/cancel op basis van orderId of clientOrderId. |
| CancelAllOrders | Annuleert alle openstaande orders voor een symbool via /api/v1/private/order/cancel_all. |
| GetOpenOrders | Geeft huidige openstaande orders weer via /api/v1/private/order/list/open_orders met een optioneel symboolfilter. |
| GetOrderHistory | Haalt ordergeschiedenis op (/api/v1/private/order/list/history) met optionele symbool-, tijdsbereik- en limietparameters. |
| GetFundingHistory | Retourneert eerdere financieringsbetalingen van /api/v1/private/account/funding met optionele filters voor startTime, endTime en limit. |
| GetOpenPositions | Haal alle momenteel open posities op. |
| ChangeMargin | Wijzig het margebedrag voor een positie. |
| GetPositionMode | Haal de huidige positiemodus op (eenrichtings- of hedgemodus). |
| ChangePositionMode | Wijzig de positiemodus tussen éénrichtings- en hedgemodus. |
| PlaceBatchOrder | Plaats meerdere futures-orders in één batchverzoek. |
| GetOrderDetail | Haal gedetailleerde informatie op voor een specifieke order. |
| GetOrderDealDetails | Haal gegevens over vulling/deal op voor een specifiek order. |
| PlaceTriggerOrder | Plaats een triggerorder (plan) die wordt uitgevoerd wanneer aan de voorwaarden is voldaan. |
| CancelTriggerOrder | Annuleer een specifieke triggerorder. |
| CancelAllTriggerOrders | Annuleer alle openstaande triggerorders. |
| GetTriggerOrders | Haal de lijst van trigger (plan) orders op. |
| GetStopOrders | Haal de lijst op met stoporders. |
| CancelStopOrder | Annuleer een specifieke stoporder. |
| CancelAllStopOrders | Annuleer alle openstaande stop-orders. |