跳转到内容

通用 Tick 类型

genericTickList 用来在普通一档行情之外请求额外字段。多个 tick 类型用逗号分隔。

普通买价、卖价、最新价、成交量通常不需要填 genericTickList。只有需要额外字段时才添加。

官方参考:Available Tick Types

# 请求 AAPL,并额外请求 RTVolume、Shortable 等 generic tick。
app.reqMktData(
97703,
aapl_stock(),
"233,236",
False,
False,
[],
)
参数示例中文说明
genericTickList"233,236"额外 tick 类型编号,多个用逗号分隔。
233RTVolume常用于实时成交量字符串字段。
236Shortable常用于可卖空相关字段。

不同 generic tick 对证券类型、交易所、账户权限和行情订阅有不同要求。不是所有账户、所有标的都能返回所有字段。

generic tick 可能通过不同回调返回:

回调说明
tickString()字符串字段,例如某些实时成交量字段。
tickGeneric()数值字段。
tickPrice() / tickSize()某些字段仍可能表现为价格或数量更新。
error()权限不足或字段不允许时返回错误。

请求 AAPL generic ticks 时,没有收到可用字段,并返回基础面数据限制错误:

STRING_ROWS=0
GENERIC_ROWS=0
ERROR=reqId=97703;name=generic_ticks;code=10358;msg=Fundamentals data is not allowed
ERROR=reqId=97703;name=generic_ticks;code=300;msg=无法使用tickerId找到EId::97703

这说明 generic tick 不是“想要什么字段就一定能拿到”。请求前应确认该 tick 是否适用于对应合约,以及账号是否有权限。

先用空 genericTickList 跑通基础一档行情,再逐个添加额外 tick。不要一次添加很多编号,否则出错时很难判断是哪一个字段触发。