【发布时间】:2020-06-02 22:08:43
【问题描述】:
• 我的脚本一直运行到 “错误 10182,reqID 1639:无法请求实时更新(断开连接)”,这表示历史数据场处于非活动状态。
• 通常在下班后(我在交易外汇)期间会弹出此错误。
• 我尝试添加 print(util.globalErrorEvent)。它会在 10 秒左右打印所有内容,但在 10182 错误之前或之后未检测到错误。
• 我通过网关连接,目前使用纸质帐户进行测试。
• 如果我查看我的 IB Gateway 应用程序,则在发生错误之后 – 除了历史数据农场之外,所有内容都是绿色的。此行为黄色,状态为 Inactive:cashhmds
• 如果我随后停止我的程序并重新启动它,Gateway Historical Data Farm 将切换为绿色,并且一切都重新开始工作(无需重新启动 Gateway)。
我的大问题是如何标记历史数据场处于非活动状态,以便我可以“优雅地”断开连接并重新连接以重置实时更新? 如果我可以注册历史数据场处于非活动状态,那么我可以实现逻辑以重新启动连接。 • 如果Historical Data Farm == inactive 或error = 10182,那么我可以重新启动连接。
一旦我遇到这个错误,实时数据更新就会永远停止,直到我停止我的 python 脚本并重新启动它(基本上是重新启动连接过程)。程序不会退出或出错,其他逻辑将继续(例如检查时间以注册何时关闭程序一周)。
【问题讨论】:
-
我不使用 ib-insync。试试groups.io/g/insync
-
感谢您的建议。我也试过在那里发帖,但没有运气。
-
您是否偶然找到了解决这个问题的方法?
标签: python error-handling interactive-brokers