如何在Google Colab中成功建立ib_insync连接?
解决Google Colab中ib_insync连接失败问题
一、纠正代码语法错误
你的代码存在语法问题,ib.connect() 是实例方法,不能作为参数传入 IB() 构造函数,正确写法如下:
from ib_insync import * util.startLoop() ib = IB() ib.connect('127.0.0.1', 7497, clientId=1)
二、核心问题:云端运行时无法访问本地TWS/IBG
Colab默认使用Google云端运行时,代码里的127.0.0.1指向的是云端服务器,而非你本地运行TWS/IBG的电脑。必须配置本地运行时,让Colab连接到你的本地Jupyter环境,才能访问本地的TWS API端口。
三、正确配置本地运行时(所有操作在本地终端执行,不要在Colab单元格中运行)
- 安装所需扩展:
pip install jupyter_http_over_ws
- 启用扩展:
jupyter serverextension enable --py jupyter_http_over_ws
- 启动本地Jupyter服务器,允许Colab连接:
jupyter notebook --NotebookApp.allow_origin='https://colab.research.google.com' --port=8888 --NotebookApp.port_retries=0
- 启动后复制终端里的Jupyter访问URL(格式类似
http://localhost:8888/?token=xxxxxx),回到Colab点击右上角「连接」→「连接到本地运行时」,粘贴URL完成连接。
四、确认本地TWS/IBG的API设置
必须确保TWS/IBG的API端口已正确开放:
- 打开TWS/IBG,进入「编辑」→「全局配置」→「API」→「设置」
- 勾选「启用Active X和Socket客户端」
- 勾选「允许来自本地主机的连接」
- 确认端口号匹配:TWS模拟账户用7497,实盘用7496;IBG模拟账户用4002,实盘用4001(你的代码用7497,对应TWS模拟环境)
- 若需要交易权限,取消勾选「只读API」
五、测试连接
完成以上配置后,运行纠正后的代码,即可建立ib_insync连接。
内容的提问来源于stack exchange,提问作者Trevor Wright
相关产品推荐
相关产品推荐

