总览
可用 Tick 类型指的是一档行情中可以请求或接收的具体字段。普通买价、卖价、最新价、成交量等字段通常不需要额外参数;部分字段需要在 reqMktData() 的 genericTickList 中写入对应编号。
本组页面只讲常见且容易误用的几个字段:停牌、可做空、成交量数据、实时成交量和 IB 股息数据。
官方参考:Available Tick Types
app.reqMktData( 97802, aapl_stock(), "233", False, False, [],)这里 "233" 就是 genericTickList。多个编号可以用逗号连接,例如 "233,236"。
genericTickList 是“我要额外字段”的请求列表;回调里的 tickType 是 TWS 返回字段时使用的字段编号。两者相关,但不总是同一个数字。开发时应同时保存请求编号、genericTickList、回调 tickType 和原始值。
| 页面 | 常见 tick / generic tick | 典型回调 | 用途 |
|---|---|---|---|
| 停牌 | tick type 49 | tickGeneric() | 判断标的是否处于停牌或恢复交易状态。 |
| 可做空 | generic tick 236 | tickGeneric() | 判断股票可做空程度。 |
| 成交量数据 | 基础 size tick | tickSize() | 接收普通成交量、买卖盘数量等字段。 |
| 实时成交量 | generic tick 233 | tickString() | 接收实时成交量字符串。 |
| IB 股息数据 | generic tick 456 | tickString() | 接收 IB 计算的股息相关字段。 |
| 回调 | 说明 |
|---|---|
tickPrice() | 价格类字段。 |
tickSize() | 数量类字段。 |
tickString() | 字符串类字段,常见于 RTVolume、IB Dividends。 |
tickGeneric() | 通用数值字段,常见于 Shortable、Halted 等。 |
tickReqParams() | TWS 接受行情请求后返回最小价格跳动、交易所映射和快照权限信息。 |
error() | 权限不足、字段不允许或请求未建立。 |
参考边界样例
Section titled “参考边界样例”AAPL 分别请求基础行情、233、236、456。所有请求都到达 TWS,并返回 tickReqParams():
REQUESTS=97801:base:EMPTY,97802:rt_volume_233:233,97803:shortable_236:236,97805:ib_dividends_456:456TICK_REQ_PARAMS_ROWS=4TICK_REQ_PARAMS=reqId=97801;name=base;minTick=0.01;bboExchange=EMPTY;snapshotPermissions=0TICK_REQ_PARAMS=reqId=97802;name=rt_volume_233;minTick=0.01;bboExchange=EMPTY;snapshotPermissions=0TICK_REQ_PARAMS=reqId=97803;name=shortable_236;minTick=0.01;bboExchange=EMPTY;snapshotPermissions=0TICK_REQ_PARAMS=reqId=97805;name=ib_dividends_456;minTick=0.01;bboExchange=EMPTY;snapshotPermissions=0如果账户没有对应 API 顶层行情权限,就不会收到字段值:
PRICE_ROWS=0SIZE_ROWS=0STRING_ROWS=0GENERIC_ROWS=0ERROR=reqId=97801;name=base;code=10089;msg=请求的市场数据对于API来说需要额外订阅ERROR=reqId=97802;name=rt_volume_233;code=10089;msg=请求的市场数据对于API来说需要额外订阅ERROR=reqId=97803;name=shortable_236;code=10089;msg=请求的市场数据对于API来说需要额外订阅ERROR=reqId=97805;name=ib_dividends_456;code=10089;msg=请求的市场数据对于API来说需要额外订阅这说明请求结构是通的,限制在行情订阅权限。
先确认基础一档行情能返回价格和数量,再逐个添加 generic tick。不要一次请求很多字段;否则只看到错误时,很难判断是哪个字段、哪个权限或哪个合约导致问题。