无效格式时断开连接
Maintain connection upon receiving incorrectly formatted fields 的意思是:当 API 客户端提交了格式不正确的字段时,TWS 是否尽量保持连接,而不是直接断开。
官方位置:
Global Configuration / 全局配置 -> API -> Settings / 设置什么时候会遇到
Section titled “什么时候会遇到”常见原因包括:
- 字段类型不对,比如该传数字却传了字符串。
- 字段格式不对,比如时间、合约、价格格式错误。
- API 客户端版本较新,但本地 TWS / IB Gateway 版本较旧。
- 使用第三方库时,底层消息编码不符合所用 TWS API 协议。
官方默认行为
Section titled “官方默认行为”官方文档说明,TWS 10.28 及以上默认启用该设置。
对于 Client Version 100 及以上的客户端,启用后提交无效字段时不会因为字段格式问题直接断开连接。
新手怎么理解
Section titled “新手怎么理解”这个设置能提升开发排查时的容错性,但不能把错误请求变成正确请求。
如果字段格式不对,正确做法仍然是:
- 读取
EWrapper.error回调。 - 记录
reqId、errorCode、errorString。 - 对照错误处理章节修正字段。
- 不要在错误请求上无限重试。
和 MCP / 示例代码的关系
Section titled “和 MCP / 示例代码的关系”面向 Agent 的文档检索会把常见字段错误整理成规则,比如合约缺少 currency、订单缺少 orderType、历史数据参数不匹配。这样 Agent 生成代码时可以先检查字段,再给出示例。
对人工读者来说,这个选项的价值是:字段错了也尽量保留连接,让你能从 error() 回调里看到更明确的错误,而不是只看到 Socket 断开。
官方文档说明,该设置在 TWS 10.28 及以上默认启用;Client Version 100 及以上在启用时不会因无效字段提交而直接断开连接。