跳到主要内容

深度频道

描述

获取深度数据
books,books5,books15默认推送频率:150ms
books1默认推送频率:100ms

  • books 对应全量深度数据,首次推送全量数据:snapshot,后续推送增量变化数据:update
  • books1 对应1档位深度数据,每次推送:snapshot
  • books5 对应5档位深度数据,每次推送:snapshot
  • books15 对应15档位深度数据,每次推送:snapshot

Checksum机制

1.bid和ask超过25档
合并后全量深度数据(在此仅展示2档数据,实际应截取25档数据):
"bids": [
[ 3366.1, 7 ], //bid1
[ 3366 , 6]
]
"asks": [
[ 3366.8, 9], //ask1
[ 3368 , 8]
]
校验字符串:
"3366.1:7:3366.8:9:3366:6:3368:8"

2.bid或ask不足25档
合并后全量深度数据:
"bids": [
[ 3366.1, 7]
]
"asks": [
[ 3366.8, 9],
[ 3368 , 8 ],
[ 3372 , 8 ]
]
校验字符串:
"3366.1:7:3366.8:9:3368:8:3372:8"

此机制可以帮助用户校验深度数据的准确性。

深度合并

用户订阅增量推送(如:books)深度频道成功后,首先获取初始全量深度数据,当获取到增量推送数据后,更新本地全量深度数据。

  1. 如果有相同价格,则比较数量;数量为0删除此深度,数量有变化则替换此数据。
  2. 如果没有相同价格,则按照价格优劣排序(bids为价格降序,asks为价格升序),将深度信息插入到全量数据中

计算校验和

先用深度合并后前25档bids和asks组成一个字符串(其中ask和bid中的价格和数量以冒号连接),再计算其crc32值(32位有符号整型)。

  1. 当bid和ask深度数据超过25档时,截取各自25档数据,要校验的字符串按照bid、ask深度数据交替方式连接。如:bid1[价格:数量]:ask1[价格:数量]:bid2[价格:数量]:ask2[价格:数量]...
  2. bid或ask深度数据不足25档时,直接忽略缺失的深度。如:bid1[价格:数量]:ask2[价格:数量]:ask3[价格:数量]:ask4[价格:数量]...
  3. 如果返回的价格为0.5000, 请注意使用原始值计算checksum,不要使用trim掉0后的0.5
请求示例
{
"op": "subscribe",
"args": [
{
"instType": "USDT-FUTURES",
"channel": "books5",
"instId": "BTCUSDT"
}
]
}

请求参数

参数名参数类型是否必须描述
opString操作, subscribe unsubscribe
argsList<Object>请求订阅的频道列表
> instTypeString产品类型
USDT-FUTURES USDT专业合约
COIN-FUTURES 混合合约
USDC-FUTURES USDC专业合约
SUSDT-FUTURES USDT专业合约模拟盘
SCOIN-FUTURES 混合合约模拟盘
SUSDC-FUTURES USDC专业合约模拟盘
> channelString频道名: books/books1/books5/books15
> instIdString产品ID
订阅返回示例
{
"event": "subscribe",
"arg": {
"instType": "USDT-FUTURES",
"channel": "books5",
"instId": "BTCUSDT"
}
}

返回参数

返回字段参数类型字段说明
eventString事件
argObject订阅的频道
> instTypeString产品类型
USDT-FUTURES USDT专业合约
COIN-FUTURES 混合合约
USDC-FUTURES USDC专业合约
SUSDT-FUTURES USDT专业合约模拟盘
SCOIN-FUTURES 混合合约模拟盘
SUSDC-FUTURES USDC专业合约模拟盘
> channelString频道名: books/books1/books5/books15
> instIdString产品ID
msgString错误消息
codeString错误码
推送返回示例
{
"action": "snapshot",
"arg": {
"instType": "USDT-FUTURES",
"channel": "books5",
"instId": "BTCUSDT"
},
"data": [
{
"asks": [
[
"27002.0",
"5.070"
],
[
"27002.5",
"1.470"
]
],
"bids": [
[
"26998.5",
"6.620"
],
[
"26998.0",
"7.510"
]
],
"checksum": 0,
"ts": 1695716059516
}
],
"ts": "1695716059516"
}

推送数据参数

返回字段参数类型字段说明
argObject订阅成功的频道
> instTypeString产品类型
USDT-FUTURES USDT专业合约
COIN-FUTURES 混合合约
USDC-FUTURES USDC专业合约
SUSDT-FUTURES USDT专业合约模拟盘
SCOIN-FUTURES 混合合约模拟盘
SUSDC-FUTURES USDC专业合约模拟盘
> channelString频道名: books/books1/books5/books15
> instIdString产品ID
actionString推送数据动作, 增量推送数据还是全量推送数据
dataList<Object>订阅的数据
> asksList<String>卖方深度
> bidsList<String>买方深度
> tsString撮合引擎时间戳,Unix时间戳的毫秒数格式,如 1597026383085
> checksumLong检验和