跳转到内容

交易所组成映射

一档行情请求可能通过 tickReqParams() 返回 bboExchange。这个字段用于后续查询 SMART BBO 的交易所组成映射。

如果 bboExchange 是空字符串,说明这次请求没有给出可查询的组成交易所代码。

def tickReqParams(self, tickerId, minTick, bboExchange, snapshotPermissions):
print("请求参数", tickerId, minTick, bboExchange, snapshotPermissions)

字段含义:

字段中文说明
tickerId对应 reqMktData() 的请求编号。
minTick最小价格变动。
bboExchangeBBO 交易所映射代码,可能为空。
snapshotPermissions快照权限位。

请求 AAPL 一档行情时,收到:

TICK_REQ_PARAMS=tickerId=97701;name=streaming;minTick=0.01;bboExchange=EMPTY;snapshotPermissions=0

minTick=0.01 说明最小价格变动为 0.01 美元;bboExchange=EMPTY 说明这次请求没有可用于 reqSmartComponents() 的非空代码。

正确流程是:

  1. 先请求一档行情。
  2. tickReqParams() 中拿到非空 bboExchange
  3. 再调用 reqSmartComponents(reqId, bboExchange)
  4. smartComponents() 中接收映射。

不要猜测 bboExchange。前面已经参考样本确认,直接猜测代码可能返回:

ERROR=reqId=97302;code=321;msg=确认请求时出错。:-'V':导致- Invalid BBO exchange/security type code

大多数基础行情页面并不需要交易所组成映射。只有在你要解释 SMART BBO 来源、做交易所级别归因或对行情质量做分析时,才需要继续处理 bboExchange