跳转到内容

无效格式时断开连接

Maintain connection upon receiving incorrectly formatted fields 的意思是:当 API 客户端提交了格式不正确的字段时,TWS 是否尽量保持连接,而不是直接断开。

官方位置:

Global Configuration / 全局配置 -> API -> Settings / 设置

常见原因包括:

  • 字段类型不对,比如该传数字却传了字符串。
  • 字段格式不对,比如时间、合约、价格格式错误。
  • API 客户端版本较新,但本地 TWS / IB Gateway 版本较旧。
  • 使用第三方库时,底层消息编码不符合所用 TWS API 协议。

官方文档说明,TWS 10.28 及以上默认启用该设置。
对于 Client Version 100 及以上的客户端,启用后提交无效字段时不会因为字段格式问题直接断开连接。

这个设置能提升开发排查时的容错性,但不能把错误请求变成正确请求。

如果字段格式不对,正确做法仍然是:

  • 读取 EWrapper.error 回调。
  • 记录 reqIderrorCodeerrorString
  • 对照错误处理章节修正字段。
  • 不要在错误请求上无限重试。

面向 Agent 的文档检索会把常见字段错误整理成规则,比如合约缺少 currency、订单缺少 orderType、历史数据参数不匹配。这样 Agent 生成代码时可以先检查字段,再给出示例。

对人工读者来说,这个选项的价值是:字段错了也尽量保留连接,让你能从 error() 回调里看到更明确的错误,而不是只看到 Socket 断开。

官方文档说明,该设置在 TWS 10.28 及以上默认启用;Client Version 100 及以上在启用时不会因无效字段提交而直接断开连接。