每日重新认证
每日重新认证主要影响长时间运行的程序。TWS / IB Gateway 到达设定时间后可能自动退出、自动重启或要求重新登录,API Socket 会断开。
官方位置:
Global Configuration / 全局配置 -> Lock and Exit / 锁定并退出官方建议 API 用户选择:
Never lock Trader WorkstationAuto restart
这样可以减少空闲锁定导致的断线,并让 TWS 在每日维护窗口后更容易恢复。
常见配置含义:
| 设置 | 中文意思 | 对 API 的影响 |
|---|---|---|
Never lock Trader Workstation | 不因空闲而锁定 TWS | 减少空闲锁屏导致的断线。 |
Auto restart | 到设定时间后自动重启 | API Socket 会断开,程序需要重新连接。 |
Auto logoff | 到设定时间后自动退出 | 程序无法继续连接,通常不适合无人值守运行。 |
Save settings on server | 在服务器保存设置 | 方便同账户环境恢复设置,但不能代替本地配置检查。 |
程序侧怎么处理
Section titled “程序侧怎么处理”每日重启发生时,程序应该:
- 识别断线。
- 等待 TWS / IB Gateway 重新登录完成。
- 使用新的连接重新获取
nextValidId。 - 重新订阅行情、账户、持仓和订单状态。
不要在断线瞬间立刻疯狂重连。更好的做法是按固定间隔重试,并在日志里清楚记录原因。
一个稳妥的重连流程可以写成:
发现连接断开 -> 等待几秒 -> 尝试连接 TWS / IB Gateway -> 等待 nextValidId() -> 拉取 open orders、positions、account values -> 恢复必要行情订阅 -> 恢复策略状态新手容易误解的点
Section titled “新手容易误解的点”Auto restart 不等于 API 程序也会自动恢复。
TWS 重启只是客户端恢复,API 程序仍然要重新连接并恢复业务状态。
每日自动退出、自动重启和“不锁定 Trader Workstation”通常在这个位置设置:
Global Configuration / 全局配置 -> Lock and Exit / 锁定并退出自动重启时间应结合自己的交易时段、服务器监控和 IBKR 维护窗口设置。不要把重启安排在开盘、收盘、定时调仓或风控结算附近。
官方 TWS API 文档把每日退出、自动重启和不锁定 TWS 放在 API 最佳实践设置中,提醒 API 程序需要处理断线和重新登录。