订阅订单簿
API说明
此Websocket API提供指定现货市场交易品种的实时订单簿更新,流式传输实时买卖数据。
注意:订单簿数据可通过RESTful和Websocket接口获取。本页是Websocket接口的描述。如需了解RESTful接口,请参见 跳转
注意事项
- Websocket接口提供实时订单簿更新,默认提供20个级别的买单和卖单。
- 目前有两种方法可用于订单簿订阅。用户在创建连接时应谨慎操作。
方法1
认证
这是一个公共Websocket,不需要认证。有关使用Websocket API的详细信息,请参考简介 > 认证和代码示例 > 现货 > Websocket公共接口 > 方法1
Websocket URL
wss://ws.futurescw.info?token={your_token}
频率限制
无
订阅参数
| 参数 | 必填 | 类型 | 描述 |
|---|---|---|---|
| event | True | String | subscribe |
| args | True | String | "spot/level2_20:symbol",其中symbol是要订阅的货币。 示例: "spot/level2_20:BTC-USDT" |
响应参数
| 参数 | 类型 | 描述 |
|---|---|---|
| channel | String | 订阅的频道,即"spot/level2_20:BTC-USDT" |
| subject | String | 订阅的主题,即'spot/level2_20' |
| data | json | 数据对象 |
| asks | Array | 包含20个卖单级别的数组 |
| String | 报价货币计的价格 | |
| String | 基础货币计的数量 | |
| bids | Array | 包含20个买单级别的数组 |
| String | 报价货币计的价格 | |
| String | 基础货币计的数量 | |
| time | Long | 时间戳(毫秒) |
| seq | Big decimal | 序列号 |
订阅示例
以下Python代码展示了如何订阅BTC-USDT的订单簿。
注意:完整代码示例请参考简介 > 认证和代码示例 > 现货 > Websocket公共接口 > 方法1
symbol = "BTC-USDT"
args = f'spot/level2_20:{symbol}'
SpotWebsocketPublic(args) # 函数SpotWebsocketPublic()在章节(简介 > 认证和代码示例 > 现货 > Websocket公共接口 > 方法1)中定义
注意:完整Java代码示例请参考简介 > 认证和代码示例 > 现货 > Websocket公共接口 > 方法1。
响应示例
以下是上述Python订阅返回的示例响应。Websocket订阅将实时更新订单簿。为简洁起见,以下仅提供初始响应:
{'channel': 'spot/level2_20:BTC-USDT',
'subject': 'spot/level2_20',
'data': '{
"asks":[
["85276.46","0.3085"],["85276.58","0.5241"],["85276.69","0.0396"],["85276.81","0.0447"],["85276.86","0.3087"],["85276.92","0.0454"],["85276.98","0.6008"],["85277.04","0.0685"],["85277.09","0.0259"],["85277.15","0.0466"],["85277.21","0.0469"],["85277.27","0.0485"],["85277.32","0.0374"],["85277.38","0.0437"],["85277.44","0.0784"],["85277.50","0.0378"],["85277.55","0.0989"],["85277.62","0.0714"],["85277.67","0.0270"],["85277.73","0.0547"]
],
"bids":[
["85276.10","0.6228"],["85275.87","1.3056"],["85275.84","0.7416"],["85275.78","0.0267"],["85275.72","0.7025"],["85275.66","0.0829"],["85275.61","0.0192"],["85275.55","0.0662"],["85275.49","0.0425"],["85275.43","0.0441"],["85275.38","0.0282"],["85275.32","0.0208"],["85275.30","1.2221"],["85275.26","0.0800"],["85275.20","0.0245"],["85275.15","0.0519"],["85275.08","0.0634"],["85275.03","0.0216"],["85274.97","0.0451"],["85274.92","0.0202"]
],
"time":1743151955887,
"seq":639334113}'
}
方法2
认证
这是一个公共Websocket,不需要认证。有关使用Websocket API的详细信息,请参考简介 > 认证和代码示例 > 现货 > Websocket公共接口 > 方法2
Websocket URL
频率限制
无
请求参数
| 参数 | 必填 | 类型 | 描述 |
|---|---|---|---|
| event | true | String | 订阅或取消订阅。sub: 订阅; unsub: 取消订阅。注意:此参数区分大小写。 |
| params | true | Json | 请求的参数对象,包括: |
| -biz | true | String | 指定频道,例如,"exchange"。注意:建议使用小写。 |
| -type | true | String | 定义功能类型,例如,"depth_snapshot"。注意:建议使用小写。 |
| -pairCode | true | String | 货币对ID,即78 : BTC_USDT。 注意:货币对ID与交易品种的映射关系可通过 获取所有交易品种24小时交易摘要 接口获取。 |
响应参数
| 参数 | 类型 | 描述 |
|---|---|---|
| biz | String | 频道名称,例如,"exchange"。 |
| pairCode | String | 货币对ID,即78 : BTC_USDT。 注意:货币对ID与交易品种的映射关系可通过 获取所有交易品种24小时交易摘要 接口获取。 |
| channel | String | 订阅类型,例如,"subscribe"。 |
| type | String | 定义功能类型,例如,"depth_snapshot"。 |
| -result | Boolean | 订阅请求的结果:true或false。 |
| data | Json | 数据对象,包含以下字段: |
| asks | Array | 包含100个卖单级别的数组 |
| String | 报价货币计的价格 | |
| String | 基础货币计的数量 | |
| bids | Array | 包含100个买单级别的数组 |
| String | 报价货币计的价格 | |
| String | 基础货币计的数量 | |
| time | Long | 时间戳(毫秒) |
| seq | Big decimal | 序列号 |
请求示例
以下Python代码展示了如何订阅"BTC-USDT"的订单簿。
注意:完整代码请参考简介 > 认证和代码示例 > 现货 > Websocket公共接口 > 方法2
url = "wss://ws.futurescw.com"
subscription_params = {"event":"sub",
"params":
{"biz":"exchange",
"type":"depth_snapshot",
"pairCode":"78"}} # "78"表示BTC-USDT
SpotWebsocketPublic(url, subscription_params) # 函数SpotWebsocketPublic()在章节(简介 > 认证和代码示例 > 现货 > Websocket公共接口 > 方法2)中定义
注意:完整Java代码请参考简介 > 认证和代码示例 > 现货 > Websocket公共接口 > 方法2
响应示例
以下是上述Python订阅返回的示例响应。Websocket订阅将实时更新订单簿。为简洁起见,以下仅提供初始响应:
{"biz":"exchange","pairCode":"78","data":{"result":true},"channel":"subscribe","type":"depth_snapshot"}
{"biz":"exchange","pairCode":"78","data":
"{\"asks\":
[[\"94702.48\",\"0.7071\"],[\"94702.98\",\"0.3480\"],
[\"94703.01\",\"0.9511\"],[\"94703.09\",\"0.2665\"],
[\"94703.20\",\"0.0152\"],[\"94703.32\",\"0.0422\"],
[\"94703.43\",\"0.0198\"],[\"94703.54\",\"0.0567\"],
[\"94703.65\",\"0.0693\"],[\"94703.77\",\"0.0386\"],
[\"94703.82\",\"0.9674\"],[\"94703.88\",\"0.0336\"],
[\"94703.99\",\"0.0196\"],[\"94704.10\",\"0.0437\"],
[\"94704.21\",\"0.0372\"],[\"94704.33\",\"0.0239\"],
[\"94704.34\",\"0.9195\"],[\"94704.44\",\"0.0343\"],
[\"94704.55\",\"0.0198\"],[\"94704.58\",\"0.7682\"]],
\"bids\":
[[\"94702.32\",\"0.2128\"],[\"94702.24\",\"0.0753\"],
[\"94702.21\",\"0.2408\"],[\"94702.12\",\"0.0540\"],
[\"94702.10\",\"0.0253\"],[\"94702.01\",\"0.0298\"],
[\"94701.98\",\"0.0377\"],[\"94701.90\",\"0.0263\"],
[\"94701.87\",\"0.0341\"],[\"94701.76\",\"0.0695\"],
[\"94701.67\",\"0.0758\"],[\"94701.65\",\"0.0635\"],
[\"94701.53\",\"0.0271\"],[\"94701.45\",\"0.0178\"],
[\"94701.42\",\"0.0166\"],[\"94701.34\",\"0.0261\"],
[\"94701.31\",\"0.0354\"],[\"94701.23\",\"0.0187\"],
[\"94701.20\",\"0.0529\"],[\"94701.09\",\"0.0471\"]],
\"time\":1745826899772,
\"seq\":704538922}",
"type":"depth_snapshot"},.................