跳转到内容

步长规则

TWS API 的历史 K 线有 step size 规则:请求窗口越长,允许的最小 K 线周期越大。目的很简单,避免一次请求返回过多数据。

下面是适合新手记忆的组合范围。实际开发时仍应按官方规则和真实返回情况做节流。

durationStr合理的 barSizeSetting 范围
60 S1 sec1 min
120 S1 sec2 mins
1800 S1 sec30 mins
3600 S5 secs1 hour
14400 S10 secs3 hours
28800 S30 secs8 hours
1 D1 min1 day
2 D2 mins1 day
1 W3 mins1 week
1 M30 mins1 month
1 Y1 day1 month

如果请求组合过大,常见结果有三种:

  • TWS 直接拒绝请求并返回错误。
  • 请求很慢,影响后续请求。
  • 频繁请求后触发 pacing violation。

可以先写一个简单的白名单,只允许项目需要的组合:

ALLOWED_HISTORICAL_REQUESTS = {
"1_hour_backtest": {"duration": "2 D", "bar_size": "1 hour"},
"daily_backtest": {"duration": "1 Y", "bar_size": "1 day"},
"intraday_preview": {"duration": "1 D", "bar_size": "5 mins"},
}

这样比让用户随便输入 durationStrbarSizeSetting 更安全,也更容易定位问题。