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.
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;
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;
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 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. |
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 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. |