Aktualizacja API MEXC w sgcWebSockets

· Funkcje

Integracja API MEXC Spot i Futures w Delphi

MEXC to globalna giełda kryptowalut obsługująca handel spot i wieczyste kontrakty futures na setkach par tokenów. Programiści Delphi mogą integrować się z MEXC przez dwa dedykowane komponenty: TsgcWSAPI_MEXC dla rynku Spot i TsgcWSAPI_MEXC_Futures dla rynku Futures. Każdy komponent zapewnia subskrypcje WebSocket dla danych w czasie rzeczywistym oraz interfejs REST dla zapytań na żądanie i zarządzania zleceniami. Ten artykuł opisuje każdą dostępną metodę dla obu rynków.

Spis treści

Przegląd architektury

MEXC zapewnia odrębne powierzchnie API dla rynków Spot i Futures. W bibliotece sgcWebSockets odzwierciedlają to dwa odrębne komponenty:

Oba komponenty stosują ten sam schemat: przypisz TsgcWebSocketClient, skonfiguruj dane uwierzytelniające API, aktywuj klienta dla subskrypcji WebSocket i uzyskuj dostęp do REST_API dla synchronicznych wywołań HTTP.

API WebSocket Spot

API WebSocket Spot zapewnia dane rynkowe w czasie rzeczywistym przez kanały publiczne i aktualizacje konta przez kanały prywatne. Każda subskrypcja ma odpowiednią metodę anulowania.

Kanały publiczne

Subskrypcja Anulowanie Opis
SubscribeTrade UnSubscribeTrade Realizacje transakcji w czasie rzeczywistym dla symbolu.
SubscribeKline UnSubscribeKline Aktualizacje świec/kline na żywo dla symbolu i interwału.
SubscribeDiffDepth UnSubscribeDiffDepth Przyrostowe aktualizacje głębokości arkusza zleceń (strumień diff).
SubscribeBookDepth UnSubscribeBookDepth Pełne migawki głębokości arkusza zleceń na podanym poziomie.
SubscribeBookTicker UnSubscribeBookTicker Najlepsza cena kupna/sprzedaży i ilość dla określonego symbolu.
SubscribeBookTickerBatch UnSubscribeBookTickerBatch Najlepsze ceny kupna/sprzedaży dla wszystkich symboli w jednym strumieniu.
SubscribeMiniTickers UnSubscribeMiniTickers Skondensowane dane tickera (cena, wolumen) dla wszystkich symboli.
SubscribeMiniTicker UnSubscribeMiniTicker Skondensowane dane tickera dla określonego symbolu.

Kanały prywatne

Kanały prywatne wymagają uwierzytelniania i dostarczają aktualizacji w czasie rzeczywistym o aktywności konta. Włącz strumień danych użytkownika przez właściwość MEXCUserDataStreams.UserStream.

Subskrypcja Anulowanie Opis
SubscribeAccountUpdate UnSubscribeAccountUpdate Aktualizacje salda konta i pozycji przy wystąpieniu zmian.
SubscribeAccountDeals UnSubscribeAccountDeals Powiadomienia w czasie rzeczywistym przy realizacji zleceń (wykonania transakcji).
SubscribeAccountOrders UnSubscribeAccountOrders Zmiany statusu zleceń (złożone, częściowo zrealizowane, zrealizowane, anulowane).

REST API Spot

REST API Spot jest dostępne przez oMEXC.REST_API (typ TsgcHTTP_API_MEXC_Spot). Publiczne punkty końcowe nie wymagają uwierzytelniania; prywatne wymagają ważnego klucza API i sekretu.

Publiczne punkty końcowe

Metoda Opis
Ping Testuje łączność z serwerem API MEXC.
GetServerTime Zwraca bieżący czas serwera MEXC.
GetDefaultSymbols Zwraca listę domyślnych symboli handlowych.
GetExchangeInformation Zwraca reguły handlowe giełdy i informacje o symbolach (filtry, precyzja, status).
GetOrderBook Zwraca arkusz zleceń (kupno i sprzedaż) dla symbolu na podanej głębokości.
GetTrades Zwraca ostatnie publiczne transakcje dla symbolu.
GetAggregateTrades Zwraca zagregowane/skompresowane rekordy transakcji.
GetKlines Zwraca historyczne dane kline/świecowe dla symbolu i interwału.
GetAveragePrice Zwraca bieżącą średnią cenę dla symbolu.
Get24hrTicker Zwraca statystyki zmian cen w kroczącym oknie 24-godzinnym.
GetPriceTicker Zwraca najnowszą cenę dla jednego lub wszystkich symboli.
GetBookTicker Zwraca najlepszą cenę kupna/sprzedaży i ilość z arkusza zleceń.

Prywatne punkty końcowe

Metoda Opis
NewOrder Składa nowe zlecenie spot (rynkowe, z limitem lub inne obsługiwane typy).
TestNewOrder Weryfikuje nowe zlecenie bez faktycznego jego składania (symulacja).
CancelOrder Anuluje określone otwarte zlecenie według identyfikatora.
CancelAllOrders Anuluje wszystkie otwarte zlecenia dla symbolu.
GetOrder Zwraca status i szczegóły określonego zlecenia.
GetOpenOrders Zwraca wszystkie aktualnie otwarte (niezrealizowane) zlecenia.
GetAllOrders Zwraca wszystkie zlecenia (otwarte, zrealizowane, anulowane) w zakresie czasowym.
GetAccountInformation Zwraca salda konta i uprawnienia.
GetMyTrades Zwraca historię transakcji dla symbolu.
GetSubAccounts Zwraca listę podkont w ramach konta głównego.
GetDepositAddress Zwraca adres depozytu dla określonej monety i sieci.
GetWithdrawHistory Zwraca rekordy historii wypłat.
Withdraw Inicjuje wypłatę na zewnętrzny adres.
GetCapitalConfig Zwraca konfigurację kapitału (obsługiwane sieci, minimalne/maksymalne kwoty wypłat, opłaty).

API WebSocket Futures

API WebSocket Futures dostarcza danych w czasie rzeczywistym specyficznych dla wieczystych kontraktów futures. Wszystkie kanały są publiczne i nie wymagają uwierzytelniania. Każda subskrypcja ma odpowiednią metodę anulowania.

Subskrypcja Anulowanie Opis
SubscribeDeal UnSubscribeDeal Realizacje transakcji/dealów futures w czasie rzeczywistym.
SubscribeTickers UnSubscribeTickers Dane tickera dla wszystkich kontraktów futures.
SubscribeTicker UnSubscribeTicker Dane tickera dla określonego kontraktu futures.
SubscribeDepth UnSubscribeDepth Przyrostowe aktualizacje głębokości arkusza zleceń dla futures.
SubscribeDepthFull UnSubscribeDepthFull Pełne migawki głębokości arkusza zleceń dla futures.
SubscribeKline UnSubscribeKline Aktualizacje świec/kline na żywo dla kontraktów futures.
SubscribeFundingRate UnSubscribeFundingRate Aktualizacje stopy finansowania dla wieczystych kontraktów w czasie rzeczywistym.
SubscribeIndexPrice UnSubscribeIndexPrice Aktualizacje ceny indeksu w czasie rzeczywistym.
SubscribeFairPrice UnSubscribeFairPrice Aktualizacje ceny fair/mark używane do obliczeń likwidacji w czasie rzeczywistym.

REST API Futures

REST API Futures jest dostępne przez oMEXCFut.REST_API (typ TsgcHTTP_API_MEXC_Futures). Obejmuje dane rynkowe, zarządzanie kontem, kontrolę pozycji i operacje na zleceniach.

Publiczne punkty końcowe

Metoda Opis
GetPing Testuje łączność z serwerem API MEXC Futures.
GetServerTime Zwraca bieżący czas serwera futures.
GetContracts Zwraca listę wszystkich dostępnych kontraktów futures i ich specyfikacji.
GetDepth Zwraca głębokość arkusza zleceń dla kontraktu futures.
GetDeals Zwraca ostatnią publiczną historię transakcji/dealów dla kontraktu futures.
GetKlines Zwraca historyczne dane kline/świecowe dla kontraktu futures.
GetIndexPrice Zwraca bieżącą cenę indeksu dla kontraktu.
GetFairPrice Zwraca bieżącą cenę fair/mark dla kontraktu.
GetFundingRate Zwraca bieżącą i przewidywaną stopę finansowania dla wieczystego kontraktu.

Prywatne punkty końcowe

Metoda Opis
GetAccountAssets Zwraca salda aktywów konta futures i informacje o depozycie zabezpieczającym.
GetPositionList Zwraca wszystkie otwarte pozycje futures z rozmiarem, ceną wejścia i PnL.
SetPositionLeverage Ustawia mnożnik dźwigni dla określonego kontraktu futures.
PlaceOrder Składa nowe zlecenie futures (rynkowe, z limitem lub inne obsługiwane typy).
CancelOrder Anuluje określone otwarte zlecenie futures.
CancelAllOrders Anuluje wszystkie otwarte zlecenia futures dla kontraktu.
GetOpenOrders Zwraca wszystkie aktualnie otwarte zlecenia futures.
GetOrderHistory Zwraca historyczne zlecenia futures (zrealizowane, anulowane itp.).
GetFundingHistory Zwraca historię opłat finansowania.

Pierwsze kroki — przykłady kodu

Przykład rynku Spot

Poniższy przykład łączy się z WebSocket MEXC Spot, subskrybuje transakcje w czasie rzeczywistym, odpytuje informacje o giełdzie przez REST i składa zlecenie kupna rynkowego.

var
  oClient: TsgcWebSocketClient;
  oMEXC: TsgcWSAPI_MEXC;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  // Create the MEXC Spot API component
  oMEXC := TsgcWSAPI_MEXC.Create(nil);
  oMEXC.Client := oClient;
  // Configure API credentials
  oMEXC.MEXCAPI.ApiKey := 'your_api_key';
  oMEXC.MEXCAPI.ApiSecret := 'your_api_secret';
  // Connect to the WebSocket
  oClient.Active := True;
  // WebSocket: Subscribe to real-time trades for BTCUSDT
  oMEXC.SubscribeTrade('BTCUSDT');
  // REST: Get exchange information
  ShowMessage(oMEXC.REST_API.GetExchangeInformation);
  // REST: Place a market buy order for 0.001 BTC
  ShowMessage(oMEXC.REST_API.NewOrder('BTCUSDT', 'BUY', 'MARKET', '', 0.001));
end;

Przykład rynku Futures

Ten przykład łączy się z WebSocket MEXC Futures, subskrybuje ticker futures i odpytuje dostępne kontrakty przez REST.

var
  oClientFut: TsgcWebSocketClient;
  oMEXCFut: TsgcWSAPI_MEXC_Futures;
begin
  // Create the WebSocket client for futures
  oClientFut := TsgcWebSocketClient.Create(nil);
  // Create the MEXC Futures API component
  oMEXCFut := TsgcWSAPI_MEXC_Futures.Create(nil);
  oMEXCFut.Client := oClientFut;
  // Configure API credentials
  oMEXCFut.MEXCFuturesAPI.ApiKey := 'your_api_key';
  oMEXCFut.MEXCFuturesAPI.ApiSecret := 'your_api_secret';
  // Connect to the WebSocket
  oClientFut.Active := True;
  // WebSocket: Subscribe to futures ticker for BTC_USDT
  oMEXCFut.SubscribeTicker('BTC_USDT');
  // REST: Get all available futures contracts
  ShowMessage(oMEXCFut.REST_API.GetContracts);
end;
Uwaga: Spot i Futures używają oddzielnych połączeń WebSocket i oddzielnych komponentów API. Potrzebujesz osobnej instancji TsgcWebSocketClient dla każdego z nich.

Dokumentacja konfiguracji

Konfiguracja Spot

Właściwość Typ Opis
MEXCAPI.ApiKey String Twój klucz API MEXC do uwierzytelnionych żądań spot.
MEXCAPI.ApiSecret String Twój sekret API MEXC do podpisywania żądań.
MEXCUserDataStreams.UserStream Boolean Ustaw True, aby włączyć prywatny strumień danych użytkownika dla aktualizacji konta, dealów i zdarzeń zleceń.

Konfiguracja Futures

Właściwość Typ Opis
MEXCFuturesAPI.ApiKey String Twój klucz API MEXC do uwierzytelnionych żądań futures.
MEXCFuturesAPI.ApiSecret String Twój sekret API MEXC do podpisywania żądań futures.

Wskazówki i uwagi

Osobne komponenty dla Spot i Futures

MEXC traktuje Spot i Futures jako całkowicie odrębne rynki z różnymi punktami końcowymi API, konwencjami nazewnictwa symboli (np. BTCUSDT dla spot vs. BTC_USDT dla futures) i zakresami uwierzytelniania. Zawsze używaj właściwego komponentu dla docelowego rynku.

Strumienie danych użytkownika

Aby odbierać prywatne zdarzenia konta na WebSocket Spot (aktualizacje konta, deale, zmiany zleceń), musisz ustawić MEXCUserDataStreams.UserStream := True przed aktywacją klienta. Powoduje to, że komponent żąda klucza nasłuchu i automatycznie ustanawia prywatny strumień.

Testowanie zleceń

Użyj metody TestNewOrder w REST API Spot, aby zweryfikować parametry zlecenia bez faktycznego jego składania. Jest to przydatne do sprawdzenia, czy symbol, strona, typ i ilość są poprawnie sformatowane przed zainwestowaniem prawdziwych środków.

Konwencje nazewnictwa symboli

Zwróć uwagę na różne formaty symboli w obu rynkach. Spot używa scalonych par jak BTCUSDT, podczas gdy Futures używa par oddzielonych podkreśleniem jak BTC_USDT. Użycie złego formatu skutkuje błędami "symbol not found".

Limity szybkości

MEXC egzekwuje limity szybkości dla obu API: REST i WebSocket. Punkty końcowe REST zazwyczaj pozwalają na określoną liczbę żądań na minutę. Po przekroczeniu limitu otrzymasz kod statusu 429. Zaimplementuj odpowiednią logikę backoff lub korzystaj z subskrypcji WebSocket dla danych, które często się zmieniają.

Wskazówka: do monitorowania wysokiej częstotliwości preferuj subskrypcje WebSocket zamiast odpytywania punktów końcowych REST. Subskrypcje dostarczają danych w czasie rzeczywistym z niższym opóźnieniem i nie są wliczane do limitów REST.