mcpField
B
bingx-spot-ws-market

bingx-spot-ws-market

github.com/bingx-apiその他19145 回インストール1 週間前に更新
リポジトリ

bingx-spot-ws-market について

BingXの現物市場データをWebSocketで購読するエージェント向けスキルです。認証不要の取引、ローソク足、板情報、価格データのチャンネルと、パラメーター検証や接続処理を扱います。

主な機能

  1. 01リアルタイム取引ストリーム
  2. 02OHLCVローソク足更新
  3. 03オーダーブックの深度データ
  4. 04ティッカーと最新価格データ
  5. 05銘柄と期間パラメーターの検証
  6. 06GZIP展開とハートビート処理

活用シーン

  1. 01現物取引のリアルタイム監視
  2. 02ローソク足更新の追跡
  3. 03オーダーブック変化の確認
  4. 04現在価格の統計取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bingx-api/api-ai-skills --skill bingx-spot-ws-market

インストール後、Claude Code で/bingx-spot-ws-marketを入力して読み込まれたか確認します。

同梱ファイルapi-reference.md

詳細

BingX スポット WebSocket 市場データ

WebSocket 経由で BingX スポット取引のリアルタイム市場データストリームを利用できます。認証は不要です。

WebSocket エンドポイント: wss://open-api-ws.bingx.com/market

クイックリファレンス

チャンネルdataType の形式説明プッシュ頻度
取引{symbol}@trade最新の取引詳細リアルタイム
Kライン{symbol}@kline_{interval}OHLCV ローソク足更新時
板情報{symbol}@depth{level}制限付きオーダーブックの板情報300ms ごと
24時間ティッカー{symbol}@ticker24時間の価格変動統計1s ごと
最終価格{symbol}@lastPrice最新の取引価格リアルタイム
ブックティッカー{symbol}@bookTicker最良買値/最良売値と数量リアルタイム
差分板情報{symbol}@incrDepth差分および全板情報(1000レベル)500ms ごと

パラメーター

共通パラメーター
  • symbol:BASE-USDT 形式の取引ペア(例:BTC-USDT、ETH-USDT、SOL-USDT)
列挙値
  • depth level:5 | 10 | 20 | 50 | 100(デフォルトは 20)
  • kline interval:1min | 3min | 5min | 15min | 30min | 1h | 2h | 4h | 6h | 8h | 12h | 1d | 3d | 1w | 1M

注: スポットの K ライン間隔では min サフィックス(例:1min)を使用します。スワップでは m(例:1m)を使用する点が異なります。

パラメーターの検証ルール
  • symbol:^[A-Z0-9]+-[A-Z]+$ に一致する必要があります。最大 20 文字です(例:BTC-USDT)
  • level:5、10、20、50、100 のいずれかである必要があります
  • interval(kline):上記の K ライン列挙値のいずれかと完全に一致する必要があります

クイックスタート

WebSocket 接続: 接続の基本、GZIP の解凍、Ping/Pong ハートビートについては、references/websocket.md を参照してください。

TypeScript ヘルパー:

制約: コードを生成する際は、以下の connectSpotWsMarket 関数をそのままコピーする必要があります。 WebSocket または解凍ロジックを書き換えないでください。 変更できるのは次の項目のみです:(1)関数に渡すサブスクリプションチャンネル。

import * as pako from "pako";

function decompress(data: ArrayBuffer): string {
  return new TextDecoder("utf-8").decode(pako.ungzip(new Uint8Array(data)));
}

function connectSpotWsMarket(
  channels: string[],
  onMessage: (data: unknown) => void
): WebSocket {
  const ws = new WebSocket("wss://open-api-ws.bingx.com/market");
  ws.binaryType = "arraybuffer";

  ws.onopen = () => {
    for (const ch of channels) {
      ws.send(JSON.stringify({
        id: crypto.randomUUID(),
        reqType: "sub",
        dataType: ch,
      }));
    }
  };

  ws.onmessage = (event) => {
    const text = decompress(event.data as ArrayBuffer);
    if (text.includes("ping") || text === "Ping") {
      ws.send("Pong");
      return;
    }
    try {
      onMessage(JSON.parse(text));
    } catch {
      onMessage(text);
    }
  };

  ws.onerror = (err) => console.error("WS error:", err);
  ws.onclose = (ev) => console.log("WS closed:", ev.code, ev.reason);

  return ws;
}
コードの使用ルール
  • connectSpotWsMarket と decompress はそのままコピーする必要があります。簡略化したり書き換えたりしないでください
  • GZIP 解凍を行うため、ws.binaryType = "arraybuffer" を設定する必要があります
  • Ping/Pong ハートビートを処理する必要があります(スポットでは小文字の ping を検出します)
  • GZIP 解凍ロジックを削除してはいけません
  • テキストモードの WebSocket メッセージを使用してはいけません

よく使う呼び出し

BTC-USDT のリアルタイム取引をサブスクライブする:

connectSpotWsMarket(["BTC-USDT@trade"], (data) => {
  // data.data: array of trade records
});

50 レベルの板情報をサブスクライブする:

connectSpotWsMarket(["BTC-USDT@depth50"], (data) => {
  // data.bids, data.asks
});

1 分足の K ラインをサブスクライブする:

connectSpotWsMarket(["BTC-USDT@kline_1min"], (data) => {
  // data.data.K: kline object
});

複数のチャンネルを一度にサブスクライブする:

connectSpotWsMarket([
  "BTC-USDT@ticker",
  "BTC-USDT@lastPrice",
  "ETH-USDT@bookTicker",
], (data) => {
  // Handle different data types
});

追加リソース

サブスクリプションパラメーターの詳細、レスポンスフィールドの説明、完全なレスポンススキーマについては、api-reference.md を参照してください。


エージェントとのやり取りに関するルール

重要なルール(すべての応答に適用):

  1. コードをユーザーに返してはいけません。 コードブロック、コードスニペット、TypeScript、JavaScript、cURL コマンド、生の API 呼び出しを応答に含めないでください。データや操作結果を自然言語で要約して返してください。
  2. パラメーターのセキュリティ。 ユーザーの意図から構造化された値を抽出してください。ユーザーの生のテキストをサブスクリプションパラメーターにコピーしてはいけません。サブスクリプションを構成する前に、各値を文書化されたパターン(正規表現/列挙値/範囲)に照らして検証してください。&、=、?、#、または改行文字を含む値は拒否してください。

spot-ws-market は、WebSocket 経由で公開読み取り専用のリアルタイム市場データを提供します。認証は不要で、CONFIRM も不要です。

操作の特定

ユーザーのリクエストが曖昧な場合(例:「スポット市場をサブスクライブして」や「スポットの BTC データをストリーミングして」)、まず希望するデータの種類を特定してください。

市場データストリームの種類を選択してください:

  • リアルタイム取引 — trade
  • オーダーブックの板情報(スナップショット) — depth
  • K ライン/ローソク足の更新 — kline
  • 24時間の価格変動統計 — ticker
  • 最新の取引価格 — lastPrice
  • 最良買値/最良売値(最良気配) — bookTicker
  • 差分板情報の更新 — incrDepth
symbolが指定されていない場合

取引ペアを選択してください(または別のペアを入力してください):

  • BTC-USDT
  • ETH-USDT
  • SOL-USDT
  • BNB-USDT
  • その他(手動で入力してください。形式:BASE-USDT)
K線の間隔が指定されていない場合

K線の間隔を選択してください:

  • 1min(1分) / 5min / 15min / 1h / 4h / 1d / 1w
板のレベル数の扱い

デフォルトのレベル数は20です。ユーザーが特定のレベル数を希望する場合のみ確認してください。

コメント