API MEXC

MEXC ist eine globale Kryptowährungsbörse, die Streaming-Markt- und Kontodaten über sichere WebSocket-Verbindungen bereitstellt.

 

Die WebSocket-Spot-API folgt den in der Dokumentation Market Streams und User Data Streams veröffentlichten Spezifikationen. Marktkanäle werden als Protocol-Buffers-Frames geliefert, während private Streams JSON verwenden. Die Komponente TsgcWSAPI_MEXC verwaltet den Verbindungslebenszyklus, die Authentifizierung und die Listen-Key-Wartung, sodass sich Anwendungen auf die Verarbeitung der gepushten Daten konzentrieren können.

 

Zusätzlich zum Streaming über WebSockets stellt das Toolkit auch die vollständige Spot-HTTP-API bereit. Die Komponente TsgcHTTP_API_MEXC_Spot (Unit sgcHTTP_API_MEXC) kapselt jeden offiziellen REST-Endpunkt, sodass Anwendungen Marktdaten abfragen oder mit signierten Anfragen handeln können.

 

Komponentenkonfiguration

Der Basis-WebSocket-Endpunkt ist wss://wbs-api.mexc.com/ws. Wenn MEXCUserDataStreams.UserStream aktiviert ist und ein gültiger API-Schlüssel angegeben wird, fordert die Komponente automatisch einen Listen-Key an und hängt ihn an die Verbindungs-URL an.

 

Platzieren Sie eine TsgcWebSocketClient- und eine TsgcWSAPI_MEXC-Komponente auf dem Formular (oder erstellen Sie sie im Code), weisen Sie der API-Komponente die Client-Instanz zu und aktivieren Sie den Client, um die Sitzung zu 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;

 

Properties

 

Ereignisse

 

Das folgende Beispiel demonstriert, wie ein Trade-Frame decodiert wird:

 

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-Abonnementmethoden

Die Komponente stellt Helfer für jeden öffentlichen Spot-Kanal bereit. Rufen Sie die Subscribe*-Methode auf, um mit dem Streaming von Daten zu beginnen, und das entsprechende UnSubscribe*, um es zu stoppen.

 

Öffentliche Kanäle

Method Parameter Beschreibung
SubscribeTrade Symbol, Interval (ms) Aggregierte Handelsausführungen, übermittelt als Protobuf-publicdeals.
SubscribeKline Symbol, Interval Candlestick-Updates für konfigurierbare Intervalle (1 Minute bis 1 Monat).
SubscribeDiffDepth Symbol, Interval (ms) Inkrementelle Orderbuch-Tiefendeltas für die lokale Buchpflege.
SubscribeBookDepth Symbol, Levels Periodische Snapshots des Limit-Orderbuchs mit der angeforderten Tiefe (Standard 5).
SubscribeBookTicker Symbol, Interval (ms) Best-Bid/Ask-Aktualisierungen für ein einzelnes Handelspaar.
SubscribeBookTickerBatch UTC-Flag Aggregierte Book-Ticker-Aktualisierungen für mehrere Symbole.
SubscribeMiniTickers UTC-Flag Rollende 24h-Mini-Ticker-Statistiken für alle aktiven Instrumente.
SubscribeMiniTicker Symbol, UTC-Flag Mini-Ticker für ein einzelnes Symbol.

 

Private Kanäle

Private Topics erfordern einen gültigen API-Schlüssel. Die Komponente abonniert mithilfe des aktiven Listen-Keys und erneuert ihn periodisch.

 

Method Beschreibung
SubscribeAccountUpdate Änderungen von Kontostand und Position.
SubscribeAccountDeals Ausführungsberichte für ausgeführte Orders.
SubscribeAccountOrders Aktualisierungen des Order-Lebenszyklus (neu, storniert, abgelehnt usw.).

 

Verwenden Sie die entsprechenden UnSubscribe*-Methoden, um einen Stream zu beenden. Die Komponente sendet automatisch PING-Befehle und validiert das zurückgegebene PONG, um die Konnektivität zu überwachen.

 

 

Öffentliche REST-Endpunkte

Öffentlich verfügbare REST-Methoden.

 

Method Beschreibung
Ping Konnektivitätsprüfung, die /api/v3/ping aufruft und True zurückgibt, wenn die Börse mit einem leeren Objekt antwortet.
GetServerTime Ruft den aktuellen Börsen-Zeitstempel von /api/v3/time ab.
GetExchangeInformation Gibt Handelsregeln und Symbol-Metadaten von /api/v3/exchangeInfo zurück.
GetOrderBook Lädt Orderbuch-Snapshots von /api/v3/depth herunter; setzen Sie den optionalen Parameter limit, um die Anzahl der Ebenen zu steuern (Standard 100).
GetTrades Ruft kürzliche öffentliche Trades von /api/v3/trades mit einem optionalen limit ab (Standard 100).
GetHistoricalTrades Liefert historische Handelsdaten mit optionalen limit- und fromId-Filtern.
GetAggregateTrades Gibt komprimierte/aggregierte Trades über /api/v3/aggTrades zurück und unterstützt optionale Filter limit, fromId, startTime und endTime.
GetKlines Lädt Candlesticks von /api/v3/klines herunter, unterstützt Zeitbereichs- und Limit-Filter.
GetAveragePrice Gibt den aktuellen gewichteten Durchschnittspreis von /api/v3/avgPrice zurück.
Get24hrTicker Ruft 24-Stunden-Ticker-Statistiken für ein oder alle Symbole über /api/v3/ticker/24hr ab.
GetPriceTicker Ruft den neuesten Preis über /api/v3/ticker/price ab; übergeben Sie ein leeres Symbol, um Preise für jedes Handelspaar abzurufen.
GetBookTicker Ruft die besten Bid-/Ask-Quotes von /api/v3/ticker/bookTicker ab, mit Unterstützung für Einzel-Symbol- oder Full-Exchange-Requests.

 

Private REST-Endpunkte

Private Endpunkte erfordern gültige API Keys und einen signierten Query-String. Die Komponente hängt automatisch den Timestamp, recvWindow und die HMAC-Signatur an.

 

Method Beschreibung
GetAccountInformation Gibt Guthaben und Berechtigungen von /api/v3/account zurück.
GetOpenOrders Listet aktuelle offene Orders auf (optional nach Symbol gefiltert).
GetAllOrders Ruft historische Orders mit optionalen Zeit- und Limit-Filtern ab.
GetOrder Fragt den Status einer bestimmten Order ab, indem entweder orderId oder origClientOrderId angegeben wird.
GetMyTrades Listet private Trade-Ausführungen mit optionalen Filtern limit, fromId, startTime und endTime auf.
NewOrder Platziert eine Live-Order auf /api/v3/order (market, limit, stop usw.) mit optionalem timeInForce, quantity, quoteOrderQty, price, newClientOrderId, stopPrice, icebergQty und zusätzlichen Parametern.
TestNewOrder Sendet eine reine Validierungsanfrage an /api/v3/order/test und akzeptiert denselben Parametersatz wie NewOrder.
CancelOrder Storniert eine bestimmte Order über /api/v3/order mithilfe von orderId oder origClientOrderId.
CancelAllOrders Storniert alle offenen Orders für ein Symbol gebündelt über /api/v3/openOrders.
GetSubAccounts Listet verwaltete Unterkonten auf (/api/v3/sub-account/list).
GetSubAccountAssets Gibt die Guthaben für ein bestimmtes Unterkonto zurück.
TransferSubAccount Überträgt Vermögenswerte zwischen Sub-Accounts über /api/v3/sub-account/transfer; geben Sie den Betrag und optional den Übertragungs-type an.
GetDepositAddress Fordert Einzahlungsadressen mit einem optionalen network-Filter an.
GetDepositHistory Ruft Einzahlungsdatensätze mit optionalen Filtern für coin, status, startTime und endTime ab.
GetWithdrawHistory Gibt den Abhebungsverlauf gefiltert nach coin, status und optionalem Zeitbereich zurück.
Withdraw Übermittelt eine Abhebungsanfrage über /api/v3/capital/withdraw/apply, einschließlich der obligatorischen Parameter coin, address und amount sowie der optionalen Parameter network, addressTag, withdrawOrderId und zusätzlicher Parameter.
BatchOrders Übermittelt Batch-Orders für mehrere Symbole in einer einzigen Anfrage.
GetTradeFee Ruft die Handelsgebührenrate für ein bestimmtes Symbol ab.
GetDepositHistory Ruft Einzahlungsdatensätze mit optionalen Filtern für coin, status, startTime und endTime ab.
CancelWithdraw Storniert eine ausstehende Auszahlungsanfrage anhand der Auszahlungs-ID.
CreateInternalTransfer Vermögenswerte intern zwischen Konten übertragen.
GetTransferHistory Den Verlauf interner Übertragungen zwischen Konten abrufen.