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に付加します。
フォームに TsgcWebSocketClient と TsgcWSAPI_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;
コンポーネントは各パブリック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 メソッド。
| メソッド | 説明 |
| 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 | オプションのlimitとfromIdフィルターを使用した過去の取引データを提供します。 |
| GetAggregateTrades | /api/v3/aggTradesを介して圧縮/集約された取引を返します。オプションのlimit、fromId、startTime、endTimeフィルターをサポートします。 |
| 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 から最良の買い/売り気配値を取得します。 |
プライベートエンドポイントには有効な API キーと署名されたクエリ文字列が必要です。コンポーネントはタイムスタンプ、recvWindow、HMAC 署名を自動的に追加します。
| メソッド | 説明 |
| GetAccountInformation | /api/v3/account からの残高と権限を返します。 |
| GetOpenOrders | 現在のオープン注文を一覧表示します(オプションでシンボルでフィルタリング)。 |
| GetAllOrders | オプションの時間制限とフィルターを含む過去の注文を取得します。 |
| GetOrder | orderIdまたはorigClientOrderIdのいずれかを指定して、特定の注文のステータスをクエリします。 |
| GetMyTrades | オプションのlimit、fromId、startTime、endTimeフィルターとともに、プライベートな取引約定を一覧表示します。 |
| NewOrder | /api/v3/order に注文(マーケット、リミット、ストップなど)を発注します。オプションで timeInForce、quantity、quoteOrderQty、price、newClientOrderId、stopPrice、icebergQty、および追加パラメーターが指定できます。 |
| 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 | オプションのcoin、status、startTime、endTimeフィルターを使用して入金記録を取得します。 |
| GetWithdrawHistory | コイン、ステータス、およびオプションの時間範囲でフィルタリングされた出金履歴を返します。 |
| 出金 | 必須のcoin、address、amountに加えて、オプションのnetwork、addressTag、withdrawOrderIdおよび追加パラメータを含めて、/api/v3/capital/withdraw/apply経由で出金リクエストを送信します。 |
| BatchOrders | 1つのリクエストで複数のシンボルのバッチ注文を送信します。 |
| GetTradeFee | 特定のシンボルの取引手数料率を取得します。 |
| GetDepositHistory | オプションのcoin、status、startTime、endTimeフィルターを使用して入金記録を取得します。 |
| CancelWithdraw | 出金 ID によって保留中の出金リクエストをキャンセルします。 |
| CreateInternalTransfer | アカウント間で資産を内部転送します。 |
| GetTransferHistory | アカウント間の内部振替の履歴を取得します。 |