跳转到内容

历史 K 线周期

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

类别常见写法
秒级1 secs、5 secs、10 secs、15 secs、30 secs
分钟级1 min、2 mins、3 mins、5 mins、10 mins、15 mins、20 mins、30 mins
小时级1 hour、2 hours、3 hours、4 hours、8 hours
日以上1 day、1 week、1 month
策略类型常用周期注意事项
日内观察1 min、5 mins、15 mins注意小周期限频
波段回测1 hour、1 day数据量适中
长期分析1 day、1 week、1 month注意复权和公司行动
实时拼接5 secs 或分钟级可考虑 keepUpToDate=True
app.reqHistoricalData(
1002,
contract,
"",
"1 W",
"1 day",
"TRADES",
1,
1,
False,
[],
)

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

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

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