跳转到内容

历史成交量缩放

历史 K 线的 volume 字段表示该 bar 内的成交量,但不同产品、交易所和 whatToShow 类型下,成交量口径可能不同。不要在没有核对单位的情况下,把所有品种的 volume 当成同一种数量。

官方参考:

def historicalData(self, reqId, bar):
print(bar.date)
print(bar.open, bar.high, bar.low, bar.close)
print(bar.volume)
print(bar.wap)
print(bar.barCount)
字段中文含义说明
datebar 时间字符串或 Unix 时间戳,取决于 formatDate
open开盘价该 bar 的第一笔或聚合开盘价。
high最高价该 bar 内最高价。
low最低价该 bar 内最低价。
close收盘价该 bar 的收盘或最后价格。
volume成交量该 bar 的数量口径,可能随品种和数据类型变化。
wap加权平均价Weighted Average Price,具体口径随数据类型变化。
barCount聚合计数可辅助判断该 bar 的活跃程度。

AAPL TRADES5 mins 历史 K 线返回:

BAR=reqId=4101;name=aapl_5min_rth;date=20260612 09:30:00 US/Eastern;open=295.9;high=297.14;low=294.89;close=295.35;volume=1472090;wap=295.893;barCount=10645
BAR=reqId=4101;name=aapl_5min_rth;date=20260612 09:35:00 US/Eastern;open=295.34;high=295.4;low=293.57;close=293.59;volume=725473;wap=294.585;barCount=8512
BAR=reqId=4101;name=aapl_5min_rth;date=20260612 09:40:00 US/Eastern;open=293.6;high=293.75;low=291.87;close=292.4;volume=828923;wap=292.679;barCount=8510

这个结果适合解释股票 K 线成交量,但不能直接推导期货、外汇、债券或收益率类 whatToShow 的单位。

场景建议
股票回测先核对 volume 是否符合 TWS 图表口径。
期货或期权注意合约乘数、交易所单位和最小变动。
外汇成交量字段可能没有股票成交量那样的意义。
收益率类数据重点看价格或收益率字段,不要强行使用成交量。
跨品种策略为每类品种单独定义成交量含义。

如果策略依赖成交量阈值,应先对比 TWS 图表和 API 返回值,确认单位后再批量回测。