Update MEXC-API in sgcWebSockets

· Functies
Integratie van de MEXC Spot- en Futures-API in Delphi

MEXC is een wereldwijde cryptocurrency-beurs die spottrading en perpetual-futures-contracten ondersteunt over honderden tokenparen. Delphi-ontwikkelaars kunnen via twee speciale componenten met MEXC integreren: TsgcWSAPI_MEXC voor de Spot-markt en TsgcWSAPI_MEXC_Futures voor de Futures-markt. Elke component biedt zowel WebSocket-abonnementen voor realtime data als een REST-interface voor on-demand vragen en orderbeheer. Dit artikel beschrijft elke beschikbare methode in beide markten.

Inhoudsopgave

Architectuuroverzicht

MEXC biedt aparte API-oppervlakken voor de Spot- en Futures-markten. In de sgcWebSockets-bibliotheek wordt dit weerspiegeld door twee afzonderlijke componenten:

Beide componenten volgen hetzelfde patroon: wijs een TsgcWebSocketClient toe, configureer API-credentials, activeer de client voor WebSocket-subscriptions en gebruik REST_API voor synchrone HTTP-aanroepen.

Spot-WebSocket-API

De Spot-WebSocket-API biedt realtime marktdata via publieke kanalen en account-updates via private kanalen. Elke subscription heeft een bijbehorende unsubscribe-methode.

Publieke kanalen

Subscribe Unsubscribe Beschrijving
SubscribeTrade UnSubscribeTrade Realtime trade-uitvoeringen voor een symbool.
SubscribeKline UnSubscribeKline Live candlestick-/kline-updates voor een symbool en interval.
SubscribeDiffDepth UnSubscribeDiffDepth Incrementele orderboek-depth-updates (diff-stream).
SubscribeBookDepth UnSubscribeBookDepth Volledige orderboek-depth-snapshots op een opgegeven niveau.
SubscribeBookTicker UnSubscribeBookTicker Beste bid-/ask-prijs en hoeveelheid voor een specifiek symbool.
SubscribeBookTickerBatch UnSubscribeBookTickerBatch Beste bid-/ask-prijzen voor alle symbolen in één stream.
SubscribeMiniTickers UnSubscribeMiniTickers Gecondenseerde ticker-data (prijs, volume) voor alle symbolen.
SubscribeMiniTicker UnSubscribeMiniTicker Gecondenseerde ticker-data voor een specifiek symbool.

Private kanalen

Private kanalen vereisen authenticatie en leveren realtime updates over je accountactiviteit. Schakel de user-data-stream in via de MEXCUserDataStreams.UserStream-property.

Subscribe Unsubscribe Beschrijving
SubscribeAccountUpdate UnSubscribeAccountUpdate Updates van accountsaldo en positie wanneer er wijzigingen optreden.
SubscribeAccountDeals UnSubscribeAccountDeals Realtime meldingen wanneer je orders worden gevuld (trade-uitvoeringen).
SubscribeAccountOrders UnSubscribeAccountOrders Orderstatuswijzigingen (geplaatst, gedeeltelijk gevuld, gevuld, geannuleerd).

Spot-REST-API

De Spot-REST-API is toegankelijk via oMEXC.REST_API (type TsgcHTTP_API_MEXC_Spot). Publieke endpoints vereisen geen authenticatie; private endpoints vereisen een geldige API-sleutel en secret.

Publieke endpoints

Methode Beschrijving
Ping Test de connectiviteit met de MEXC-API-server.
GetServerTime Geeft de huidige MEXC-servertijd terug.
GetDefaultSymbols Geeft de lijst terug met standaard handelssymbolen.
GetExchangeInformation Geeft beursregels en symboolinformatie terug (filters, precisie, status).
GetOrderBook Geeft het orderboek (bids en asks) terug voor een symbool met een opgegeven diepte.
GetTrades Geeft de recente publieke trades terug voor een symbool.
GetAggregateTrades Geeft geaggregeerde/gecomprimeerde trade-records terug.
GetKlines Geeft historische kline-/candlestick-data terug voor een symbool en interval.
GetAveragePrice Geeft de huidige gemiddelde prijs terug voor een symbool.
Get24hrTicker Geeft prijswijzigingsstatistieken terug over een rollend venster van 24 uur.
GetPriceTicker Geeft de laatste prijs terug voor één of alle symbolen.
GetBookTicker Geeft de beste bid-/ask-prijs en hoeveelheid uit het orderboek terug.

Private endpoints

Methode Beschrijving
NewOrder Plaatst een nieuwe spot-order (market, limit of andere ondersteunde types).
TestNewOrder Valideert een nieuwe order zonder deze daadwerkelijk te plaatsen (dry run).
CancelOrder Annuleert een specifieke open order op basis van order-ID.
CancelAllOrders Annuleert alle open orders voor een symbool.
GetOrder Geeft de status en details terug van een specifieke order.
GetOpenOrders Geeft alle momenteel openstaande (ongevulde) orders terug.
GetAllOrders Geeft alle orders terug (open, gevuld, geannuleerd) binnen een tijdsbereik.
GetAccountInformation Geeft accountsaldi en permissies terug.
GetMyTrades Geeft je handelsgeschiedenis terug voor een symbool.
GetSubAccounts Geeft een lijst terug van sub-accounts onder het hoofdaccount.
GetDepositAddress Geeft het deposit-adres terug voor een specifieke coin en netwerk.
GetWithdrawHistory Geeft de opnamegeschiedenis-records terug.
Withdraw Start een opname naar een extern adres.
GetCapitalConfig Geeft de kapitaalconfiguratie terug (ondersteunde netwerken, min/max-opnamebedragen, kosten).

Futures-WebSocket-API

De Futures-WebSocket-API biedt realtime data die specifiek is voor perpetual-futures-contracten. Alle kanalen zijn publiek en vereisen geen authenticatie. Elke subscription heeft een bijbehorende unsubscribe-methode.

Subscribe Unsubscribe Beschrijving
SubscribeDeal UnSubscribeDeal Realtime futures-trade-/deal-uitvoeringen.
SubscribeTickers UnSubscribeTickers Ticker-data voor alle futures-contracten.
SubscribeTicker UnSubscribeTicker Ticker-data voor een specifiek futurescontract.
SubscribeDepth UnSubscribeDepth Incrementele orderboek-depth-updates voor futures.
SubscribeDepthFull UnSubscribeDepthFull Volledige orderboek-depth-snapshots voor futures.
SubscribeKline UnSubscribeKline Live candlestick-/kline-updates voor futures-contracten.
SubscribeFundingRate UnSubscribeFundingRate Realtime funding-rate-updates voor perpetual-contracten.
SubscribeIndexPrice UnSubscribeIndexPrice Realtime indexprijs-updates.
SubscribeFairPrice UnSubscribeFairPrice Realtime fair-/mark-price-updates die worden gebruikt voor liquidatieberekeningen.

Futures-REST-API

De Futures-REST-API is toegankelijk via oMEXCFut.REST_API (type TsgcHTTP_API_MEXC_Futures). Deze dekt marktdata, accountbeheer, positiebeheer en orderbewerkingen.

Publieke endpoints

Methode Beschrijving
GetPing Test de connectiviteit met de MEXC-Futures-API-server.
GetServerTime Geeft de huidige futures-servertijd terug.
GetContracts Geeft een lijst terug van alle beschikbare futures-contracten en hun specificaties.
GetDepth Geeft de orderboek-depth terug voor een futurescontract.
GetDeals Geeft de recente publieke trade-/deal-geschiedenis terug voor een futurescontract.
GetKlines Geeft historische kline-/candlestick-data terug voor een futurescontract.
GetIndexPrice Geeft de huidige indexprijs terug voor een contract.
GetFairPrice Geeft de huidige fair-/mark-price terug voor een contract.
GetFundingRate Geeft de huidige en voorspelde funding rate terug voor een perpetual-contract.

Private endpoints

Methode Beschrijving
GetAccountAssets Geeft futures-account-asset-saldi en margin-informatie terug.
GetPositionList Geeft alle open futures-posities terug met omvang, entry-prijs en PnL.
SetPositionLeverage Stelt de leverage-multiplier in voor een specifiek futurescontract.
PlaceOrder Plaatst een nieuwe futures-order (market, limit of andere ondersteunde types).
CancelOrder Annuleert een specifieke open futures-order.
CancelAllOrders Annuleert alle open futures-orders voor een contract.
GetOpenOrders Geeft alle momenteel openstaande futures-orders terug.
GetOrderHistory Geeft historische futures-orders terug (gevuld, geannuleerd, enzovoort).
GetFundingHistory Geeft je betaalgeschiedenis van funding-fees terug.

Aan de slag — codevoorbeelden

Spot-marktvoorbeeld

Het volgende voorbeeld maakt verbinding met de MEXC-Spot-WebSocket, abonneert zich op realtime trades, vraagt beursinformatie op via REST en plaatst een market-koop-order.

var
  oClient: TsgcWebSocketClient;
  oMEXC: TsgcWSAPI_MEXC;
begin
  // WebSocket-client aanmaken
  oClient := TsgcWebSocketClient.Create(nil);
  // MEXC-Spot-API-component aanmaken
  oMEXC := TsgcWSAPI_MEXC.Create(nil);
  oMEXC.Client := oClient;
  // API-credentials configureren
  oMEXC.MEXCAPI.ApiKey := 'your_api_key';
  oMEXC.MEXCAPI.ApiSecret := 'your_api_secret';
  // Verbinden met de WebSocket
  oClient.Active := True;
  // WebSocket: abonneren op realtime trades voor BTCUSDT
  oMEXC.SubscribeTrade('BTCUSDT');
  // REST: beursinformatie ophalen
  ShowMessage(oMEXC.REST_API.GetExchangeInformation);
  // REST: een market-koop-order plaatsen voor 0,001 BTC
  ShowMessage(oMEXC.REST_API.NewOrder('BTCUSDT', 'BUY', 'MARKET', '', 0.001));
end;

Futures-marktvoorbeeld

Dit voorbeeld maakt verbinding met de MEXC-Futures-WebSocket, abonneert zich op een futures-ticker en vraagt beschikbare contracten op via REST.

var
  oClientFut: TsgcWebSocketClient;
  oMEXCFut: TsgcWSAPI_MEXC_Futures;
begin
  // WebSocket-client voor futures aanmaken
  oClientFut := TsgcWebSocketClient.Create(nil);
  // MEXC-Futures-API-component aanmaken
  oMEXCFut := TsgcWSAPI_MEXC_Futures.Create(nil);
  oMEXCFut.Client := oClientFut;
  // API-credentials configureren
  oMEXCFut.MEXCFuturesAPI.ApiKey := 'your_api_key';
  oMEXCFut.MEXCFuturesAPI.ApiSecret := 'your_api_secret';
  // Verbinden met de WebSocket
  oClientFut.Active := True;
  // WebSocket: abonneren op futures-ticker voor BTC_USDT
  oMEXCFut.SubscribeTicker('BTC_USDT');
  // REST: alle beschikbare futures-contracten ophalen
  ShowMessage(oMEXCFut.REST_API.GetContracts);
end;
Let op: Spot en Futures gebruiken aparte WebSocket-verbindingen en aparte API-componenten. Je hebt voor elk een aparte TsgcWebSocketClient-instantie nodig.

Configuratiereferentie

Spot-configuratie

Property Type Beschrijving
MEXCAPI.ApiKey String Je MEXC-API-sleutel voor geauthenticeerde spot-requests.
MEXCAPI.ApiSecret String Je MEXC-API-secret voor het ondertekenen van requests.
MEXCUserDataStreams.UserStream Boolean Stel in op True om de private user-data-stream in te schakelen voor account-updates, deals en order-gebeurtenissen.

Futures-configuratie

Property Type Beschrijving
MEXCFuturesAPI.ApiKey String Je MEXC-API-sleutel voor geauthenticeerde futures-requests.
MEXCFuturesAPI.ApiSecret String Je MEXC-API-secret voor het ondertekenen van futures-requests.

Tips en opmerkingen

Aparte componenten voor spot en futures

MEXC behandelt Spot en Futures als volledig gescheiden markten met verschillende API-endpoints, naamgevingsconventies voor symbolen (bijvoorbeeld BTCUSDT voor spot vs. BTC_USDT voor futures) en authenticatie-scopes. Gebruik altijd het juiste component voor de markt waarop je je richt.

User-data-streams

Om private accountgebeurtenissen op de Spot-WebSocket te ontvangen (account-updates, deals, order-wijzigingen), moet je MEXCUserDataStreams.UserStream := True instellen voordat je de client activeert. Dit zorgt ervoor dat het component een listen-key opvraagt en de private stream automatisch tot stand brengt.

Orders testen

Gebruik de TestNewOrder-methode op de Spot-REST-API om orderparameters te valideren zonder de order daadwerkelijk te plaatsen. Dit is handig om te verifiëren dat je parameters voor symbool, side, type en hoeveelheid correct zijn geformatteerd voordat je echte fondsen inzet.

Naamgevingsconventies voor symbolen

Let op de verschillende symboolformaten tussen de twee markten. Spot gebruikt aaneengeschreven paren zoals BTCUSDT, terwijl Futures paren met een underscore gebruikt zoals BTC_USDT. Het verkeerde formaat gebruiken leidt tot "symbol not found"-fouten.

Rate limits

MEXC handhaaft rate-limits op zowel REST- als WebSocket-API's. REST-endpoints staan doorgaans een vast aantal requests per minuut toe. Als je de limiet overschrijdt, krijg je een 429-statuscode terug. Implementeer passende backoff-logica of gebruik WebSocket-subscriptions voor data die vaak verandert.

Tip: Geef voor hoogfrequente monitoring de voorkeur aan WebSocket-subscriptions boven het pollen van REST-endpoints. Subscriptions leveren data in realtime met lagere latentie en tellen niet mee voor de REST-rate-limits.