【问题标题】:couldn't get interactive broker historical data无法获取交互式经纪人历史数据
【发布时间】:2019-05-30 05:59:20
【问题描述】:

我正在开发 IB Gateway 并希望获取历史数据。 因为我已经完成了 IB Gateway 软件启用 API 的步骤。

我为此使用 python 笔记本。 现在我正在运行这段代码,我可以导入给定的库,但是其余的代码给了我这个错误。重要的是建立了连接,因为我提到了客户端 ID 1。然后它被创建并可以在 IB 网关应用程序上看到。

我的代码在这里。

from ib_insync import *
#util.startLoop() # uncomment this line when in a notebook

ib = IB()
ib.connect('127.0.0.1', 5021, clientId=1)

bars = ib.reqHistoricalData(
       contract=Stock('TSLA', 'SMART', 'USD'),
       endDateTime='',
       durationStr='30 D',
       barSizeSetting='1 hour',
       whatToShow='TRADES',
       useRTH=True)

print(bars)

这是错误。

Peer closed connection
clientId 1 already in use?
API connection failed: CancelledError()

如果我取消注释第二行 (util.startLoop()) it adds one more error about timeout..,我正在使用笔记本

需要帮助才能完成这项工作。

非常感谢

【问题讨论】:

  • IB 的实际错误是什么?您确定您订阅了数据并且没有运行并行帐户吗?如果您运行一个包含实时数据的生产帐户和一个仅使用一个数据订阅进行测试的演示帐户,您将不会获得后者的数据。
  • 您只能使用唯一的 clientId 进行连接。如果您已经连接,请更改它。在某些情况下,断开连接不起作用或需要很长时间,因此只需更改 clientId。我不使用 ib_insync 但这里有作者的用户组groups.io/g/insync

标签: interactive-brokers


【解决方案1】:

为此连接分配一个不同的clientID

ib.connect('127.0.0.1', 5021, clientId=2)

显然您已经与clientId=1 建立了另一个连接。

【讨论】:

  • 谢谢,这对我有用,有助于建立连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 2016-08-13
  • 1970-01-01
  • 2012-11-18
相关资源
最近更新 更多