API MEXC

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.

 

Componentconfiguratie

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;

 

Eigenschappen

 

Gebeurtenissen

 

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;

 

WebSocket-abonnementsmethoden

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.

 

Openbare kanalen

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é channels

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.

 

 

Publieke REST-eindpunten

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é REST-eindpunten

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.