MEXC の永久および配信契約は、公式の Futures WebSocket 仕様に記載された専用ストリーミング API を公開しています。TsgcWSAPI_MEXC_Futures コンポーネントは、リアルタイムデリバティブデータを消費するために必要な接続、ログインハンドシェイク、トピック管理をカプセル化します。
MEXCはデリバティブ取引用のRESTインターフェイスも維持しています。sgcHTTP_API_MEXCに含まれるTsgcHTTP_API_MEXC_Futuresコンポーネントは、公式エンドポイントと1対1に対応するHTTPヘルパーでWebSocketフィードを補完します。
Futures WebSocket エンドポイントは wss://contract.mexc.com/edge です。メッセージは JSON オブジェクトとしてエンコードされ、取引所はコンポーネントによって自動的に処理される定期的な ping/pong フレームを要求します。
プライベート通知(注文およびアカウントデータ)を受け取るには、認証が必要です。WebSocket クライアントを有効にする前に MEXCAPI.ApiKey と MEXCAPI.ApiSecret を設定してください。認証情報が存在する場合、コンポーネントはソケット接続後すぐにログインリクエスト(HMAC SHA256)に署名します。
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;
次のハンドラーは、サブスクリプションの確認を記録し、受信した板情報スナップショットを出力します:
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;
各ヘルパーは公式 API で説明された sub/unsub リクエストをラップします。ストリームをキャンセルするには対応する UnSubscribe* メソッドを使用してください。
| メソッド | パラメータ | 説明 |
| SubscribeDeal | 銘柄 | 契約で実行された取引(チャンネル: deal)。 |
| SubscribeTickers | – | すべての契約のグローバルなティッカー統計です。 |
| SubscribeTicker | 銘柄 | 単一銘柄のティッカーサマリー。 |
| SubscribeDepth | Symbol, Compress | 増分オーダーブックの更新 |
| SubscribeDepthFull | Symbol, Level | 設定可能なレベル数(デフォルト 20)での完全な深さスナップショット。 |
| SubscribeKline | Symbol, Interval | サポートされているタイムフレームのローソク足データ(Min1、Min5、Min15、Min30、Min60、Hour4、Hour12、Day1、Week1、Month1)。 |
| SubscribeFundingRate | 銘柄 | 最新のファンディングレートのお知らせ。 |
| SubscribeIndexPrice | 銘柄 | 原資産の価格ストリーム。 |
| SubscribeFairPrice | 銘柄 | 取引所がプッシュするマーク (フェア) 価格の更新。 |
サーバーがリクエストを確認すると、チャネル名(例: rs.sub.depth.BTC_USDT)とともに OnMEXCSubscribed イベントが発生します。エラーはトラブルシューティング用のサーバーメッセージを含む OnMEXCError を通じて転送されます。
プライベートチャネルには有効なAPIキーが必要です。資格情報が提供されると、コンポーネントは自動的に認証します。
| メソッド | 説明 |
| SubscribePersonalOrder | 個人の注文更新。 |
| SubscribePersonalOrderDeal | 個人注文の約定(フィル)更新。 |
| SubscribePersonalPosition | 個人のポジション更新。 |
| SubscribePersonalPlanOrder | 個人プランの(トリガー)注文のアップデート。 |
| SubscribePersonalStopOrder | 個人の逆指値注文の更新。 |
| SubscribePersonalStopPlanOrder | 個人の停止プラン注文の更新。 |
| SubscribePersonalRiskLimit | 個人リスク制限の更新。 |
| SubscribePersonalADLLevel | 個人 ADL (自動デレバレッジ) レベルの更新。 |
| SubscribePersonalAsset | 個人資産の更新。 |
公開されている REST メソッド。
| メソッド | 説明 |
| GetPing | /api/v1/ping で API の到達可能性を確認します。 |
| GetServerTime | /api/v1/timeからサーバーのタイムスタンプを返します。 |
| GetContracts | 利用可能なコントラクトのリストを提供します(/api/v1/contract/detail)。 |
| GetDepth | /api/v1/contract/depth から板情報をダウンロードします。オプションの limit パラメータ(デフォルト 50)で価格レベルの数を選択できます。 |
| GetDeals | /api/v1/contract/deals を使用して、オプションの limit(デフォルト 100)付きで最近の取引を取得します。 |
| GetKlines | オプションの startTime、endTime、limit フィルター(デフォルト 200)付きで /api/v1/contract/kline を通じてローソク足データを返します。 |
| GetIndexPrice | 要求したシンボルの基礎となるインデックス価格を取得します(/api/v1/contract/indexPrice)。 |
| GetFairPrice | /api/v1/contract/fairPrice からコントラクトの公正(マーク)価格を返します。 |
| GetFundingRate | /api/v1/contract/fundingRate を使用して、シンボルの最新のファンディングレートを報告します。 |
| GetAllTickers | リアルタイム価格サマリーを含むすべての先物コントラクトのティッカーを取得します。 |
| GetFundingRateHistory | コントラクトの過去のファンディングレートレコードを取得します。 |
| GetFairPriceKline | 契約の公正(マーク)価格のローソク足データを取得します。 |
| GetIndexPriceKline | 契約のインデックス価格Kline/ローソク足データを取得します。 |
プライベートデリバティブエンドポイントには API 認証情報が必要です。コンポーネントはタイムスタンプと recvWindow を使用して各リクエストに自動的に署名します。
| メソッド | 説明 |
| GetAccountAssets | /api/v1/private/account/assetsからマージン残高を返します。 |
| GetPositionList | /api/v1/private/position/list を通じて現在のポジションを一覧表示します。オプションでシンボルによってフィルタリングできます。 |
| SetPositionLeverage | シンボルのレバレッジと、指定されている場合はマージンモードを更新します。 |
| PlaceOrder | /api/v1/private/order で先物注文を発注します。symbol、side、positionSide、type、quantity を指定し、オプションで price、clientOrderId、追加パラメータを指定します。 |
| CancelOrder | /api/v1/private/order/cancelを使用して、orderIdまたはclientOrderIdで特定の注文をキャンセルします。 |
| CancelAllOrders | /api/v1/private/order/cancel-all を通じてシンボルのすべてのオープン注文をキャンセルします。 |
| GetOpenOrders | オプションのシンボルフィルター付きで /api/v1/private/order/list/open を通じて現在のオープン注文を一覧表示します。 |
| GetOrderHistory | オプションの銘柄、時間範囲、件数パラメーターを指定して注文履歴を取得します(/api/v1/private/order/list/history)。 |
| GetFundingHistory | /api/v1/private/account/fundingから過去のfunding支払いを、オプションのstartTime、endTime、limitフィルターとともに返します。 |
| GetOpenPositions | 現在開いているすべてのポジションを取得します。 |
| ChangeMargin | ポジションのマージン額を変更します。 |
| GetPositionMode | 現在のポジションモード(一方向モードまたはヘッジモード)を取得します。 |
| ChangePositionMode | 一方向モードとヘッジモード間でポジションモードを変更します。 |
| PlaceBatchOrder | 単一のバッチリクエストで複数の先物注文を発注します。 |
| GetOrderDetail | 特定の注文の詳細情報を取得します。 |
| GetOrderDealDetails | 特定の注文の約定/取引の詳細を取得します。 |
| PlaceTriggerOrder | 条件が満たされたときに実行されるトリガー(プラン)注文を発注します。 |
| CancelTriggerOrder | 特定のトリガー注文をキャンセルします。 |
| CancelAllTriggerOrders | すべてのオープントリガー注文をキャンセルします。 |
| GetTriggerOrders | トリガー(プラン)注文のリストを取得します。 |
| GetStopOrders | ストップ注文の一覧を取得します。 |
| CancelStopOrder | 特定のストップ注文をキャンセルします。 |
| CancelAllStopOrders | すべてのオープンストップ注文をキャンセルします。 |