You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从IB官方API转ib_insync后,如何实现类似的错误处理?

在ib_insync中实现自定义错误处理逻辑

ib_insync 通过事件订阅的方式处理错误,你可以利用 IB 类的 errorEvent 事件来实现和官方API一致的错误处理逻辑,具体实现如下:

from ib_insync import IB

# 定义无需关注的错误码
good_errors = (2104, 2106, 2158)

def handle_error(req_id, error_code, error_string, contract):
    # contract 是 ib_insync 额外提供的参数,若不需要可忽略
    if error_code in (502, 504):
        print("ERROR: 连接失败 - 检查TWS套接字")
        exit()
    elif error_code not in good_errors:
        print(f"Error {req_id} {error_code} {error_string}")
        # 按需取消注释执行断开连接操作
        # ib.disconnect()

# 初始化IB实例并订阅错误事件
ib = IB()
ib.errorEvent += handle_error

# 建立连接
ib.connect('127.0.0.1', 7497, clientId=1)

说明:

  • ib_insync 的错误回调函数比官方API多了一个 contract 参数,用于关联错误对应的合约,若不需要可以在函数定义中省略该参数,或者用 *args 接收多余参数。
  • 订阅事件时使用 += 操作符,支持绑定多个错误处理函数。

内容的提问来源于stack exchange,提问作者TreKar Chrome

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:04:57