问题标签 [ibpy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何修复 IbPy 消息中的错误转换浮点数
我正在使用IbPy读取当前订单。返回以使用EWrapper 方法处理的响应消息具有一些似乎属于错误类型的属性。
首先,这是我的订单相关消息处理程序。它旨在捕获由于调用reqAllOpenOrders()
.
在上面的代码中,我将所有对象及其属性加载到 dict 中,然后将其附加到_order_resp
.
日志输出行显示与 IB 的健康交互:
但是当查看放入_order_resp
字典的数据时,看起来有些数字是关闭的:
在源代码中,我们看到它m_maxCommission
是 a float()
,但它的值看起来像一个 int,并且比大多数人喜欢支付的佣金要大得多。
其他一些键像m_equityWithLoan
具有字符串类型值,但源代码说这是正确的。
如何解决我得到大整数而不是浮点数的情况?是否可以从内存中读取值并将其重新解释为浮点数?这是盈透证券 API 问题吗?
ibpy - 是否可以使用 TWS/IBpy 接口来收集和分析分时数据?
在寻找测试纸面交易策略的模板时,我偶然发现了 IBPy。我已经完成了初始设置,可以连接并从服务器接收更新。我想做的是:
a)在发布新价格(出价/要价)时从 1..n 个符号中收集刻度 b)将它们临时存储在一个向量中(我猜是 vector.append((bid,ask)) c)一旦向量到达它的计算最大值(我需要 30 秒或一定数量的滴答声)我将在 vector[] 上计算一些值并决定一个条目是否合适 d)如果不是 pop(0) 并继续收集 e)在止损或追踪利润上退出
我的问题是:
i)我已经读到更新是 250 毫秒,这对我的分析来说很好,但是程序/系统可以跟上,因为不同的符号在不同的时间更新,所以仅仅因为 symbolA 每 250 毫秒更新一次,有 10 个符号更新可能非常频繁 ii ) 当我停下来进行计算时,我没有丢失更新吗?
如果有这方面的骨架代码,最好弄乱它
谢谢收听!
python - 安装 IbPy 以在 spyder (anaconda) 中使用
我已经安装了 Anaconda,目前正在使用 Spyder IDE。
我正在尝试安装一个包(IbPy -> https://github.com/blampe/IbPy),以便它可以在 Spyder 中使用。
到目前为止,我尝试了 pip install ibpy 以及 conda install ibpy,但没有成功,因为该软件包在我通常会更新和下载最常见软件包的 anaconda 存储库中不可用。
我还尝试将从 GitHub 下载的文件夹移动到 Anaconda 的正确站点包文件夹(C:\Users\Username\Anaconda2\Lib\site-packages),但它仍然不起作用。
我也尝试运行 setup.py(shift + 右键单击文件夹,在此处打开新进程,Setup.py 安装),但没有任何成功。
我试图到处寻找解决方案,但到目前为止我没有运气。
如果有人比我更精通技术并且在这些特定方面更实用可以提供帮助,我们将不胜感激。
python - 使用 IBPY 的 Python 未解决的导入错误
我是 Python 新手,我在 Eclipse 中使用 PyDev 来练习 Python,解释器是 Python 3.5。
我正在尝试开发 Python 代码来访问 Interactive Brokers,只需复制链接中描述的代码:
我下载了最新的 IBPY 库(ib-0.8.0),并使用命令安装了它
python setup.py 安装
但是,我在复制代码后一开始就出错了
PyDev 显示Contract、Order和Connection的未解决导入消息
我检查了提取的 IBPY 库文件夹,它们都在那里
有人可以帮我找出原因吗?
非常感谢!
python - 带有盈透证券 API 的 Ibpy 无法正常工作
我觉得有一些根本性的错误。我从一个示例代码到另一个示例代码尝试了每一个,但我从来没有成功过。
下面是我运行的脚本和响应的集合。这些脚本中的大多数来自 StackOverflow 上的示例,该人似乎已经成功(在一些帮助之后)。唉,我没有成功,只是觉得我所做的事情一定有什么问题。
在我开始使用似乎在这里不起作用的脚本之前,先介绍一下我的交互式经纪人 GUI、TWS 的配置。
API - 设置
选中:启用 ActiveX 和 Socket 客户端。未选中:启用 DDE 客户端。未选中:只读 API。选中:在连接时下载未结订单。选中:发送投资组合时包括外汇头寸。选中:发送 EEP 的状态更新。Socket 端口 = 7496。选中:使用负数绑定自动订单。未选中:创建 API 消息日志文件。未选中:在 API 日志文件中包含市场数据。未选中:让 API 帐户请求切换用户可见的 acc 订阅。日志记录级别 = 错误。主 API 客户端 ID = 100。将批量数据发送到 API 的超时时间为 30 秒。Component Exch Separator = 空白(此处无条目)。选中:仅允许来自本地主机的连接。
API - 检查预防措施:绕过 API 订单的订单预防措施。此选项卡中的所有其他内容均未选中。
示例 1。
运行脚本和响应
我想我可以连接到 TWS 吗?
示例 2。
运行脚本和响应
所以什么都没有返回?
示例 3。
运行脚本和响应
再一次,什么都没有得到回报?
例 4。
运行脚本和响应
有没有历史数据?去掉 "print(con.req..." 中的 "print" 仍然没有区别。
例 5。
运行和响应
所以似乎没有任何效果,我觉得我错过了一些基本的东西?当我运行 python 脚本时,我已经登录并运行了 TWS,TWS API 设置(见上文)对于其他人在网上所说的内容似乎是正确的。
非常感谢任何帮助。
python - IbPy 无法发送订单 - 必须指定一个帐户
我尝试使用以下代码尝试向 TWS 发送订单以放置在谷歌股票上。我不明白为什么它一直要求一个帐户,我打开了 TWS 并检查了启用 ActiveX 等。我还检查了套接字编号和客户端 ID 是否正确。
我收到以下错误
如果我在演示 IB 账户中运行代码,订单就会下达并执行,所以一切正常!但是当我在模拟交易账户中运行相同的代码时,就会收到上述错误消息。
有谁知道“指定一个帐户”,即在某处输入我的帐号?
ibpy - 使用 IBpy 运行 reqMktData 时遇到“chr() arg not in range(256)”
首先,我使用的是Python2.7,我的操作系统是win7,我的IBpy包是最新的,从github下载的。
我运行了 example_opt.py,它是 IBpy 的一个演示,然后我遇到了以下问题:
示例代码如下:
有人可以帮我解决这个问题吗?我认为这可能是最新版本的错误,因为我发现其他人也在 github 中问过这个问题。
非常感谢。在线等你的答案!
python - Python中的连接保护IBPy和RequestID自动递增IBPy
我有这段代码可以执行一些算法,但是有一些难以解决的明显错误,因为我是 Python 和 IBPy 的新手,而且无论如何连接问题总是任何语言的专业问题。
- 第一个问题是,虽然类声明本质上是正确的,但只要您有两个“Downloader”类实例,它就会停止工作,如下面的代码所示。我可以很容易地看到处理这个问题的方法是进行错误检查而不声明新的连接实例,或者只是检查连接是否打开而不声明新实例。另一种方法是不创建新对象,但在这种情况下,我看不到如何在算法中执行操作,因此您可以在这里理解我的困境。另请注意,在主程序中,我初始化了另一个连接,但我想知道这是否有必要;因此,如果您是 IBPy 专家,您能否通过在“下载器”类中打开连接来告诉我是否连接到 TWS 创建直接到 API 的连接(这是我试图通过主程序中的连接实现的)并且不再需要在主程序中初始化新连接?我必须强调我不是 Python 或 IBYPy 的专家,我非常需要知识渊博的人的帮助。
- 另一个令人震惊的问题是“requestID”。这在类的第一次实例化中递增,但在第二次实例化中重新初始化。再一次,唯一的解决方案是错误检查然后递增并且不再初始化,或者检查是否非零并递增,或者找到不需要新对象实例的方法。(在一个不相关的说明中,我认为有一种复杂的方法来增加 c_id 和 order_id 但现在看不到如何,所以如果你有想法,欢迎他们)
这是代码
python - 使用盈透证券 IBPy 获取投资组合名称和现有订单
我已经用 IBPy 试验了一段时间。但是,以下两件事一直困扰着我:
a) 头寸所属的实际投资组合的名称如何?我知道如何找到头寸、它们的成本、价值等(使用 message.UpdatePortfolio),但交易模拟可能会有很多投资组合,它有助于了解每个头寸属于哪个投资组合。甚至可以在多个投资组合中向 IB 发送信息吗?
b) 如何使用 IBPy 找出现有订单?所以当我运行代码时,我希望它显示所有头寸,以及它们的订单类型和限制(例如,如果它是 AAPL 的限价单,我想找到限价等)
非常感谢!