API MEXC

MEXC to globalna giełda kryptowalut udostępniająca dane rynkowe i konta w trybie strumieniowym za pośrednictwem bezpiecznych połączeń WebSocket.

 

WebSocket Spot API jest zgodne ze specyfikacjami opublikowanymi w dokumentacji Market Streams oraz User Data Streams. Kanały rynkowe są dostarczane jako ramki Protocol Buffers, podczas gdy prywatne strumienie używają formatu JSON. Komponent TsgcWSAPI_MEXC zarządza cyklem życia połączenia, uwierzytelnianiem oraz utrzymaniem klucza nasłuchu, dzięki czemu aplikacje mogą skupić się na przetwarzaniu przychodzących danych.

 

Oprócz strumieniowania przez WebSockets, zestaw narzędzi udostępnia również kompletne Spot HTTP API. Komponent TsgcHTTP_API_MEXC_Spot (jednostka sgcHTTP_API_MEXC) opakowuje każdy oficjalny punkt końcowy REST, umożliwiając aplikacjom pobieranie danych rynkowych lub handel z użyciem podpisanych żądań.

 

Konfiguracja komponentu

Podstawowy punkt końcowy WebSocket to wss://wbs-api.mexc.com/ws. Gdy MEXCUserDataStreams.UserStream jest włączony i podano prawidłowy klucz API, komponent automatycznie żąda klucza nasłuchiwania i dołącza go do URL połączenia.

 

Należy umieścić komponenty TsgcWebSocketClient i TsgcWSAPI_MEXC na formularzu (lub utworzyć je w kodzie), przypisać instancję klienta do komponentu API i aktywować klienta, aby rozpocząć sesję.

 

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;

 

Właściwości

 

Zdarzenia

 

Poniższy przykład pokazuje, jak zdekodować ramkę transakcji:

 

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;

 

Metody subskrypcji WebSocket

Komponent udostępnia funkcje pomocnicze dla każdego publicznego kanału Spot. Należy wywołać metodę Subscribe*, aby rozpocząć strumieniowanie danych, oraz odpowiednią metodę UnSubscribe*, aby je zatrzymać.

 

Kanały publiczne

Metoda Parametry Opis
SubscribeTrade Symbol, interwał (ms) Zagregowane realizacje transakcji dostarczane jako Protobuf publicdeals.
SubscribeKline Symbol, interwał Aktualizacje świec dla konfigurowalnych interwałów (od 1 minuty do 1 miesiąca).
SubscribeDiffDepth Symbol, interwał (ms) Przyrostowe delta głębokości arkusza zleceń do lokalnej obsługi księgi.
SubscribeBookDepth Symbol, Levels Cykliczne migawki arkusza zleceń z limitem z żądaną głębokością (domyślnie 5).
SubscribeBookTicker Symbol, interwał (ms) Aktualizacje najlepszej oferty kupna/sprzedaży dla pojedynczej pary handlowej.
SubscribeBookTickerBatch Flaga UTC Zagregowane aktualizacje tickera księgi zleceń dla wielu symboli.
SubscribeMiniTickers Flaga UTC Statystyki miniaturowych tikerów krocząco za 24 godziny dla wszystkich aktywnych instrumentów.
SubscribeMiniTicker Symbol, flaga UTC Mini ticker dla pojedynczego symbolu.

 

Kanały prywatne

Tematy prywatne wymagają ważnego klucza API. Komponent subskrybuje przy użyciu aktywnego klucza nasłuchiwania i odnawia go cyklicznie.

 

Metoda Opis
SubscribeAccountUpdate Zmiany salda konta i pozycji.
SubscribeAccountDeals Raporty z realizacji zleceń wypełnionych.
SubscribeAccountOrders Aktualizacje cyklu życia zlecenia (nowe, anulowane, odrzucone itp.).

 

Należy używać odpowiednich metod UnSubscribe* w celu zakończenia strumienia. Składnik automatycznie wysyła polecenia PING i sprawdza poprawność zwróconych odpowiedzi PONG w celu monitorowania łączności.

 

 

Publiczne endpointy REST

Publicznie dostępne metody REST.

 

Metoda Opis
Ping Sprawdzenie łączności wywołujące /api/v3/ping, które zwraca True, gdy giełda odpowie pustym obiektem.
GetServerTime Pobiera aktualny znacznik czasu giełdy z punktu końcowego /api/v3/time.
GetExchangeInformation Zwraca reguły handlowe i metadane symbolu z /api/v3/exchangeInfo.
GetOrderBook Pobiera migawki księgi zleceń z punktu końcowego /api/v3/depth; opcjonalny parametr limit pozwala kontrolować liczbę poziomów (domyślnie 100).
GetTrades Pobiera ostatnie transakcje publiczne z /api/v3/trades z opcjonalnym limitem (domyślnie 100).
GetHistoricalTrades Dostarcza historyczne dane transakcji z opcjonalnymi filtrami limit i fromId.
GetAggregateTrades Zwraca skompresowane/zagregowane transakcje przez /api/v3/aggTrades z obsługą opcjonalnych filtrów limit, fromId, startTime i endTime.
GetKlines Pobiera świece z /api/v3/klines obsługując filtry zakresu czasu i limitu.
GetAveragePrice Zwraca bieżącą ważoną średnią cenę z punktu końcowego /api/v3/avgPrice.
Get24hrTicker Pobiera 24-godzinne statystyki ticker dla jednego lub wszystkich symboli za pośrednictwem /api/v3/ticker/24hr.
GetPriceTicker Pobiera najnowszą cenę za pomocą /api/v3/ticker/price; podanie pustego symbolu skutkuje pobraniem cen dla wszystkich par handlowych.
GetBookTicker Pobiera najlepsze oferty kupna/sprzedaży z /api/v3/ticker/bookTicker z obsługą żądań dla pojedynczego symbolu lub całej giełdy.

 

Prywatne punkty końcowe REST

Prywatne endpointy wymagają prawidłowych kluczy API i podpisanego ciągu zapytania. Komponent automatycznie dołącza znacznik czasu, recvWindow oraz podpis HMAC.

 

Metoda Opis
GetAccountInformation Zwraca salda i uprawnienia z /api/v3/account.
GetOpenOrders Wyświetla bieżące otwarte zlecenia (opcjonalnie filtrowane według symbolu).
GetAllOrders Pobiera historyczne zlecenia z opcjonalnymi filtrami czasu i limitu.
GetOrder Pobiera status konkretnego zlecenia, podając orderId lub origClientOrderId.
GetMyTrades Wyświetla prywatne realizacje transakcji z opcjonalnymi filtrami limit, fromId, startTime i endTime.
NewOrder Składa aktywne zlecenie na /api/v3/order (rynkowe, z limitem, stop itp.) z opcjonalnymi parametrami timeInForce, quantity, quoteOrderQty, price, newClientOrderId, stopPrice, icebergQty i dodatkowymi parametrami.
TestNewOrder Wysyła żądanie wyłącznie weryfikacyjne do /api/v3/order/test, przyjmując ten sam zestaw parametrów co NewOrder.
CancelOrder Anuluje konkretne zlecenie w /api/v3/order używając orderId lub origClientOrderId.
CancelAllOrders Masowo anuluje wszystkie otwarte zlecenia dla danego symbolu przez /api/v3/openOrders.
GetSubAccounts Wyświetla zarządzane konta podrzędne (/api/v3/sub-account/list).
GetSubAccountAssets Zwraca salda dla określonego subkonta.
TransferSubAccount Transferuje aktywa między subkontami przez /api/v3/sub-account/transfer; należy podać kwotę i opcjonalnie typ transferu.
GetDepositAddress Pobiera adresy depozytów z opcjonalnym filtrem sieci.
GetDepositHistory Pobiera rekordy depozytów z opcjonalnymi filtrami coin, status, startTime i endTime.
GetWithdrawHistory Zwraca historię wypłat filtrowaną według waluty, statusu i opcjonalnego zakresu czasowego.
Wypłata Przesyła żądanie wypłaty przez /api/v3/capital/withdraw/apply, zawierające wymagane pola coin, address i amount, a także opcjonalne network, addressTag, withdrawOrderId i dodatkowe parametry.
BatchOrders Złóż zlecenia wsadowe dla wielu symboli w jednym żądaniu.
GetTradeFee Pobierz stawkę opłaty transakcyjnej dla określonego symbolu.
GetDepositHistory Pobiera rekordy depozytów z opcjonalnymi filtrami coin, status, startTime i endTime.
CancelWithdraw Anuluj oczekujące żądanie wypłaty według identyfikatora wypłaty.
CreateInternalTransfer Transferuj aktywa między kontami wewnętrznie.
GetTransferHistory Pobierz historię wewnętrznych transferów między kontami.