Interactive Brokers API 的 Python 同步/异步框架
项目描述
介绍
IB-insync 库的目标是尽可能轻松地使用盈透证券的 Trader Workstation API 。
主要特点是:
易于使用的线性编程风格;
一个 与交易平台或 IB 网关应用程序自动保持同步的IB 组件;
面向高级用户的基于 asyncio 和 eventkit的完全异步框架;
在 Jupyter 笔记本中使用实时数据进行交互式操作。
安装
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 >