关于API将在现有MBP增量推送接口增加5档MBP逐笔增量推送的公告

尊敬的用户:

当前,火币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"

}

参数

参数数据类型是否必需缺省值描述取值范围
symbolstringtrueNA交易代码(不支持通配符) 
levelsintegertrueNA深度档位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],

           ]

      }

}

数据更新字段列表

字段数据类型描述
seqNuminteger消息序列号
prevSeqNuminteger上一消息序列号
bidsobject买盘,按price降序排列,["price","size"]
asksobject卖盘,按askPrice升序排列,["price","size"]

 

对用户的影响: 

API用户需自行评估以上接口优化对用户自身业务的适配,必要时更新相关应用。

所有变更将自本通知生效之日起更新至 Huobi API Docs