MEXC API の sgcWebSockets 更新

· 機能
MEXC スポット・先物 API の Delphi 向け統合

MEXC は数百のトークンペアにわたるスポット取引と無期限先物契約をサポートするグローバルな暗号資産取引所です。Delphi 開発者は 2 つの専用コンポーネントを通じて MEXC と統合できます。スポット市場向けの TsgcWSAPI_MEXC と先物市場向けの TsgcWSAPI_MEXC_Futures です。各コンポーネントはリアルタイムデータの WebSocket サブスクリプションとオンデマンド照会・注文管理用の REST インターフェースの両方を提供します。この記事では両市場にわたるすべての利用可能なメソッドを詳しく説明します。

目次

アーキテクチャの概要

MEXC はスポット市場と先物市場に対して個別の API サーフェスを提供しています。sgcWebSockets ライブラリでは、これは 2 つの異なるコンポーネントとして反映されています。

両コンポーネントは同じパターンに従います。TsgcWebSocketClient を割り当て、API 認証情報を設定し、WebSocket サブスクリプション用にクライアントをアクティブ化し、同期 HTTP 呼び出しには REST_API にアクセスします。

スポット WebSocket API

スポット WebSocket API はパブリックチャネルを通じてリアルタイム市場データを、プライベートチャネルを通じて口座更新を提供します。各サブスクリプションには対応するアンサブスクライブメソッドがあります。

パブリックチャネル

サブスクライブ アンサブスクライブ 説明
SubscribeTrade UnSubscribeTrade 銘柄のリアルタイム約定情報。
SubscribeKline UnSubscribeKline 銘柄と時間軸のライブローソク足 / ライン更新。
SubscribeDiffDepth UnSubscribeDiffDepth 差分ストリームによる板情報の差分更新。
SubscribeBookDepth UnSubscribeBookDepth 指定レベルでの完全な板情報スナップショット。
SubscribeBookTicker UnSubscribeBookTicker 特定銘柄の最良ビッド / アスク価格と数量。
SubscribeBookTickerBatch UnSubscribeBookTickerBatch 単一ストリームですべての銘柄の最良ビッド / アスク価格。
SubscribeMiniTickers UnSubscribeMiniTickers すべての銘柄の簡潔なティッカーデータ(価格、出来高)。
SubscribeMiniTicker UnSubscribeMiniTicker 特定銘柄の簡潔なティッカーデータ。

プライベートチャネル

プライベートチャネルは認証が必要で、口座アクティビティに関するリアルタイム更新を配信します。MEXCUserDataStreams.UserStream プロパティでユーザーデータストリームを有効にします。

サブスクライブ アンサブスクライブ 説明
SubscribeAccountUpdate UnSubscribeAccountUpdate 変化が発生したときの口座残高とポジションの更新。
SubscribeAccountDeals UnSubscribeAccountDeals 注文が約定したときのリアルタイム通知(取引約定)。
SubscribeAccountOrders UnSubscribeAccountOrders 注文状態の変化(発注済み、部分約定、約定済み、キャンセル済み)。

スポット REST API

スポット REST API は oMEXC.REST_API(型: TsgcHTTP_API_MEXC_Spot)経由でアクセスできます。パブリックエンドポイントは認証不要ですが、プライベートエンドポイントには有効な API キーとシークレットが必要です。

パブリックエンドポイント

メソッド 説明
Ping MEXC API サーバーへの接続をテストします。
GetServerTime 現在の MEXC サーバー時刻を返します。
GetDefaultSymbols デフォルトの取引銘柄リストを返します。
GetExchangeInformation 取引所のルールと銘柄情報(フィルター、精度、状態)を返します。
GetOrderBook 指定した深さで銘柄の板情報(買値と売値)を返します。
GetTrades 銘柄の最近のパブリック取引を返します。
GetAggregateTrades 集約 / 圧縮された取引レコードを返します。
GetKlines 銘柄と時間軸の過去のローソク足データを返します。
GetAveragePrice 銘柄の現在の平均価格を返します。
Get24hrTicker 24 時間ローリングウィンドウの価格変動統計を返します。
GetPriceTicker 1 つまたはすべての銘柄の最新価格を返します。
GetBookTicker 板情報から最良ビッド / アスク価格と数量を返します。

プライベートエンドポイント

メソッド 説明
NewOrder 新規スポット注文を発注します(成行、指値、その他のサポートタイプ)。
TestNewOrder 実際に発注せずに新規注文を検証します(ドライラン)。
CancelOrder 注文 ID で特定の未決注文をキャンセルします。
CancelAllOrders 銘柄のすべての未決注文をキャンセルします。
GetOrder 特定の注文の状態と詳細を返します。
GetOpenOrders 現在未決(未約定)のすべての注文を返します。
GetAllOrders 時間範囲内のすべての注文(未決、約定済み、キャンセル済み)を返します。
GetAccountInformation 口座残高と権限を返します。
GetMyTrades 銘柄の取引履歴を返します。
GetSubAccounts マスターアカウント配下のサブアカウントリストを返します。
GetDepositAddress 特定のコインとネットワークの入金アドレスを返します。
GetWithdrawHistory 出金履歴レコードを返します。
Withdraw 外部アドレスへの出金を開始します。
GetCapitalConfig 資産設定(サポートネットワーク、出金最小 / 最大金額、手数料)を返します。

先物 WebSocket API

先物 WebSocket API は無期限先物契約に固有のリアルタイムデータを提供します。すべてのチャネルはパブリックで認証不要です。各サブスクリプションには対応するアンサブスクライブメソッドがあります。

サブスクライブ アンサブスクライブ 説明
SubscribeDeal UnSubscribeDeal 先物取引 / 約定のリアルタイム情報。
SubscribeTickers UnSubscribeTickers すべての先物コントラクトのティッカーデータ。
SubscribeTicker UnSubscribeTicker 特定の先物コントラクトのティッカーデータ。
SubscribeDepth UnSubscribeDepth 先物の板情報差分更新。
SubscribeDepthFull UnSubscribeDepthFull 先物の完全な板情報スナップショット。
SubscribeKline UnSubscribeKline 先物コントラクトのライブローソク足 / ライン更新。
SubscribeFundingRate UnSubscribeFundingRate 無期限コントラクトのリアルタイム資金調達レート更新。
SubscribeIndexPrice UnSubscribeIndexPrice リアルタイムインデックス価格更新。
SubscribeFairPrice UnSubscribeFairPrice 清算計算に使用されるリアルタイムフェア / マーク価格更新。

先物 REST API

先物 REST API は oMEXCFut.REST_API(型: TsgcHTTP_API_MEXC_Futures)経由でアクセスできます。市場データ、口座管理、ポジション制御、注文操作をカバーします。

Public Endpoints

メソッド 説明
GetPing MEXC 先物 API サーバーへの接続をテストします。
GetServerTime 現在の先物サーバー時刻を返します。
GetContracts 利用可能なすべての先物コントラクトとその仕様のリストを返します。
GetDepth 先物コントラクトの板情報深度を返します。
GetDeals 先物コントラクトの最近のパブリック取引 / 約定履歴を返します。
GetKlines 先物コントラクトの過去のローソク足データを返します。
GetIndexPrice コントラクトの現在のインデックス価格を返します。
GetFairPrice コントラクトの現在のフェア / マーク価格を返します。
GetFundingRate 無期限コントラクトの現在と予測の資金調達レートを返します。

Private Endpoints

メソッド 説明
GetAccountAssets 先物口座の資産残高と証拠金情報を返します。
GetPositionList サイズ、エントリー価格、損益を含むすべての未決先物ポジションを返します。
SetPositionLeverage 特定の先物コントラクトのレバレッジ倍率を設定します。
PlaceOrder 新規先物注文を発注します(成行、指値、その他のサポートタイプ)。
CancelOrder 特定の未決先物注文をキャンセルします。
CancelAllOrders コントラクトのすべての未決先物注文をキャンセルします。
GetOpenOrders 現在未決のすべての先物注文を返します。
GetOrderHistory 過去の先物注文(約定済み、キャンセル済みなど)を返します。
GetFundingHistory 資金調達手数料の支払い履歴を返します。

はじめに — コード例

スポット市場の例

以下の例は MEXC スポット WebSocket に接続し、リアルタイム取引にサブスクライブし、REST 経由で取引所情報を照会し、成行買い注文を発注します。

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;

先物市場の例

この例は MEXC 先物 WebSocket に接続し、先物ティッカーにサブスクライブし、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;
注: スポットと先物は別々の WebSocket 接続と API コンポーネントを使用します。それぞれに個別の TsgcWebSocketClient インスタンスが必要です。

設定リファレンス

スポットの設定

プロパティ 説明
MEXCAPI.ApiKey String 認証済みスポットリクエスト用の MEXC API キー。
MEXCAPI.ApiSecret String リクエスト署名用の MEXC API シークレット。
MEXCUserDataStreams.UserStream Boolean True に設定すると、口座更新、約定、注文イベントのプライベートユーザーデータストリームを有効にします。

先物の設定

プロパティ 説明
MEXCFuturesAPI.ApiKey String 認証済み先物リクエスト用の MEXC API キー。
MEXCFuturesAPI.ApiSecret String 先物リクエスト署名用の MEXC API シークレット。

ヒントと注意事項

スポットと先物の個別コンポーネント

MEXC はスポットと先物を完全に別々の市場として扱い、異なる API エンドポイント、銘柄命名規則(例:スポットでは BTCUSDT、先物では BTC_USDT)、認証スコープを持ちます。対象市場に対して必ず正しいコンポーネントを使用してください。

ユーザーデータストリーム

スポット WebSocket でプライベート口座イベント(口座更新、約定、注文変更)を受信するには、クライアントをアクティブ化する前に MEXCUserDataStreams.UserStream := True を設定する必要があります。これにより、コンポーネントはリスンキーを要求してプライベートストリームを自動的に確立します。

注文テスト

スポット REST API の TestNewOrder メソッドを使用して、実際に注文を発注せずに注文パラメーターを検証します。実際の資金をコミットする前に、銘柄、サイド、タイプ、数量のパラメーターが正しくフォーマットされていることを確認するのに便利です。

銘柄命名規則

2 つの市場間の異なる銘柄形式に注意してください。スポットは BTCUSDT のような連結ペアを使用し、先物は BTC_USDT のようなアンダースコア区切りペアを使用します。間違った形式を使用すると「銘柄が見つかりません」エラーが発生します。

レート制限

MEXC は REST と WebSocket API の両方にレート制限を適用しています。REST エンドポイントは通常、1 分あたり一定数のリクエストを許可します。制限を超えると 429 ステータスコードが返されます。適切なバックオフロジックを実装するか、頻繁に変化するデータには WebSocket サブスクリプションを使用してください。

ヒント: 高頻度モニタリングには、REST エンドポイントのポーリングよりも WebSocket サブスクリプションを優先してください。サブスクリプションはリアルタイムで低レイテンシでデータを配信し、REST レート制限にカウントされません。