MEXC les contrats perpétuels et de livraison exposent une API de streaming dédiée documentée dans la spécification WebSocket Futures officielle. Le composant TsgcWSAPI_MEXC_Futures encapsule la connexion, la négociation de connexion et la gestion des sujets nécessaires pour consommer des données dérivées en temps réel.
MEXC maintient également une interface REST pour le trading de dérivés. Le composant TsgcHTTP_API_MEXC_Futures contenu dans sgcHTTP_API_MEXC complète les flux WebSocket avec des assistants HTTP mappant un à un les endpoints officiels.
Le point de terminaison WebSocket Futures est wss://contract.mexc.com/edge. Les messages sont encodés en tant qu'objets JSON et l'échange nécessite des trames ping/pong périodiques qui sont gérées automatiquement par le composant.
Pour recevoir des notifications privées (données de commandes et de compte), vous devez vous authentifier. Définissez MEXCAPI.ApiKey et MEXCAPI.ApiSecret avant d'activer le client WebSocket. Lorsque des identifiants sont présents, le composant signe une requête de connexion (HMAC SHA256) dès que la socket se connecte.
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;
Le gestionnaire suivant enregistre les confirmations d'abonnement et imprime les instantanés de profondeur entrants :
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;
Chaque assistant encapsule une requête sub/unsub telle que décrite par l'API officielle. Utilisez la méthode UnSubscribe* correspondante pour annuler le flux.
| Méthode | Paramètres | Description |
| SubscribeDeal | Symbol | Transactions exécutées sur le contrat (canal : deal). |
| SubscribeTickers | – | Statistiques globales du ticker pour tous les contrats. |
| SubscribeTicker | Symbol | Résumé du ticker pour un seul instrument. |
| SubscribeDepth | Symbol, Compress | Mises à jour incrémentielles du carnet d'ordres |
| SubscribeDepthFull | Symbol, Level | Snapshots de profondeur complète avec un nombre de niveaux configurable (20 par défaut). |
| SubscribeKline | Symbole, Intervalle | Données de chandeliers pour les intervalles de temps pris en charge (Min1, Min5, Min15, Min30, Min60, Hour4, Hour12, Day1, Week1, Month1). |
| SubscribeFundingRate | Symbol | Dernières annonces de taux de financement. |
| SubscribeIndexPrice | Symbol | Flux du prix de l'indice sous-jacent. |
| SubscribeFairPrice | Symbol | Mises à jour du prix mark (équitable) transmises par l'exchange. |
Lorsque le serveur acquitte une requête, l'événement OnMEXCSubscribed se déclenche avec le nom du canal (par exemple rs.sub.depth.BTC_USDT). Les erreurs sont transmises via OnMEXCError, incluant le message du serveur pour le débogage.
Les canaux privés nécessitent une clé API valide. Le composant s'authentifie automatiquement lorsque des identifiants sont fournis.
| Méthode | Description |
| SubscribePersonalOrder | Mises à jour des ordres personnels. |
| SubscribePersonalOrderDeal | Mises à jour des transactions personnelles (fills). |
| SubscribePersonalPosition | Mises à jour personnelles de position. |
| SubscribePersonalPlanOrder | Mises à jour des ordres de plan personnel (déclencheur). |
| SubscribePersonalStopOrder | Mises à jour personnelles des ordres stop. |
| SubscribePersonalStopPlanOrder | Mises à jour personnelles des ordres stop-plan. |
| SubscribePersonalRiskLimit | Mises à jour de la limite de risque personnelle. |
| SubscribePersonalADLLevel | Mises à jour personnelles du niveau ADL (auto-délestage). |
| SubscribePersonalAsset | Mises à jour des actifs personnels. |
Méthodes REST disponibles publiquement.
| Méthode | Description |
| GetPing | Vérifie l'accessibilité de l'API via /api/v1/ping. |
| GetServerTime | Retourne le timestamp du serveur depuis /api/v1/time. |
| GetContracts | Fournit la liste des contrats disponibles (/api/v1/contract/detail). |
| GetDepth | Télécharge la profondeur du carnet d'ordres depuis /api/v1/contract/depth ; utilisez le paramètre optionnel limit (défaut 50) pour sélectionner le nombre de niveaux. |
| GetDeals | Récupère les transactions récentes en utilisant /api/v1/contract/deals avec une limite optionnelle (par défaut 100). |
| GetKlines | Retourne les données chandelier via /api/v1/contract/kline avec des filtres optionnels startTime, endTime et limit (par défaut 200). |
| GetIndexPrice | Récupère le prix de l'indice sous-jacent pour le symbole demandé (/api/v1/contract/indexPrice). |
| GetFairPrice | Retourne le prix équitable (mark) pour un contrat depuis /api/v1/contract/fairPrice. |
| GetFundingRate | Signale le dernier taux de financement pour un symbole en utilisant /api/v1/contract/fundingRate. |
| GetAllTickers | Obtenir tous les tickers de contrats à terme avec des résumés de prix en temps réel. |
| GetFundingRateHistory | Obtenir l'historique des taux de financement pour un contrat. |
| GetFairPriceKline | Récupère les données kline/chandelier du prix équitable (mark) pour un contrat. |
| GetIndexPriceKline | Obtenir les données kline/chandelier de prix d'index pour un contrat. |
Les points de terminaison de dérivés privés nécessitent des informations d'identification API. Le composant signe automatiquement chaque requête avec l'horodatage et recvWindow.
| Méthode | Description |
| GetAccountAssets | Renvoie les soldes de marge depuis /api/v1/private/account/assets. |
| GetPositionList | Liste les positions actuelles via /api/v1/private/position/list, avec un filtre optionnel par symbole. |
| SetPositionLeverage | Met à jour l'effet de levier pour un symbole et, si fourni, le mode de marge. |
| PlaceOrder | Place un ordre futures sur /api/v1/private/order en fournissant symbol, side, positionSide, type et quantity ainsi que les paramètres optionnels price, clientOrderId et autres. |
| CancelOrder | Annule un ordre spécifique via /api/v1/private/order/cancel par orderId ou clientOrderId. |
| CancelAllOrders | Annule tous les ordres ouverts pour un symbole via /api/v1/private/order/cancel-all. |
| GetOpenOrders | Liste les ordres ouverts actuels via /api/v1/private/order/list/open avec un filtre de symbole optionnel. |
| GetOrderHistory | Récupère l'historique des ordres (/api/v1/private/order/list/history) avec des paramètres optionnels de symbole, plage de temps et limite. |
| GetFundingHistory | Retourne les paiements de financement passés depuis /api/v1/private/account/funding avec des filtres optionnels startTime, endTime et limit. |
| GetOpenPositions | Obtenir toutes les positions actuellement ouvertes. |
| ChangeMargin | Modifier le montant de marge pour une position. |
| GetPositionMode | Obtenir le mode de position actuel (mode unidirectionnel ou de couverture). |
| ChangePositionMode | Changer le mode de position entre le mode unidirectionnel et le mode de couverture. |
| PlaceBatchOrder | Passer plusieurs ordres à terme en une seule requête en lot. |
| GetOrderDetail | Obtenir des informations détaillées pour un ordre spécifique. |
| GetOrderDealDetails | Obtenir les détails de remplissage/transaction pour un ordre spécifique. |
| PlaceTriggerOrder | Passer un ordre déclencheur (plan) qui s'exécute lorsque les conditions sont remplies. |
| CancelTriggerOrder | Annuler un ordre déclencheur spécifique. |
| CancelAllTriggerOrders | Annuler tous les ordres trigger ouverts. |
| GetTriggerOrders | Obtenir la liste des ordres déclencheurs (plan). |
| GetStopOrders | Obtenir la liste des ordres stop. |
| CancelStopOrder | Annuler un ordre stop spécifique. |
| CancelAllStopOrders | Annuler tous les ordres stop ouverts. |