MEXC Perpetual- und Delivery-Kontrakte stellen eine dedizierte Streaming-API bereit, die in der offiziellen Futures-WebSocket-Spezifikation dokumentiert ist. Die Komponente TsgcWSAPI_MEXC_Futures kapselt die Verbindung, den Login-Handshake und die Topic-Verwaltung, die zum Abrufen von Echtzeit-Derivatedaten erforderlich sind.
MEXC pflegt außerdem eine REST-Schnittstelle für den Derivatehandel. Die TsgcHTTP_API_MEXC_Futures-Komponente, die in sgcHTTP_API_MEXC enthalten ist, ergänzt die WebSocket-Feeds um HTTP-Helfer, die eins zu eins den offiziellen Endpunkten zugeordnet sind.
Der Futures-WebSocket-Endpunkt ist wss://contract.mexc.com/edge. Nachrichten werden als JSON-Objekte kodiert und die Börse erfordert periodische ping/pong-Frames, die von der Komponente automatisch behandelt werden.
Um private Benachrichtigungen (Order- und Kontodaten) zu erhalten, müssen Sie sich authentifizieren. Setzen Sie MEXCAPI.ApiKey und MEXCAPI.ApiSecret, bevor Sie den WebSocket-Client aktivieren. Wenn Anmeldeinformationen vorhanden sind, signiert die Komponente eine Login-Anfrage (HMAC SHA256), sobald der Socket verbunden ist.
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;
Der folgende Handler zeichnet Abonnementbestätigungen auf und gibt eingehende Tiefen-Snapshots aus:
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;
Jeder Helfer umschließt eine sub/unsub-Anfrage, wie von der offiziellen API beschrieben. Verwenden Sie die passende UnSubscribe*-Methode, um den Stream abzubrechen.
| Method | Parameter | Beschreibung |
| SubscribeDeal | Symbol | Auf dem Kontrakt ausgeführte Trades (Kanal: deal). |
| SubscribeTickers | – | Globale Ticker-Statistiken für alle Kontrakte. |
| SubscribeTicker | Symbol | Ticker-Zusammenfassung für ein einzelnes Instrument. |
| SubscribeDepth | Symbol, Compress | Inkrementelle Orderbuch-Aktualisierungen |
| SubscribeDepthFull | Symbol, Level | Vollständige Tiefen-Snapshots mit konfigurierbarer Anzahl von Stufen (Standard 20). |
| SubscribeKline | Symbol, Interval | Candlestick-Daten für unterstützte Zeitrahmen (Min1, Min5, Min15, Min30, Min60, Hour4, Hour12, Day1, Week1, Month1). |
| SubscribeFundingRate | Symbol | Aktuelle Funding-Rate-Ankündigungen. |
| SubscribeIndexPrice | Symbol | Zugrunde liegender Index-Preis-Stream. |
| SubscribeFairPrice | Symbol | Mark-(Fair-)Price-Aktualisierungen, die von der Börse übertragen werden. |
Wenn der Server eine Anfrage bestätigt, wird das Ereignis OnMEXCSubscribed mit dem Kanalnamen ausgelöst (zum Beispiel rs.sub.depth.BTC_USDT). Fehler werden über OnMEXCError weitergeleitet, einschließlich der Servernachricht zur Fehlerbehebung.
Private Kanäle erfordern einen gültigen API-Schlüssel. Die Komponente authentifiziert sich automatisch, wenn Anmeldedaten bereitgestellt werden.
| Method | Beschreibung |
| SubscribePersonalOrder | Persönliche Order-Updates. |
| SubscribePersonalOrderDeal | Aktualisierungen zu persönlichen Auftragsabschlüssen (Fills). |
| SubscribePersonalPosition | Persönliche Positions-Updates. |
| SubscribePersonalPlanOrder | Persönliche (Trigger-)Order-Updates. |
| SubscribePersonalStopOrder | Aktualisierungen zu persönlichen Stop-Aufträgen. |
| SubscribePersonalStopPlanOrder | Aktualisierungen zu persönlichen Stop-Plan-Aufträgen. |
| SubscribePersonalRiskLimit | Aktualisierungen des persönlichen Risikolimits. |
| SubscribePersonalADLLevel | Persönliche ADL-(Auto-Deleveraging-)Level-Updates. |
| SubscribePersonalAsset | Persönliche Vermögensaktualisierungen. |
Öffentlich verfügbare REST-Methoden.
| Method | Beschreibung |
| GetPing | Prüft die API-Erreichbarkeit über /api/v1/ping. |
| GetServerTime | Gibt den Server-Zeitstempel von /api/v1/time zurück. |
| GetContracts | Stellt die Liste der verfügbaren Kontrakte bereit (/api/v1/contract/detail). |
| GetDepth | Lädt die Orderbuchtiefe von /api/v1/contract/depth herunter; verwenden Sie den optionalen Parameter limit (Standard 50), um die Anzahl der Ebenen auszuwählen. |
| GetDeals | Ruft die jüngsten Trades über /api/v1/contract/deals mit einem optionalen limit ab (Standard 100). |
| GetKlines | Gibt Candlestick-Daten über /api/v1/contract/kline mit optionalen Filtern startTime, endTime und limit zurück (Standard 200). |
| GetIndexPrice | Ruft den zugrunde liegenden Indexpreis für das angeforderte Symbol ab (/api/v1/contract/index_price). |
| GetFairPrice | Gibt den fairen (Mark-)Preis für einen Kontrakt von /api/v1/contract/fair_price zurück. |
| GetFundingRate | Meldet die neueste Funding-Rate für ein Symbol über /api/v1/contract/funding_rate. |
| GetAllTickers | Ruft alle Ticker für Futures-Kontrakte mit Echtzeit-Preiszusammenfassungen ab. |
| GetFundingRateHistory | Ruft historische Funding-Rate-Datensätze für einen Kontrakt ab. |
| GetFairPriceKline | Ruft Fair-Price- (Mark-Price-)Kline-/Candlestick-Daten für einen Kontrakt ab. |
| GetIndexPriceKline | Ruft Indexpreis-Kline-/Candlestick-Daten für einen Kontrakt ab. |
Private Derivate-Endpunkte erfordern API-Anmeldedaten. Die Komponente signiert jede Anfrage automatisch mit dem Zeitstempel und recvWindow.
Breaking Change: die Signaturen von PlaceOrder und SetPositionLeverage haben sich geändert, um den von MEXC veröffentlichten Kontrakt-Endpunkten zu entsprechen, sodass eine Anwendung, die sie aufruft, nicht mehr kompiliert, solange sie nicht angepasst wird. PlaceOrder hat seinen Parameter positionSide durch openType ersetzt, und SetPositionLeverage hat marginMode, das der Endpunkt nicht akzeptiert, durch positionId, openType und positionType ersetzt. Außerdem wurden mehrere Endpunkt-Routen korrigiert.
| Method | Beschreibung |
| GetAccountAssets | Gibt Margin-Salden von /api/v1/private/account/assets zurück. |
| GetPositionList | Listet aktuelle Positionen über /api/v1/private/position/list/history_positions auf. |
| SetPositionLeverage | Aktualisiert die Hebelwirkung einer Position über /api/v1/private/position/change_leverage. Sie nimmt das symbol und den leverage entgegen, dazu eine optionale positionId sowie openType (1 Isoliert, 2 Cross) und positionType (1 Long, 2 Short), die nur erforderlich sind, wenn die Position noch nicht offen ist. |
| PlaceOrder | Platziert eine Futures-Order auf /api/v1/private/order/submit und stellt symbol, side, type, openType (1 Isoliert, 2 Cross), die Menge, die als vol übertragen wird, und den price bereit, den der Endpunkt auch für Market-Orders verlangt, sowie optional externalOid und zusätzliche Parameter. |
| CancelOrder | Bricht eine bestimmte Order über /api/v1/private/order/cancel anhand der orderId oder clientOrderId ab. |
| CancelAllOrders | Storniert alle offenen Orders für ein Symbol über /api/v1/private/order/cancel_all. |
| GetOpenOrders | Listet aktuelle offene Orders über /api/v1/private/order/list/open_orders mit einem optionalen Symbol-Filter auf. |
| GetOrderHistory | Ruft den Order-Verlauf ab (/api/v1/private/order/list/history) mit optionalen Symbol-, Zeitbereichs- und Limit-Parametern. |
| GetFundingHistory | Gibt vergangene Funding-Zahlungen von /api/v1/private/account/funding mit optionalen Filtern startTime, endTime und limit zurück. |
| GetOpenPositions | Ruft alle derzeit offenen Positionen ab. |
| ChangeMargin | Ändert den Margin-Betrag für eine Position. |
| GetPositionMode | Den aktuellen Positionsmodus abrufen (One-Way- oder Hedge-Modus). |
| ChangePositionMode | Wechselt den Positionsmodus zwischen Einweg- und Hedge-Modus. |
| PlaceBatchOrder | Platziert mehrere Futures-Orders in einer einzigen Batch-Anfrage. |
| GetOrderDetail | Ruft detaillierte Informationen für einen bestimmten Auftrag ab. |
| GetOrderDealDetails | Fill-/Deal-Details für eine bestimmte Order abrufen. |
| PlaceTriggerOrder | Platzieren Sie eine Trigger-Order (Plan-Order), die ausgeführt wird, wenn die Bedingungen erfüllt sind. |
| CancelTriggerOrder | Storniert einen bestimmten Trigger-Auftrag. |
| CancelAllTriggerOrders | Storniert alle offenen Trigger-Orders. |
| GetTriggerOrders | Ruft die Liste der Trigger-Aufträge (Plan) ab. |
| GetStopOrders | Ruft die Liste der Stop-Orders ab. |
| CancelStopOrder | Eine bestimmte Stop-Order stornieren. |
| CancelAllStopOrders | Alle offenen Stop-Orders stornieren. |