跳转到内容

持续时间

durationStr 表示从 endDateTime 往前取多长一段历史数据。它不是开始时间,而是“回看窗口”。

<数量> <单位>

常见单位:

单位含义示例
S60 S
D2 D
W1 W
M1 M
Y1 Y

示例:

app.reqHistoricalData(
1001,
contract,
"",
"2 D",
"1 hour",
"TRADES",
1,
1,
False,
[],
)

如果 endDateTime="",TWS 以可用的最新时间作为结束点,向前取 durationStr 指定的长度。

如果你填写具体结束时间,例如:

20260612 16:00:00 US/Eastern

那么 2 D 表示从这个结束时间往前取 2 天,而不是自然日 0 点到 24 点。

durationStr 越长,barSizeSetting 越小,返回的 K 线越多,也越容易触发限频或被 TWS 拒绝。

组合新手判断
1 D + 1 hour合理,适合测试
1 D + 5 mins合理,AAPL 常规交易时段参考返回 78 根
1 Y + 1 sec不合理,请求量过大
1 M + 1 day合理,适合日线回测

写回测下载器时,不要一次请求很大的历史范围。更稳妥的方式是按 bar size 分段请求,并在每段之间加入节流和重试逻辑。