Mise à jour de l'API MEXC sgcWebSockets

· Fonctionnalités
Intégration des API Spot et Futures de MEXC en Delphi

MEXC est une exchange mondiale de cryptomonnaies qui prend en charge le trading spot et les contrats futures perpétuels sur des centaines de paires de tokens. Les développeurs Delphi peuvent intégrer MEXC via deux composants dédiés : TsgcWSAPI_MEXC pour le marché Spot et TsgcWSAPI_MEXC_Futures pour le marché Futures. Chaque composant offre à la fois des abonnements WebSocket pour les données en temps réel et une interface REST pour les requêtes à la demande et la gestion des ordres. Cet article détaille toutes les méthodes disponibles sur les deux marchés.

Table des matières

Aperçu de l'architecture

MEXC fournit des surfaces d'API distinctes pour ses marchés Spot et Futures. Dans la bibliothèque sgcWebSockets, cela se traduit par deux composants distincts :

Les deux composants suivent le même modèle : assigner un TsgcWebSocketClient, configurer les identifiants API, activer le client pour les abonnements WebSocket et accéder à REST_API pour les appels HTTP synchrones.

API WebSocket Spot

L'API WebSocket Spot offre des données de marché en temps réel via des canaux publics et des mises à jour de compte via des canaux privés. Chaque abonnement a une méthode unsubscribe correspondante.

Canaux publics

S'abonner Se désabonner Description
SubscribeTrade UnSubscribeTrade Exécutions de trades en temps réel pour un symbole.
SubscribeKline UnSubscribeKline Mises à jour de chandeliers/kline en direct pour un symbole et un intervalle.
SubscribeDiffDepth UnSubscribeDiffDepth Mises à jour incrémentielles de la profondeur du carnet d'ordres (flux diff).
SubscribeBookDepth UnSubscribeBookDepth Snapshots complets de la profondeur du carnet d'ordres à un niveau donné.
SubscribeBookTicker UnSubscribeBookTicker Meilleur prix bid/ask et quantité pour un symbole spécifique.
SubscribeBookTickerBatch UnSubscribeBookTickerBatch Meilleurs prix bid/ask pour tous les symboles dans un seul flux.
SubscribeMiniTickers UnSubscribeMiniTickers Données ticker condensées (prix, volume) pour tous les symboles.
SubscribeMiniTicker UnSubscribeMiniTicker Données ticker condensées pour un symbole spécifique.

Canaux privés

Les canaux privés requièrent une authentification et fournissent des mises à jour en temps réel sur l'activité de ton compte. Active le flux de données utilisateur via la propriété MEXCUserDataStreams.UserStream.

S'abonner Se désabonner Description
SubscribeAccountUpdate UnSubscribeAccountUpdate Mises à jour du solde de compte et des positions lors de changements.
SubscribeAccountDeals UnSubscribeAccountDeals Notifications en temps réel quand tes ordres sont exécutés (exécutions de trades).
SubscribeAccountOrders UnSubscribeAccountOrders Changements de statut d'ordre (placé, partiellement exécuté, exécuté, annulé).

API REST Spot

L'API REST Spot est accessible via oMEXC.REST_API (de type TsgcHTTP_API_MEXC_Spot). Les endpoints publics ne requièrent pas d'authentification ; les endpoints privés requièrent une clé API et un secret valides.

Endpoints publics

Méthode Description
Ping Teste la connectivité au serveur API MEXC.
GetServerTime Renvoie l'heure actuelle du serveur MEXC.
GetDefaultSymbols Renvoie la liste des symboles de trading par défaut.
GetExchangeInformation Renvoie les règles de trading de l'exchange et les informations de symbole (filtres, précision, statut).
GetOrderBook Renvoie le carnet d'ordres (bids et asks) pour un symbole à une profondeur donnée.
GetTrades Renvoie les trades publics récents pour un symbole.
GetAggregateTrades Renvoie les enregistrements de trades agrégés/compressés.
GetKlines Renvoie les données historiques de kline/chandeliers pour un symbole et un intervalle.
GetAveragePrice Renvoie le prix moyen actuel pour un symbole.
Get24hrTicker Renvoie les statistiques de changement de prix sur fenêtre glissante 24h.
GetPriceTicker Renvoie le dernier prix pour un ou tous les symboles.
GetBookTicker Renvoie le meilleur prix bid/ask et la quantité depuis le carnet d'ordres.

Endpoints privés

Méthode Description
NewOrder Place un nouvel ordre spot (market, limit ou autres types pris en charge).
TestNewOrder Valide un nouvel ordre sans le placer réellement (dry run).
CancelOrder Annule un ordre ouvert spécifique par ID d'ordre.
CancelAllOrders Annule tous les ordres ouverts pour un symbole.
GetOrder Renvoie le statut et les détails d'un ordre spécifique.
GetOpenOrders Renvoie tous les ordres actuellement ouverts (non exécutés).
GetAllOrders Renvoie tous les ordres (ouverts, exécutés, annulés) dans une plage temporelle.
GetAccountInformation Renvoie les soldes de compte et les permissions.
GetMyTrades Renvoie ton historique de trades pour un symbole.
GetSubAccounts Renvoie une liste des sous-comptes sous le compte maître.
GetDepositAddress Renvoie l'adresse de dépôt pour un coin et un réseau spécifiques.
GetWithdrawHistory Renvoie les enregistrements d'historique de retraits.
Withdraw Initie un retrait vers une adresse externe.
GetCapitalConfig Renvoie la configuration capital (réseaux supportés, montants min/max de retrait, frais).

API WebSocket Futures

L'API WebSocket Futures fournit des données en temps réel spécifiques aux contrats à terme perpétuels. Tous les canaux sont publics et ne requièrent pas d'authentification. Chaque abonnement dispose d'une méthode de désabonnement correspondante.

S'abonner Se désabonner Description
SubscribeDeal UnSubscribeDeal Exécutions de trades/deals futures en temps réel.
SubscribeTickers UnSubscribeTickers Données ticker pour tous les contrats futures.
SubscribeTicker UnSubscribeTicker Données ticker pour un contrat futures spécifique.
SubscribeDepth UnSubscribeDepth Mises à jour incrémentielles de la profondeur du carnet d'ordres pour les futures.
SubscribeDepthFull UnSubscribeDepthFull Snapshots complets de la profondeur du carnet d'ordres pour les futures.
SubscribeKline UnSubscribeKline Mises à jour de chandeliers/kline en direct pour les contrats futures.
SubscribeFundingRate UnSubscribeFundingRate Mises à jour en temps réel du taux de financement pour les contrats perpétuels.
SubscribeIndexPrice UnSubscribeIndexPrice Mises à jour en temps réel du prix d'index.
SubscribeFairPrice UnSubscribeFairPrice Mises à jour en temps réel du prix fair/mark utilisé pour les calculs de liquidation.

API REST Futures

L'API REST Futures est accessible via oMEXCFut.REST_API (de type TsgcHTTP_API_MEXC_Futures). Elle couvre les données de marché, la gestion de compte, le contrôle des positions et les opérations sur les ordres.

Endpoints publics

Méthode Description
GetPing Teste la connectivité au serveur API MEXC Futures.
GetServerTime Renvoie l'heure actuelle du serveur futures.
GetContracts Renvoie une liste de tous les contrats futures disponibles et leurs spécifications.
GetDepth Renvoie la profondeur du carnet d'ordres pour un contrat futures.
GetDeals Renvoie l'historique récent des trades/deals publics pour un contrat futures.
GetKlines Renvoie les données historiques de kline/chandeliers pour un contrat futures.
GetIndexPrice Renvoie le prix d'index actuel pour un contrat.
GetFairPrice Renvoie le prix fair/mark actuel pour un contrat.
GetFundingRate Renvoie le taux de financement actuel et prédit pour un contrat perpétuel.

Endpoints privés

Méthode Description
GetAccountAssets Renvoie les soldes d'actifs du compte futures et les informations de marge.
GetPositionList Renvoie toutes les positions futures ouvertes avec taille, prix d'entrée et PnL.
SetPositionLeverage Définit le multiplicateur de levier pour un contrat futures spécifique.
PlaceOrder Place un nouvel ordre futures (market, limit ou autres types pris en charge).
CancelOrder Annule un ordre futures ouvert spécifique.
CancelAllOrders Annule tous les ordres futures ouverts pour un contrat.
GetOpenOrders Renvoie tous les ordres futures actuellement ouverts.
GetOrderHistory Renvoie les ordres futures historiques (exécutés, annulés, etc.).
GetFundingHistory Renvoie ton historique de paiement des frais de financement.

Premiers pas — Exemples de code

Exemple sur le marché Spot

L'exemple suivant se connecte au WebSocket MEXC Spot, s'abonne aux trades en temps réel, interroge les informations de l'exchange via REST, et passe un ordre d'achat au marché.

var
  oClient: TsgcWebSocketClient;
  oMEXC: TsgcWSAPI_MEXC;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  // Create the MEXC Spot API component
  oMEXC := TsgcWSAPI_MEXC.Create(nil);
  oMEXC.Client := oClient;
  // Configure API credentials
  oMEXC.MEXCAPI.ApiKey := 'your_api_key';
  oMEXC.MEXCAPI.ApiSecret := 'your_api_secret';
  // Connect to the WebSocket
  oClient.Active := True;
  // WebSocket: Subscribe to real-time trades for BTCUSDT
  oMEXC.SubscribeTrade('BTCUSDT');
  // REST: Get exchange information
  ShowMessage(oMEXC.REST_API.GetExchangeInformation);
  // REST: Place a market buy order for 0.001 BTC
  ShowMessage(oMEXC.REST_API.NewOrder('BTCUSDT', 'BUY', 'MARKET', '', 0.001));
end;

Exemple sur le marché Futures

Cet exemple se connecte au WebSocket MEXC Futures, s'abonne à un ticker Futures, et interroge les contrats disponibles via REST.

var
  oClientFut: TsgcWebSocketClient;
  oMEXCFut: TsgcWSAPI_MEXC_Futures;
begin
  // Create the WebSocket client for futures
  oClientFut := TsgcWebSocketClient.Create(nil);
  // Create the MEXC Futures API component
  oMEXCFut := TsgcWSAPI_MEXC_Futures.Create(nil);
  oMEXCFut.Client := oClientFut;
  // Configure API credentials
  oMEXCFut.MEXCFuturesAPI.ApiKey := 'your_api_key';
  oMEXCFut.MEXCFuturesAPI.ApiSecret := 'your_api_secret';
  // Connect to the WebSocket
  oClientFut.Active := True;
  // WebSocket: Subscribe to futures ticker for BTC_USDT
  oMEXCFut.SubscribeTicker('BTC_USDT');
  // REST: Get all available futures contracts
  ShowMessage(oMEXCFut.REST_API.GetContracts);
end;
Remarque : Spot and Futures use separate WebSocket connections and separate API components. You need a distinct TsgcWebSocketClient instance for each.

Référence de configuration

Configuration Spot

Propriété Type Description
MEXCAPI.ApiKey String Ta clé API MEXC pour les requêtes spot authentifiées.
MEXCAPI.ApiSecret String Ton API secret MEXC pour la signature des requêtes.
MEXCUserDataStreams.UserStream Boolean Mettre à True pour activer le flux de données utilisateur privé pour les mises à jour de compte, les deals et les évènements d'ordres.

Configuration Futures

Propriété Type Description
MEXCFuturesAPI.ApiKey String Ta clé API MEXC pour les requêtes futures authentifiées.
MEXCFuturesAPI.ApiSecret String Ton API secret MEXC pour la signature des requêtes futures.

Astuces et notes

Composants distincts pour Spot et Futures

MEXC traite Spot et Futures comme des marchés entièrement distincts avec des endpoints API différents, des conventions de nommage de symboles différentes (par exemple BTCUSDT pour le spot vs. BTC_USDT pour les futures), et des scopes d'authentification distincts. Utilise toujours le bon composant pour ton marché cible.

Flux de données utilisateur

Pour recevoir les évènements de compte privés sur le WebSocket Spot (mises à jour de compte, deals, changements d'ordres), tu dois définir MEXCUserDataStreams.UserStream := True avant d'activer le client. Cela indique au composant de demander un listen key et d'établir automatiquement le flux privé.

Tests d'ordres

Utilise la méthode TestNewOrder sur l'API REST Spot pour valider les paramètres d'ordre sans réellement passer l'ordre. C'est utile pour vérifier que tes paramètres de symbole, côté, type et quantité sont correctement formatés avant d'engager de vrais fonds.

Conventions de nommage des symboles

Fais attention aux différents formats de symboles entre les deux marchés. Le Spot utilise des paires concaténées comme BTCUSDT, tandis que les Futures utilisent des paires séparées par un underscore comme BTC_USDT. Utiliser le mauvais format provoquera des erreurs « symbol not found ».

Limites de débit

MEXC applique des limites de débit sur les API REST et WebSocket. Les endpoints REST autorisent généralement un nombre fixe de requêtes par minute. Si tu dépasses la limite, tu recevras un code de statut 429. Implémente une logique de backoff appropriée ou utilise des abonnements WebSocket pour les données qui changent fréquemment.

Astuce : For high-frequency monitoring, prefer WebSocket subscriptions over polling REST endpoints. Subscriptions deliver data in real time with lower latency and do not count against REST rate limits.