API MEXC

MEXC は、セキュアな WebSocket 接続を通じてストリーミングの市場データとアカウントデータを公開するグローバルな暗号通貨取引所です。

 

WebSocket スポット API は マーケットストリームユーザーデータストリームドキュメントで公開されている仕様に従います。マーケットチャンネルは Protocol Buffers フレームとして配信され、プライベートストリームは JSON を使用します。TsgcWSAPI_MEXC コンポーネントは、接続のライフサイクル、認証、listen キーのメンテナンスを管理するため、アプリケーションはプッシュされたデータの処理に集中できます。

 

WebSocket によるストリーミングに加えて、ツールキットは完全な Spot HTTP API も公開しています。TsgcHTTP_API_MEXC_Spot コンポーネント(ユニット sgcHTTP_API_MEXC)は、アプリケーションが市場データを照会したり署名付きリクエストで取引したりできるよう、すべての公式 REST エンドポイントをラップします。

 

コンポーネントの設定

ベースとなるWebSocketエンドポイントはwss://wbs-api.mexc.com/wsです。MEXCUserDataStreams.UserStreamが有効で、有効なAPIキーが提供されている場合、コンポーネントは自動的にlisten keyを要求し、それを接続URLに付加します。

 

フォームに TsgcWebSocketClientTsgcWSAPI_MEXC コンポーネントをドロップし(またはコードで作成し)、クライアントインスタンスを API コンポーネントに割り当て、クライアントをアクティブにしてセッションを開始します。

 

var
  WSClient: TsgcWebSocketClient;
  MEXC: TsgcWSAPI_MEXC;
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  MEXC := TsgcWSAPI_MEXC.Create(nil);
  MEXC.Client := WSClient;
  MEXC.MEXCAPI.ApiKey := 'YOUR_KEY';
  MEXC.MEXCAPI.ApiSecret := 'YOUR_SECRET';
  MEXC.MEXCUserDataStreams.UserStream := True;
  if WSClient.Connect then
    MEXC.SubscribeTrade('BTCUSDT');
end;

 

プロパティ

 

イベント

 

次のサンプルは、トレードフレームをデコードする方法を示しています:

 

procedure TMainForm.MEXCMarketStream(Sender: TObject;
  const aMessage: TsgcMEXCSpotProtoMessage; const aStream: TMemoryStream);
var
  Deal: TsgcMEXCDealItem;
begin
  if aMessage.MessageType = sgcmxspmtTrade then
  begin
    Deal := TsgcMEXCTradeStream(aMessage.Trade).PublicDeals.DealsList[0];
    Memo1.Lines.Add(Format('Trade %s x %s', [Deal.Quantity, Deal.Price]));
  end;
end;

 

WebSocket サブスクリプションメソッド

コンポーネントは各パブリックSpotチャンネルのヘルパーを公開します。Subscribe* メソッドを呼び出してデータのストリーミングを開始し、対応する UnSubscribe* で停止します。

 

パブリックチャンネル

メソッド パラメータ 説明
SubscribeTrade Symbol, Interval (ms) Protobuf publicdeals として配信される集約取引実行。
SubscribeKline Symbol, Interval 設定可能な間隔(1分から1か月)のローソク足更新。
SubscribeDiffDepth Symbol, Interval (ms) ローカルの板管理のための注文板インクリメンタル深度デルタ。
SubscribeBookDepth Symbol, Levels リクエストされた深さ(デフォルト5)での指値板の定期スナップショット。
SubscribeBookTicker Symbol, Interval (ms) 単一の取引ペアの最良ビッド/アスクの更新。
SubscribeBookTickerBatch UTC フラグ 複数銘柄の集約ブックティッカー更新。
SubscribeMiniTickers UTC フラグ すべてのアクティブな銘柄のローリング 24 時間ミニティッカー統計。
SubscribeMiniTicker Symbol, UTC flag 単一シンボルのミニティッカー。

 

プライベートチャンネル

プライベートトピックには有効な API キーが必要です。コンポーネントはアクティブなリッスンキーを使用してサブスクライブし、定期的に更新します。

 

メソッド 説明
SubscribeAccountUpdate 口座残高とポジションの変更。
SubscribeAccountDeals 約定済み注文の約定レポート。
SubscribeAccountOrders 注文ライフサイクルの更新(新規、キャンセル、拒否など)。

 

ストリームを終了するには対応する UnSubscribe* メソッドを使用してください。コンポーネントは自動的に PING コマンドを送信し、返された PONG を検証して接続を監視します。

 

 

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

公開されている REST メソッド。

 

メソッド 説明
Ping /api/v3/pingを呼び出し、取引所が空のオブジェクトで応答したときにTrueを返す接続チェック。
GetServerTime /api/v3/time から現在の取引所タイムスタンプを取得します。
GetExchangeInformation /api/v3/exchangeInfo から取引ルールとシンボルメタデータを返します。
GetOrderBook /api/v3/depth からオーダーブックのスナップショットをダウンロードします。オプションの limit パラメーターでレベル数を制御します(デフォルト 100)。
GetTrades オプションの limit(デフォルト 100)付きで /api/v3/trades から最近のパブリック取引を取得します。
GetHistoricalTrades オプションのlimitfromIdフィルターを使用した過去の取引データを提供します。
GetAggregateTrades /api/v3/aggTradesを介して圧縮/集約された取引を返します。オプションのlimitfromIdstartTimeendTimeフィルターをサポートします。
GetKlines /api/v3/klines から時間範囲と件数フィルターをサポートするローソク足データをダウンロードします。
GetAveragePrice /api/v3/avgPrice から現在の加重平均価格を返します。
Get24hrTicker /api/v3/ticker/24hr を介して 1 つまたはすべてのシンボルの 24 時間ティッカー統計を取得します。
GetPriceTicker /api/v3/ticker/price を使用して最新の価格を取得します。すべての取引ペアの価格を取得するには空のシンボルを渡してください。
GetBookTicker 単一シンボルまたは全取引所リクエストに対応する /api/v3/ticker/bookTicker から最良の買い/売り気配値を取得します。

 

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

プライベートエンドポイントには有効な API キーと署名されたクエリ文字列が必要です。コンポーネントはタイムスタンプ、recvWindow、HMAC 署名を自動的に追加します。

 

メソッド 説明
GetAccountInformation /api/v3/account からの残高と権限を返します。
GetOpenOrders 現在のオープン注文を一覧表示します(オプションでシンボルでフィルタリング)。
GetAllOrders オプションの時間制限とフィルターを含む過去の注文を取得します。
GetOrder orderIdまたはorigClientOrderIdのいずれかを指定して、特定の注文のステータスをクエリします。
GetMyTrades オプションのlimitfromIdstartTimeendTimeフィルターとともに、プライベートな取引約定を一覧表示します。
NewOrder /api/v3/order に注文(マーケット、リミット、ストップなど)を発注します。オプションで timeInForcequantityquoteOrderQtypricenewClientOrderIdstopPriceicebergQty、および追加パラメーターが指定できます。
TestNewOrder NewOrder と同じパラメーターセットを受け入れる /api/v3/order/test に検証のみのリクエストを送信します。
CancelOrder /api/v3/order の特定の注文を orderId または origClientOrderId でキャンセルします。
CancelAllOrders シンボルのすべてのオープン注文を /api/v3/openOrders 経由で一括キャンセルします。
GetSubAccounts 管理下のサブアカウントを一覧表示します(/api/v3/sub-account/list)。
GetSubAccountAssets 特定のサブアカウントの残高を返します。
TransferSubAccount /api/v3/sub-account/transferを通じてサブアカウント間で資産を振り替えます。金額と、オプションで振替typeを指定します。
GetDepositAddress オプションの network フィルターを使用してデポジットアドレスをリクエストします。
GetDepositHistory オプションのcoinstatusstartTimeendTimeフィルターを使用して入金記録を取得します。
GetWithdrawHistory コインステータス、およびオプションの時間範囲でフィルタリングされた出金履歴を返します。
出金 必須のcoinaddressamountに加えて、オプションのnetworkaddressTagwithdrawOrderIdおよび追加パラメータを含めて、/api/v3/capital/withdraw/apply経由で出金リクエストを送信します。
BatchOrders 1つのリクエストで複数のシンボルのバッチ注文を送信します。
GetTradeFee 特定のシンボルの取引手数料率を取得します。
GetDepositHistory オプションのcoinstatusstartTimeendTimeフィルターを使用して入金記録を取得します。
CancelWithdraw 出金 ID によって保留中の出金リクエストをキャンセルします。
CreateInternalTransfer アカウント間で資産を内部転送します。
GetTransferHistory アカウント間の内部振替の履歴を取得します。