通用 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 类型编号,多个用逗号分隔。 |
233 | RTVolume | 常用于实时成交量字符串字段。 |
236 | Shortable | 常用于可卖空相关字段。 |
不同 generic tick 对证券类型、交易所、账户权限和行情订阅有不同要求。不是所有账户、所有标的都能返回所有字段。
generic tick 可能通过不同回调返回:
| 回调 | 说明 |
|---|---|
tickString() | 字符串字段,例如某些实时成交量字段。 |
tickGeneric() | 数值字段。 |
tickPrice() / tickSize() | 某些字段仍可能表现为价格或数量更新。 |
error() | 权限不足或字段不允许时返回错误。 |
参考边界样例
Section titled “参考边界样例”请求 AAPL generic ticks 时,没有收到可用字段,并返回基础面数据限制错误:
STRING_ROWS=0GENERIC_ROWS=0ERROR=reqId=97703;name=generic_ticks;code=10358;msg=Fundamentals data is not allowedERROR=reqId=97703;name=generic_ticks;code=300;msg=无法使用tickerId找到EId::97703这说明 generic tick 不是“想要什么字段就一定能拿到”。请求前应确认该 tick 是否适用于对应合约,以及账号是否有权限。
先用空 genericTickList 跑通基础一档行情,再逐个添加额外 tick。不要一次添加很多编号,否则出错时很难判断是哪一个字段触发。