跳转到内容

历史 K 线周期

barSizeSetting 决定每根 K 线覆盖多长时间。它必须使用 TWS API 支持的字符串,不能随便写成 60m1hdaily

类别常见写法
秒级1 secs5 secs10 secs15 secs30 secs
分钟级1 min2 mins3 mins5 mins10 mins15 mins20 mins30 mins
小时级1 hour2 hours3 hours4 hours8 hours
日以上1 day1 week1 month
策略类型常用周期注意事项
日内观察1 min5 mins15 mins注意小周期限频
波段回测1 hour1 day数据量适中
长期分析1 day1 week1 month注意复权和公司行动
实时拼接5 secs 或分钟级可考虑 keepUpToDate=True
app.reqHistoricalData(
1002,
contract,
"",
"1 W",
"1 day",
"TRADES",
1,
1,
False,
[],
)

上面表示请求最近 1 周的日线数据。

K 线周期越小,返回条数越多。你应该根据策略真正需要的粒度选择周期,不要为了“更精细”默认请求秒级数据。秒级历史数据更容易触发 pacing,也更容易遇到权限、可用年限和返回速度问题。

官方有效取值使用固定英文字符串,程序里建议用白名单保存,不要让用户自由输入 1h5m 这类简写。