MEXC is een wereldwijde cryptovalutabeurs die markt- en accountgegevens in realtime aanbiedt via beveiligde WebSocket-verbindingen.
De WebSocket Spot API volgt de specificaties gepubliceerd in de documentatie Market Streams en User Data Streams. Marktkanalen worden bezorgd als Protocol Buffers-frames, terwijl privéstreams JSON gebruiken. De component TsgcWSAPI_MEXC beheert de verbindingslevenscyclus, verificatie en beheer van luistersleutels, zodat toepassingen zich kunnen concentreren op het verwerken van de gepushte gegevens.
Naast streaming via WebSockets biedt de toolkit ook de volledige Spot HTTP API. Het component TsgcHTTP_API_MEXC_Spot (unit sgcHTTP_API_MEXC) omhult elk officieel REST-eindpunt zodat applicaties marktgegevens kunnen opvragen of handelen met ondertekende verzoeken.
Het basis WebSocket-eindpunt is wss://wbs-api.mexc.com/ws. Wanneer MEXCUserDataStreams.UserStream is ingeschakeld en een geldige API-sleutel is opgegeven, vraagt de component automatisch een luistersleutel op en voegt deze toe aan de verbindings-URL.
Zet een TsgcWebSocketClient en een TsgcWSAPI_MEXC component op het formulier (of maak ze in code aan), wijs de clientinstantie toe aan de API-component en activeer de client om de sessie te starten.
var
WSClient: TsgcWebSocketClient;
MEXC: TsgcWSAPI_MEXC;
begin
WSClient := TsgcWebSocketClient.Create(nil);
MEXC := TsgcWSAPI_MEXC.Create(nil);
MEXC.Client := WSClient;
MEXC.MEXCAPI.ApiKey := 'YOUR_KEY';
MEXC.MEXCAPI.ApiSecret := 'YOUR_SECRET';
MEXC.MEXCUserDataStreams.UserStream := True;
if WSClient.Connect then
MEXC.SubscribeTrade('BTCUSDT');
end;
Het volgende voorbeeld laat zien hoe een handelsframe te decoderen:
procedure TMainForm.MEXCMarketStream(Sender: TObject;
const aMessage: TsgcMEXCSpotProtoMessage; const aStream: TMemoryStream);
var
Deal: TsgcMEXCDealItem;
begin
if aMessage.MessageType = sgcmxspmtTrade then
begin
Deal := TsgcMEXCTradeStream(aMessage.Trade).PublicDeals.DealsList[0];
Memo1.Lines.Add(Format('Trade %s x %s', [Deal.Quantity, Deal.Price]));
end;
end;
Het component biedt hulpfuncties voor elk openbaar Spot-kanaal. Roep de methode Subscribe* aan om gegevens te streamen en de bijbehorende UnSubscribe* om dit te stoppen.
| Methode | Parameters | Beschrijving |
| SubscribeTrade | Symbool, Interval (ms) | Geaggregeerde handelsuitvoeringen afgeleverd als Protobuf publicdeals. |
| SubscribeKline | Symbool, Interval | Kaarsupdates voor instelbare intervallen (1 minuut tot 1 maand). |
| SubscribeDiffDepth | Symbool, Interval (ms) | Incrementele dieptedelta's van het orderboek voor lokaal onderhoud van het boek. |
| SubscribeBookDepth | Symbol, Levels | Periodieke momentopnamen van het orderboek met de gevraagde diepte (standaard 5). |
| SubscribeBookTicker | Symbool, Interval (ms) | Best bid/ask-updates voor één handelspaar. |
| SubscribeBookTickerBatch | UTC-vlag | Geaggregeerde book ticker-updates voor meerdere symbolen. |
| SubscribeMiniTickers | UTC-vlag | Rollende 24u mini-tickerstatistieken voor alle actieve instrumenten. |
| SubscribeMiniTicker | Symbool, UTC-vlag | Mini-ticker voor een enkel symbool. |
Privé-topics vereisen een geldige API-sleutel. Het component abonneert zich met behulp van de actieve listen key en vernieuwt deze periodiek.
| Methode | Beschrijving |
| SubscribeAccountUpdate | Accountsaldo- en positiewijzigingen. |
| SubscribeAccountDeals | Uitvoeringsrapporten voor gevulde orders. |
| SubscribeAccountOrders | Updates van de levenscyclus van orders (nieuw, geannuleerd, geweigerd, enz.). |
Gebruik de bijbehorende UnSubscribe*-methoden om een stream te beëindigen. Het component verzendt automatisch PING-opdrachten en valideert de geretourneerde PONG om de connectiviteit te bewaken.
Openbaar beschikbare REST-methoden.
| Methode | Beschrijving |
| Ping | Verbindingscontrole die /api/v3/ping aanroept en True retourneert wanneer de beurs antwoordt met een leeg object. |
| GetServerTime | Haalt de huidige tijdstempel van de exchange op via /api/v3/time. |
| GetExchangeInformation | Retourneert handelsregels en symboolmetadata van /api/v3/exchangeInfo. |
| GetOrderBook | Downloadt orderboekmomentopnamen van /api/v3/depth; stel de optionele parameter limit in om het aantal niveaus te bepalen (standaard 100). |
| GetTrades | Haalt recente publieke transacties op van /api/v3/trades met een optionele limiet (standaard 100). |
| GetHistoricalTrades | Biedt historische handelsgegevens met optionele limit- en fromId-filters. |
| GetAggregateTrades | Retourneert gecomprimeerde/geaggregeerde transacties via /api/v3/aggTrades met ondersteuning voor optionele filters limit, fromId, startTime en endTime. |
| GetKlines | Downloadt candlesticks van /api/v3/klines met ondersteuning voor tijdbereik- en limieffilters. |
| GetAveragePrice | Retourneert de huidige gewogen gemiddelde prijs van /api/v3/avgPrice. |
| Get24hrTicker | Haalt 24-uurs tickerstatistieken op voor één of alle symbolen via /api/v3/ticker/24hr. |
| GetPriceTicker | Haalt de nieuwste prijs op via /api/v3/ticker/price; geef een leeg symbool door om prijzen voor elk handelspaar op te halen. |
| GetBookTicker | Haalt beste bied-/vraagprijzen op van /api/v3/ticker/bookTicker met ondersteuning voor aanvragen voor één symbool of de volledige exchange. |
Privé-eindpunten vereisen geldige API-sleutels en een ondertekende querystring. De component voegt automatisch het tijdstempel, recvWindow en HMAC-handtekening toe.
| Methode | Beschrijving |
| GetAccountInformation | Retourneert saldi en rechten van /api/v3/account. |
| GetOpenOrders | Geeft een overzicht van actuele openstaande orders (optioneel gefilterd op symbool). |
| GetAllOrders | Haalt historische orders op met optionele tijd- en limietfilters. |
| GetOrder | Vraagt de status op van een specifiek order door orderId of origClientOrderId op te geven. |
| GetMyTrades | Toont privéhandelsuitvoeringen met optionele filters voor limit, fromId, startTime en endTime. |
| NewOrder | Plaatst een live order op /api/v3/order (markt, limiet, stop, enz.) met optionele parameters timeInForce, quantity, quoteOrderQty, price, newClientOrderId, stopPrice, icebergQty en extra parameters. |
| TestNewOrder | Verzendt een validatie-enkel verzoek naar /api/v3/order/test waarbij dezelfde parameterreeks als NewOrder wordt geaccepteerd. |
| CancelOrder | Annuleert een specifieke order op /api/v3/order met behulp van orderId of origClientOrderId. |
| CancelAllOrders | Annuleert in bulk alle openstaande orders voor een symbool via /api/v3/openOrders. |
| GetSubAccounts | Geeft beheerde subaccounts weer (/api/v3/sub-account/list). |
| GetSubAccountAssets | Retourneert saldi voor een specifiek subaccount. |
| TransferSubAccount | Overboekt activa tussen subaccounts via /api/v3/sub-account/transfer; geef het bedrag en optioneel het overdrachtstype op. |
| GetDepositAddress | Requests deposit addresses with an optional network filter. |
| GetDepositHistory | Haalt stortingsrecords op met optionele filters voor coin, status, startTime en endTime. |
| GetWithdrawHistory | Retourneert opnameschiedenis gefilterd op munt, status en optioneel tijdbereik. |
| Opname | Dient een withdrawal-verzoek in via /api/v3/capital/withdraw/apply inclusief de verplichte coin, address en amount plus de optionele network, addressTag, withdrawOrderId en extra parameters. |
| BatchOrders | Dien batchorders in voor meerdere symbolen in één verzoek. |
| GetTradeFee | Haal het handelstarieftarief op voor een specifiek symbool. |
| GetDepositHistory | Haalt stortingsrecords op met optionele filters voor coin, status, startTime en endTime. |
| CancelWithdraw | Annuleer een in behandeling zijnd opnameverzoek op basis van opname-ID. |
| CreateInternalTransfer | Activa intern overdragen tussen rekeningen. |
| GetTransferHistory | Haal de geschiedenis van interne overdrachten tussen accounts op. |