每周重新认证
每周重新认证是长期运行 TWS / IB Gateway 时必须提前设计的事项。程序不能自动绕过 IBKR 的登录认证。
官方文档提到,如果出现类似下面的登录失败信息,通常代表需要人工重新登录完成每周认证:
Login failed = Soft token=0 received instead of expected permanent ...这不是 Python、端口或 clientId 的问题。此时要先回到 TWS / IB Gateway 完成登录认证。
遇到每周认证相关问题时,先按这个顺序看:
| 顺序 | 检查项 | 说明 |
|---|---|---|
| 1 | TWS / IB Gateway 是否已经登录 | 没登录时,API 代码再正确也连不上。 |
| 2 | 是否出现双因素认证提示 | 需要人工确认,程序不能自动代答。 |
| 3 | API 是否收到 nextValidId() | 收到后才说明 TWS API 会话可用。 |
| 4 | 程序是否恢复订阅和订单状态 | 重新登录不等于策略状态自动恢复。 |
服务器部署怎么做
Section titled “服务器部署怎么做”如果把 IB Gateway 放到 Linux 服务器上,需要预留:
- 远程登录或可视化管理方式。
- 每周人工认证提醒。
- 认证失败后的告警。
- 重启后自动拉起 IB Gateway 和策略程序的脚本。
和 2FA 的关系
Section titled “和 2FA 的关系”2FA 是登录阶段的安全认证。TWS API 连接的是已经登录的 TWS / IB Gateway,不负责完成 2FA。
所以 API 代码能不能连上,前提是 TWS / IB Gateway 本身已经处在可用登录状态。
官方 TWS API 文档提醒,长期 API 用户需要处理每周重新认证;认证失败时通常需要人工重新登录。