无法通过ByBit统一v3 API订阅反向合约WebSocket数据
解决ByBit衍生品V3 WebSocket订阅BTCUSD反向永续合约订单簿失败的问题
问题回顾
- 已通过
/derivatives/v3/public/instruments-info接口确认BTCUSD为InversePerpetual(反向永续合约),状态正常可交易,合约详情如下:
{ "symbol": "BTCUSD", "contractType": "InversePerpetual", "status": "Trading", "baseCoin": "BTC", "quoteCoin": "USD", "launchTime": "0", "deliveryTime": "0", "deliveryFeeRate": "", "priceScale": "2", "leverageFilter": { "minLeverage": "1", "maxLeverage": "100", "leverageStep": "0.01" }, "priceFilter": { "minPrice": "0.50", "maxPrice": "999999.00", "tickSize": "0.50" }, "lotSizeFilter": { "maxTradingQty": "1000000", "minTradingQty": "1", "qtyStep": "1" } }
- 使用USDT本位合约WebSocket端点
wss://stream.bybit.com/contract/usdt/public/v3订阅主题orderbook.25.BTCUSD时,收到报错:
{"success":false,"ret_msg":"error:handler not found,topic:orderbook.25.BTCUSD","conn_id":"027f109e-a7fb-4af0-8b69-78bbb293e34b","req_id":"","op":"subscribe"}
- 订阅USDT本位合约主题
orderbook.25.BTCUSDT可正常成功,但尝试usd/public/v3、unified/public/v3端点未生效。
原因分析
ByBit衍生品V3 API将合约分为USDT本位和**USD本位(反向)**两类,对应不同的WebSocket端点,且订阅请求需严格遵循格式要求:
- USDT本位合约对应端点:
wss://stream.bybit.com/contract/usdt/public/v3 - USD本位反向合约对应端点:
wss://stream.bybit.com/contract/usd/public/v3
你尝试usd/public/v3端点未成功,大概率是订阅消息格式有误,而非端点本身错误。
正确操作步骤
- 连接USD本位WebSocket公开端点:
wss://stream.bybit.com/contract/usd/public/v3
- 发送符合格式的订阅请求(需保证
args为数组格式):
{"op": "subscribe", "args": ["orderbook.25.BTCUSD"]}
验证说明
发送上述请求后,若订阅成功,会收到如下格式的确认消息:
{"success":true,"ret_msg":"","conn_id":"xxx","req_id":"","op":"subscribe"}
随后即可接收BTCUSD反向永续合约的25档订单簿实时数据。
内容的提问来源于stack exchange,提问作者Xiang Zhang
相关产品推荐
相关产品推荐

