MEXC API Update 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

Subscribe Unsubscribe 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

Private channels require authentication and deliver real-time updates about your account activity. Enable the user data stream via the MEXCUserDataStreams.UserStream property.

Subscribe Unsubscribe 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

The Spot REST API is accessible via oMEXC.REST_API (of type TsgcHTTP_API_MEXC_Spot). Public endpoints do not require authentication; private endpoints require a valid API key and secret.

Public Endpoints

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.

Private Endpoints

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

The Futures WebSocket API provides real-time data specific to perpetual futures contracts. All channels are public and do not require authentication. Each subscription has a corresponding unsubscribe method.

Subscribe Unsubscribe 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

The Futures REST API is accessible via oMEXCFut.REST_API (of type TsgcHTTP_API_MEXC_Futures). It covers market data, account management, position control, and order operations.

Public Endpoints

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.

Private Endpoints

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

Spot Market Example

The following example connects to the MEXC Spot WebSocket, subscribes to real-time trades, queries exchange information via REST, and places a market buy order.

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;

Futures Market Example

This example connects to the MEXC Futures WebSocket, subscribes to a futures ticker, and queries available contracts 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

Spot Configuration

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 Set to True to enable the private user data stream for account updates, deals, and order events.

Futures Configuration

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

Separate Components for Spot and Futures

MEXC treats Spot and Futures as entirely separate markets with different API endpoints, symbol naming conventions (e.g., BTCUSDT for spot vs. BTC_USDT for futures), and authentication scopes. Always use the correct component for your target market.

User Data Streams

To receive private account events on the Spot WebSocket (account updates, deals, order changes), you must set MEXCUserDataStreams.UserStream := True before activating the client. This tells the component to request a listen key and establish the private stream automatically.

Order Testing

Use the TestNewOrder method on the Spot REST API to validate order parameters without actually placing the order. This is useful for verifying that your symbol, side, type, and quantity parameters are correctly formatted before committing real funds.

Symbol Naming Conventions

Pay attention to the different symbol formats across the two markets. Spot uses concatenated pairs like BTCUSDT, while Futures uses underscore-separated pairs like BTC_USDT. Using the wrong format will result in "symbol not found" errors.

Rate Limits

MEXC enforces rate limits on both REST and WebSocket APIs. REST endpoints typically allow a fixed number of requests per minute. If you exceed the limit, you will receive a 429 status code. Implement appropriate backoff logic or use WebSocket subscriptions for data that changes frequently.

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.