通过 Python 连接到 Interactive Brokers API

Connecting to Interactive Brokers API via Python

我希望将 Python 连接到 Interactive Brokers API。 google 搜索揭示了 ibPy 的可用性(参见 https://pypi.python.org/pypi/ib) however it appears this library is not maintained nor does it support Python 3. I also found https://github.com/colin1alexander/IbPython3 但是该项目已被取消。

我知道 Quantopian 使用 Interactive Brokers 作为他们的执行代理,但有一个 python 算法策略的前端。我很想知道他们是如何做到这一点的?然而,更广泛地说,有人对如何将 python 连接到交互式经纪人有任何建议 resources/insights 吗?

Update

IB 现在(2017 年 2 月)有一个官方 Python SDK(又名 API)。它仅支持 Python 3(如果 Python 2 是必须的,请使用 IbPy)

支持 API 版本 9.72 及更高版本。


ibpy 项目在 https://github.com/blampe/IbPy 下找到了一个新家(而且显然是新主人)

正如您在 README 中看到的,支持的 API 版本是 9.70。当前 IB API 版本是 9.72,但现有的 ibpy 与当前版本的 TWS(952 稳定版,954 最新版截至 2015 年 1 月)和相应的 9.72 API .

如果使用 Python 3,我会将大部分重点放在 bytes vs unicode 主题中,因为传递到 API 的字符串(根据我的经验)必须是字节(我通常从未来做 Python 2 ... unicode_literals)

ibpy 发行版随附的示例开箱即用。

编辑:

我在其他答案中添加了几个工作示例:

  • Getting parameters of listed options & futures in Interactive Brokers API

他们使用 Queue 使其成为一个完整的工作示例(相同的概念可以应用于传递历史或 real-time 数据),它传递所请求的内容(或相应的错误)

Interactive Brokers 现在有官方 Python API (beta 9.73) download。它需要 Python 3.1+。

参见docs

除了正式的 IB 网络研讨会。有在线研讨会和Github如下。

乌迪米: https://www.udemy.com/python-algo-trading-with-interactive-brokers/

Github: https://github.com/anthonyng2/ib

内容比较全面,涵盖了使用方法python 3.x:

  1. 提取账户和投资组合信息
  2. 下订单
  3. 请求市场数据
  4. 获取历史数据
  5. 获取市场深度信息
  6. 下载实时柱状图
  7. 提取执行信息,包括佣金报告