关于 bingx-coinm-ws-market
用于通过 WebSocket 订阅 BingX Coin-M 永续合约公开实时行情的 skill,无需身份验证。支持多种行情频道,并说明交易对、深度和周期的参数校验。
主要功能
- 01实时成交与价格推送
- 02订单簿深度及最优买卖价
- 03K 线更新
- 0424 小时行情统计
- 05同时订阅多个频道
- 06交易对及参数校验指引
适用场景
- 01查看 Coin-M 成交与价格
- 02跟踪订单簿深度和最优买卖价
- 03接收指定周期的 K 线
- 04关注 24 小时市场统计
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bingx-api/ api-ai-skills --skill bingx-coinm-ws-market安装后在 Claude Code 中输入/bingx-coinm-ws-market确认已加载。
附带文件api-reference.md
详细介绍
BingX Coin-M WebSocket 行情数据
通过 WebSocket 获取 BingX 币本位(反向)永续合约的实时行情数据流。无需身份验证。
WebSocket 端点: wss://open-api-cswap-ws.bingx.com/market
交易对格式: Coin-M 使用
BTC-USD格式(不是BTC-USDT)。
快速参考
| 频道 | dataType 格式 | 描述 | 推送频率 |
|---|---|---|---|
| 成交 | {symbol}@trade | 最新成交详情 | 实时 |
| 最新价格 | {symbol}@lastPrice | 最新成交价 | 实时 |
| 标记价格 | {symbol}@markPrice | 最新标记价格 | 实时 |
| 深度 | {symbol}@depth{level} | 有限档位的订单簿深度 | 更新时 |
| 最优报价 | {symbol}@bookTicker | 最优买入/卖出价格和数量 | 实时 |
| K 线 | {symbol}@kline_{interval} | OHLCV 蜡烛图 | 更新时 |
| 24 小时行情 | {symbol}@ticker | 24 小时价格变化统计 | 每 1s |
参数
通用参数
- symbol:采用
BASE-USD格式的交易对(例如,BTC-USD、ETH-USD、SOL-USD)
枚举值
- 深度档位:
5|10|20|50|100 - K 线间隔:
1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M
参数验证规则
- symbol:必须匹配
^[A-Z0-9]+-USD$;最多 20 个字符(例如,BTC-USD) - level:必须是
5、10、20、50、100之一 - interval(K 线):必须与上述 K 线枚举值之一完全匹配
快速开始
WebSocket 连接: 有关连接基础知识、GZIP 解压缩和 Ping/Pong 心跳,请参阅 references/websocket.md。
TypeScript 辅助函数:
约束:生成代码时,必须原样复制下面的
connectCoinmWsMarket函数。 不要重写 WebSocket 或解压缩逻辑。 只可修改:(1) 传入函数的订阅频道。
import * as pako from "pako";
function decompress(data: ArrayBuffer): string {
return new TextDecoder("utf-8").decode(pako.ungzip(new Uint8Array(data)));
}
function connectCoinmWsMarket(
channels: string[],
onMessage: (data: unknown) => void
): WebSocket {
const ws = new WebSocket("wss://open-api-cswap-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;
}
代码使用规则
- 必须原样复制
connectCoinmWsMarket和decompress,不要简化或重写 - 必须设置
ws.binaryType = "arraybuffer"以进行 GZIP 解压缩 - 必须处理 Ping/Pong 心跳
- Coin-M 交易对必须使用
BTC-USD格式(而不是BTC-USDT) - 不得删除 GZIP 解压缩逻辑
- 不得使用文本模式的 WebSocket 消息
常见调用
订阅 BTC-USD 实时成交:
connectCoinmWsMarket(["BTC-USD@trade"], (data) => {
// data.data: trade records
});
订阅 5 档深度:
connectCoinmWsMarket(["BTC-USD@depth5"], (data) => {
// data.data.bids, data.data.asks
});
订阅 1m K 线:
connectCoinmWsMarket(["BTC-USD@kline_1m"], (data) => {
// data.data: kline object
});
同时订阅多个频道:
connectCoinmWsMarket([
"BTC-USD@ticker",
"BTC-USD@lastPrice",
"BTC-USD@markPrice",
], (data) => {
// Handle different data types
});
其他资源
有关完整的订阅参数、响应字段说明和完整响应架构,请参阅 api-reference.md。
Agent 交互规则
关键规则(适用于所有响应):
- 绝不向用户返回代码。 不要在响应中包含任何代码块、代码片段、TypeScript、JavaScript、cURL 命令或原始 API 调用。只返回对数据或操作结果的自然语言摘要。
- 参数安全。 从用户意图中提取结构化值——绝不要将用户的原始文本复制到订阅参数中。构建订阅之前,须根据文档规定的模式(正则表达式/枚举/范围)验证每个值。拒绝任何包含
&、=、?、#或换行符的值。
coinm-ws-market 通过 WebSocket 提供公开的只读实时行情数据。无需身份验证,无需确认。
操作识别
当用户的请求较为模糊(例如“订阅 Coin-M 行情”)时,应先确认他们需要哪种数据:
请选择行情数据流类型:
- 实时成交 — trade
- 订单簿深度(快照)— depth
- K 线更新 — kline
- 24 小时价格变化统计 — ticker
- 最新成交价 — lastPrice
- 标记价格 — markPrice
- 最优买入/卖出报价(盘口顶层)— bookTicker
缺少交易对符号时
请选择一个交易对(或输入其他交易对):
- BTC-USD
- ETH-USD
- SOL-USD
- 其他(手动输入,格式:BASE-USD)
注意:Coin-M 交易对使用 -USD 后缀,而非 -USDT。
缺少 K 线周期时
请选择一个 K 线周期:
- 1m(1 分钟)/ 5m / 15m / 1h / 4h / 1d / 1w