API MEXC Futures

MEXC kontrakty wieczyste i terminowe udostępniają dedykowane API strumieniowania opisane w oficjalnej specyfikacji Futures WebSocket. Komponent TsgcWSAPI_MEXC_Futures hermetyzuje połączenie, uzgadnianie logowania i zarządzanie tematami wymagane do konsumowania danych dotyczących instrumentów pochodnych w czasie rzeczywistym.

 

MEXC utrzymuje również interfejs REST do obrotu instrumentami pochodnymi. Komponent TsgcHTTP_API_MEXC_Futures zawarty w pakiecie sgcHTTP_API_MEXC uzupełnia kanały WebSocket o pomocnicze funkcje HTTP mapowane jeden do jednego na oficjalne punkty końcowe.

 

Konfiguracja komponentu

Punkt końcowy Futures WebSocket to wss://contract.mexc.com/edge. Wiadomości są kodowane jako obiekty JSON, a giełda wymaga okresowych ramek ping/pong, które są obsługiwane automatycznie przez komponent.

 

Aby otrzymywać prywatne powiadomienia (dane zleceń i konta), konieczne jest uwierzytelnienie. Należy ustawić MEXCAPI.ApiKey i MEXCAPI.ApiSecret przed aktywowaniem klienta WebSocket. Gdy dane uwierzytelniające są obecne, komponent podpisuje żądanie logowania (HMAC SHA256) natychmiast po nawiązaniu połączenia gniazda.

 

var
  WSClient: TsgcWebSocketClient;
  Futures: TsgcWSAPI_MEXC_Futures;
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  Futures := TsgcWSAPI_MEXC_Futures.Create(nil);
  Futures.Client := WSClient;
  Futures.MEXCAPI.ApiKey := 'YOUR_KEY';
  Futures.MEXCAPI.ApiSecret := 'YOUR_SECRET';
  if WSClient.Connect then
    Futures.SubscribeDepth('BTC_USDT', True);
end;

 

Właściwości

 

Zdarzenia

 

Poniższy moduł obsługi rejestruje potwierdzenia subskrypcji i wyświetla przychodzące migawki głębokości rynku:

 

procedure TMainForm.MEXCSubscribed(Sender: TObject; const aChannel, aRaw: string);
begin
  Memo1.Lines.Add('Subscribed to ' + aChannel);
end;
procedure TMainForm.MEXCMessage(Sender: TObject; const aChannel, aRaw: string);
begin
  if SameText(aChannel, 'push.depth') then
    Memo1.Lines.Add(aRaw);
end;

 

Metody subskrypcji WebSocket

Każda metoda pomocnicza opakowuje żądanie sub/unsub zgodnie z opisem w oficjalnym API. Do anulowania strumienia należy użyć odpowiadającej metody UnSubscribe*.

 

Metoda Parametry Opis
SubscribeDeal Symbol Transakcje wykonane na kontrakcie (kanał: deal).
SubscribeTickers Globalne statystyki dla wszystkich kontraktów.
SubscribeTicker Symbol Podsumowanie notowań dla pojedynczego instrumentu.
SubscribeDepth Symbol, Compress Przyrostowe aktualizacje arkusza zleceń.
SubscribeDepthFull Symbol, Level Pełne migawki głębokości z konfigurowalną liczbą poziomów (domyślnie 20).
SubscribeKline Symbol, interwał Dane świecowe dla obsługiwanych przedziałów czasowych (Min1, Min5, Min15, Min30, Min60, Hour4, Hour12, Day1, Week1, Month1).
SubscribeFundingRate Symbol Najnowsze ogłoszenia dotyczące stopy finansowania.
SubscribeIndexPrice Symbol Strumień bazowej ceny indeksu.
SubscribeFairPrice Symbol Aktualizacje ceny mark (godziwej) przesyłane przez giełdę.

 

Gdy serwer potwierdzi żądanie, wywoływane jest zdarzenie OnMEXCSubscribed z nazwą kanału (na przykład rs.sub.depth.BTC_USDT). Błędy są przekazywane przez OnMEXCError wraz z komunikatem serwera ułatwiającym diagnostykę.

Kanały prywatne

Kanały prywatne wymagają ważnego klucza API. Komponent uwierzytelnia się automatycznie po podaniu danych uwierzytelniających.

Metoda Opis
SubscribePersonalOrder Osobiste aktualizacje zleceń.
SubscribePersonalOrderDeal Aktualizacje osobistych transakcji (realizacji) zleceń.
SubscribePersonalPosition Aktualizacje pozycji osobistych.
SubscribePersonalPlanOrder Aktualizacje zleceń osobistego planu (wyzwalacza).
SubscribePersonalStopOrder Aktualizacje osobistych zleceń stop.
SubscribePersonalStopPlanOrder Osobiste aktualizacje zleceń stop plan.
SubscribePersonalRiskLimit Aktualizacje osobistego limitu ryzyka.
SubscribePersonalADLLevel Osobiste aktualizacje poziomu ADL (automatyczna delewaryzacja).
SubscribePersonalAsset Aktualizacje zasobów osobistych.

 

 

 

Publiczne endpointy REST

Publicznie dostępne metody REST.

 

Metoda Opis
GetPing Sprawdza dostępność API za pomocą /api/v1/ping.
GetServerTime Zwraca znacznik czasu serwera z /api/v1/time.
GetContracts Dostarcza listę dostępnych kontraktów (/api/v1/contract/detail).
GetDepth Pobiera głębokość księgi zleceń z /api/v1/contract/depth; opcjonalny parametr limit (domyślnie 50) pozwala wybrać liczbę poziomów.
GetDeals Pobiera ostatnie transakcje przy użyciu /api/v1/contract/deals z opcjonalnym parametrem limit (domyślnie 100).
GetKlines Zwraca dane świecowe przez /api/v1/contract/kline z opcjonalnymi filtrami startTime, endTime i limit (domyślnie 200).
GetIndexPrice Pobiera bazową cenę indeksu dla żądanego instrumentu (/api/v1/contract/index_price).
GetFairPrice Zwraca cenę godziwą (mark) dla kontraktu z /api/v1/contract/fair_price.
GetFundingRate Raportuje ostatnią stopę finansowania dla symbolu, korzystając z /api/v1/contract/funding_rate.
GetAllTickers Pobierz wszystkie tickery kontraktów futures z aktualnymi podsumowaniami cen w czasie rzeczywistym.
GetFundingRateHistory Pobierz historyczne rekordy stóp finansowania dla kontraktu.
GetFairPriceKline Pobiera dane świecowe kline dla ceny godziwej (mark price) dla kontraktu.
GetIndexPriceKline Pobierz dane świecowe indeksu cen dla kontraktu.

 

Prywatne punkty końcowe REST

Prywatne punkty końcowe instrumentów pochodnych wymagają poświadczeń API. Komponent automatycznie podpisuje każde żądanie znacznikiem czasu i wartością recvWindow.

 

Zmiana łamiąca zgodność: sygnatury metod PlaceOrder i SetPositionLeverage zostały zmienione, aby odpowiadały punktom końcowym kontraktów opublikowanym przez MEXC, więc aplikacja, która je wywołuje, nie skompiluje się, dopóki nie zostanie zaktualizowana. W metodzie PlaceOrder parametr positionSide został zastąpiony przez openType, a w metodzie SetPositionLeverage parametr marginMode, którego punkt końcowy nie przyjmuje, został zastąpiony przez positionId, openType i positionType. Poprawiono również kilka ścieżek punktów końcowych.

 

Metoda Opis
GetAccountAssets Zwraca salda depozytów zabezpieczających z /api/v1/private/account/assets.
GetPositionList Wyświetla bieżące pozycje przez /api/v1/private/position/list/history_positions.
SetPositionLeverage Aktualizuje dźwignię pozycji przez /api/v1/private/position/change_leverage. Przyjmuje parametry symbol i leverage oraz opcjonalnie positionId, a także openType (1 izolowany, 2 krzyżowy) i positionType (1 długa, 2 krótka), które są wymagane tylko wtedy, gdy pozycja nie jest jeszcze otwarta.
PlaceOrder Składa zlecenie futures na /api/v1/private/order/submit, podając symbol, side, type, openType (1 izolowany, 2 krzyżowy), ilość, która jest przesyłana jako vol, oraz price, wymagany przez punkt końcowy także dla zleceń rynkowych, a ponadto opcjonalny externalOid i dodatkowe parametry.
CancelOrder Anuluje określone zlecenie za pomocą metody /api/v1/private/order/cancel na podstawie parametru orderId lub clientOrderId.
CancelAllOrders Anuluje wszystkie otwarte zlecenia dla symbolu przez /api/v1/private/order/cancel_all.
GetOpenOrders Wyświetla bieżące otwarte zlecenia przez /api/v1/private/order/list/open_orders z opcjonalnym filtrem symbolu.
GetOrderHistory Pobiera historię zleceń (/api/v1/private/order/list/history) z opcjonalnymi parametrami: symbol, zakres czasowy i limit.
GetFundingHistory Zwraca historyczne płatności finansowania z /api/v1/private/account/funding z opcjonalnymi filtrami startTime, endTime oraz limit.
GetOpenPositions Pobierz wszystkie aktualnie otwarte pozycje.
ChangeMargin Zmień kwotę depozytu zabezpieczającego dla pozycji.
GetPositionMode Pobiera bieżący tryb pozycji (tryb jednokierunkowy lub zabezpieczający).
ChangePositionMode Zmień tryb pozycji między trybem jednostronnym a trybem zabezpieczenia.
PlaceBatchOrder Składa wiele zleceń futures w jednym żądaniu wsadowym.
GetOrderDetail Pobierz szczegółowe informacje o konkretnym zleceniu.
GetOrderDealDetails Pobierz szczegóły realizacji/transakcji dla konkretnego zlecenia.
PlaceTriggerOrder Złożenie zlecenia wyzwalającego (plan), które zostanie wykonane po spełnieniu określonych warunków.
CancelTriggerOrder Anuluj określone zlecenie wyzwalające.
CancelAllTriggerOrders Anuluj wszystkie otwarte zlecenia wyzwalające.
GetTriggerOrders Pobierz listę zleceń wyzwalanych (plan).
GetStopOrders Pobierz listę zleceń stop.
CancelStopOrder Anuluj określone zlecenie stop.
CancelAllStopOrders Anuluj wszystkie otwarte zlecenia stop.