关于API将在现有MBP增量推送接口增加5档MBP逐笔增量推送的公告
- API 公告
尊敬的用户:
当前,火币Global在现有Websocket订阅主题“market.$symbol.mbp.$levels“中,仅支持150档MBP增量推送。该增量基于100毫秒间隔的两幅快照生成。
自本通知生效之日起,在保留现有基于100毫秒快照生成的150档MBP增量推送的同时,该订阅主题将支持5档MBP逐笔增量推送。即,在任何时间,一旦5档MBP订单簿发生更新(price or size),接口将推送增量更新。
与此同时,该主题的REQ请求接口,也将支持5档MBP全量数据的返回,且返回的全量数据seqNum字段,与增量数据的seqNum为同一序列。
该5档MBP逐笔增量及全量REQ数据仅可通过以下URL订阅/获取:
wss://api.huobi.pro/feed
wss://api-aws.huobi.pro/feed
一期上线的5档逐笔增量行情仅支持以下交易对 –
btcusdt,ethusdt,xrpusdt,eosusdt,ltcusdt,etcusdt,adausdt,dashusdt,bsvusdt
API用户订阅该主题的方式和数据处理方式与现有相同。如需订阅5档MBP逐笔增量推送,订阅参数levels应被赋值5。在持续处理增量数据之前,须先行REQ请求全量数据,并与增量数据的prevSeqNum对齐。
5档MBP增量行情与150档MBP增量行情的区别:
1) 深度不同;
2) 5档为逐笔增量MBP行情,150档为100毫秒定时快照增量MBP行情;
3) 当5档订单簿仅发生单边行情变化时,增量推送仅包含单边行情更新,比如,推送消息中包含数组asks,但不含数组bids;当150档订单簿仅发生单边行情变化时,增量推送包含双边行情更新,但其中一边行情为空,比如,推送消息中包含数组asks更新的同时,也包含bids空数组;
4) 当150档订单簿在100毫秒时间间隔内未发生变化时,增量推送包含bids和asks空数组;而由于5档MBP为逐笔增量推送,当订单簿未发生变化时,不推送数据。
生效日期:2020年6月24日(GMT+8)
具体变更细节及参数要求,请参考API文档。
火币全球站
2020年6月23日
变更细则
市场深度MBP行情数据(增量推送)
用户可订阅此频道以接收最新深度行情Market By Price (MBP) 的增量数据推送;同时,该频道支持用户以req方式请求获取全量数据。
建议下游数据处理方式:
1) 订阅增量数据并开始缓存;
2) 请求全量数据(同等档位数)并根据该全量消息的seqNum与缓存增量数据中的prevSeqNum对齐;
3) 开始连续增量数据接收与计算,构建并持续更新MBP订单簿;
4) 每条增量数据的prevSeqNum须与前一条增量数据的seqNum一致,否则意味着存在增量数据丢失,须重新获取全量数据并对齐;
5) 如果收到增量数据包含新增price档位,须将该price档位插入MBP订单簿中适当位置;
6) 如果收到增量数据包含已有price档位,但size不同,须替换MBP订单簿中该price档位的size;
7) 如果收到增量数据某price档位的size为0值,须将该price档位从MBP订单簿中删除;
8) 如果收到单条增量数据中包含两个及以上price档位的更新,这些price档位须在MBP订单簿中被同时更新。
订阅增量推送
market.$symbol.mbp.$levels
Sub request
{
"sub": "market.btcusdt.mbp.5",
"id": "id1"
}
请求全量数据
market.$symbol.mbp.$levels
Req request
{
"req": "market.btcusdt.mbp.5",
"id": "id2"
}
参数
参数 | 数据类型 | 是否必需 | 缺省值 | 描述 | 取值范围 |
symbol | string | true | NA | 交易代码(不支持通配符) | |
levels | integer | true | NA | 深度档位 | 5,150 |
注:
- 5档MBP行情为逐笔增量推送;
- 150档MBP行情为100毫秒快照增量推送。
Response (增量订阅)
{
"id": "id1",
"status": "ok",
"subbed": "market.btcusdt.mbp.5",
"ts": 1489474081631 //system response time
}
Incremental Update (增量订阅)
{
"ch": "market.btcusdt.mbp.5",
"ts": 1573199608679, //system update time
"tick": {
"seqNum": 100020146795,
"prevSeqNum": 100020146794,
"asks": [
[645.140000000000000000, 26.755973959140651643] // [price, size]
]
}
}
Response (全量请求)
{
"id": "id2",
"rep": "market.btcusdt.mbp.5",
"status": "ok",
"data": {
"seqNum": 100020142010,
"bids": [
[618.37, 71.594], // [price, size]
[423.33, 77.726],
[223.18, 47.997],
[219.34, 24.82],
[210.34, 94.463],
],
"asks": [
[650.59, 14.909733438479636],
[650.63, 97.996],
[650.77, 97.465],
[651.23, 83.973],
[651.42, 34.465],
]
}
}
数据更新字段列表
字段 | 数据类型 | 描述 |
seqNum | integer | 消息序列号 |
prevSeqNum | integer | 上一消息序列号 |
bids | object | 买盘,按price降序排列,["price","size"] |
asks | object | 卖盘,按askPrice升序排列,["price","size"] |
对用户的影响:
API用户需自行评估以上接口优化对用户自身业务的适配,必要时更新相关应用。
所有变更将自本通知生效之日起更新至 HTX API Docs。