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/indexPrice). |
| GetFairPrice | Gibt den fairen (Mark-)Preis für einen Kontrakt von /api/v1/contract/fairPrice zurück. |
| GetFundingRate | Meldet die neueste Funding-Rate für ein Symbol über /api/v1/contract/fundingRate. |
| 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.
| Method | Beschreibung |
| GetAccountAssets | Gibt Margin-Salden von /api/v1/private/account/assets zurück. |
| GetPositionList | Listet aktuelle Positionen über /api/v1/private/position/list auf, optional nach Symbol gefiltert. |
| SetPositionLeverage | Aktualisiert die Hebelwirkung für ein Symbol und, falls angegeben, den Margin-Modus. |
| PlaceOrder | Platziert eine Futures-Order auf /api/v1/private/order und stellt symbol, side, positionSide, type und quantity sowie optional price, clientOrderId und zusätzliche Parameter bereit. |
| 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 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. |