Skip to main content

Interactive Brokers API 的 Python 同步/异步框架

项目描述

建造 加入用户组 派皮 康达 下载次数 文档

介绍

IB-insync 库的目标是尽可能轻松地使用盈透证券的 Trader Workstation API

主要特点是:

  • 易于使用的线性编程风格;

  • 一个 与交易平台或 IB 网关应用程序自动保持同步的IB 组件;

  • 面向高级用户的基于 asyncioeventkit的完全异步框架;

  • 在 Jupyter 笔记本中使用实时数据进行交互式操作。

请务必查看 笔记本食谱API 文档

安装

pip install ib_insync

对于 Python 3.6,还要安装dataclasses包(较新的 Python 版本已经有它):

pip install dataclasses

要求:

  • Python 3.6 或更高版本;

  • 正在运行的 TWS 或 IB 网关应用程序(版本 972 或更高版本)。确保 API 端口已启用 并选中“下载连接时打开的订单”。

不需要来自 IB 的 ibapi 包。

例子

这是下载历史数据的完整脚本:

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

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

contract = Forex('EURUSD')
bars = ib.reqHistoricalData(
    contract, endDateTime='', durationStr='30 D',
    barSizeSetting='1 hour', whatToShow='MIDPOINT', useRTH=True)

# convert to pandas dataframe:
df = util.df(bars)
print(df)

输出:

                   date      open      high       low     close  volume  \
0   2019-11-19 23:15:00  1.107875  1.108050  1.107725  1.107825      -1
1   2019-11-20 00:00:00  1.107825  1.107925  1.107675  1.107825      -1
2   2019-11-20 01:00:00  1.107825  1.107975  1.107675  1.107875      -1
3   2019-11-20 02:00:00  1.107875  1.107975  1.107025  1.107225      -1
4   2019-11-20 03:00:00  1.107225  1.107725  1.107025  1.107525      -1
..                  ...       ...       ...       ...       ...     ...
705 2020-01-02 14:00:00  1.119325  1.119675  1.119075  1.119225      -1

文档

完整的API 文档

变更日志

讨论

insync用户组是讨论 IB-insync 及其相关内容的地方。

咨询与发展

IB-insync 为个人交易者和金融科技公司提供了构建自动交易系统的便捷途径。但是,要充分利用它并不是一件小事,并且超出了大多数开发人员的能力范围。

如果您需要专家帮助,可以联系我。这可以用于一个小项目,例如在您自己的代码中修复某些内容,或者它可以创建一个全新的交易基础设施。请提供足够的详细信息,以便我评估可行性和范围。许多人担心必须提供他们的“秘密调味料”,但这从来都不是必需的(尽管也非常欢迎您发送它!)

免责声明

该软件是在简化 BSD 许可证的条件下提供的。

该项目不隶属于盈透证券集团公司。

祝你好运并享受,

作者

埃瓦尔德·德·维特 < ewald . _ 机智@gmail _ com >

项目详情


发布历史 发布通知| RSS订阅