问题标签 [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.

0 投票
1 回答
511 浏览

ibpy - IBpy 无法取消手动下的未结订单

当使用 ibpy 试图手动关闭 TWS 上的一些头寸时,我们无法做到这一点。具体来说,在执行时:

我们得到 id 为 0 的订单(可能是因为我在 TWS 上手动放置)

当试图关闭它时:

或者

我得到错误:

知道我们如何关闭它们吗?谢谢你。

0 投票
1 回答
379 浏览

ibpy - 我们如何使用 ibpy 来编辑订单?

我知道在 ibpy 我可以下订单来创建新订单:

但是,假设我知道要更改一些已下订单的限价。有没有类似的东西:?

或者简单地使用带有特定 order_id 的下订单可以吗?

0 投票
2 回答
298 浏览

ibpy - 请求有关 ibpy 的投资组合信息而不是“更新它”

我每 10 秒使用 ibpy 获取我的投资组合信息(我经常需要此信息),特别是每份合约的未实现 pnl 信息。我这样做的方式是:

但是,因为我经常这样做(每 10 秒一次)。似乎投资组合信息没有被发回,它通常会导致空投资组合。我如何确保我可以请求和刷新投资组合信息而不是更新(这意味着我每次请求时都应该获得完整的投资组合信息)?谢谢你。

0 投票
2 回答
5488 浏览

python - 盈透证券 - 获取 OPT 的历史数据(MIDPOINT 和 TRADES)

我正在尝试通过盈透证券 API 获得在 SPY 上编写的底层证券和期权,虽然获得当前期权(包括罢工、权利等)不是问题,但我坚持获取历史数据,比如从 5 个月到现在。

代码如下:

我得到的是:

现在我知道 Contract 对象不包含这些,但如何知道权利、罢工和到期?这基本上就是我所需要的(在选项期间有一个日期和潜在的变化)。有不同的方法吗?

如果您能给我一些指示,那将是非常受欢迎的!或选择范围的基础和期权的替代来源,包括行使权、权利和到期日(无论是否支付;单项项目需要它)。

非常感谢您!非常感谢任何输入。

0 投票
1 回答
520 浏览

python - IBPy:从 reqMktData 获取陈旧数据?

嗨,我已尝试使用以下代码让 IBPy 为我提供证券列表的最后价格,然后将这些价格保存到 csv

当我使用这个代码时,它开始获取我提供的股票列表的数据,但最终被一个单一的代码捕获,它重复接下来几个代码的价格。这种情况在整个列表中偶尔发生,但例如在一次运行中,它给出 SLB 的价格为 80.63(正确)然后简单地重复列表中其余股票的 80.63 的价格,不知何故没有将变量 px 更新为新值对于新的代码。每次我运行它时,这似乎总是发生在列表中的某个地方,其中为一个代码提取了正确的数据,然后几个后续代码具有相同的值。关于如何解决此问题或以不同方式从 IB 提取实时数据以避免股票列表出现此问题的任何想法?

0 投票
1 回答
302 浏览

python - 如何在 python 控制台上检索和显示来自 TWS 的历史数据?

我能够成功地建立从 python 到的连接,TWS但我无法获取数据或不确定数据是否已获取但未显示。

我是新手,你能帮忙看看如何从中获取历史数据TWS吗?

0 投票
1 回答
3164 浏览

python - IBPY 中的 reqHistoricalData 不返回任何内容 [python]

我正在尝试通过 Ibpy 从盈透证券 (IB) 获取历史数据。我已经为此任务尝试了几个脚本,这些脚本是我从其他人那里改编而来的,他们指出它应该可以工作。但是,它们都不适合我!我是 python 新手,所以我承认我对这些方法的工作原理没有完全的了解——但是,我应该尝试最明显的修复。下面我列出了我尝试过的两个脚本。我正在使用python 2x。

在 TWS 中,我有以下设置:

选中:启用 ActiveX 和 Socket 客户端。未选中:启用 DDE 客户端。未选中:只读 API。选中:在连接时下载未结订单。选中:发送投资组合时包括外汇头寸。选中:发送 EEP 的状态更新。Socket 端口 = 7496。选中:使用负数绑定自动订单。未选中:创建 API 消息日志文件。未选中:在 API 日志文件中包含市场数据。日志记录级别 = 错误。主 API 客户端 ID = 222。将批量数据发送到 API 的超时时间为 30 秒。组件交换分隔符 = 空白。选中:仅允许来自本地主机的连接。

API - 检查预防措施:绕过 API 订单的订单预防措施。此选项卡中的所有其他内容均未选中。

当我运行 python 脚本时,我已经登录并运行了 TWS,与其他人在网上所说的相比,上面的 TWS API 设置似乎是正确的。我有一个真实的IB账户订阅美国股票数据。还应该提到的是,我也尝试运行另一个通过 IBPY 下订单的脚本 - 这很有效,所以问题似乎只存在(至少目前)关于获取历史数据。

脚本 1:

这应该返回 csv 文件中的数据。csv 文件已创建,但它是空的。

回复:

所以它显然不会返回任何东西。

脚本 2:

这里的回应:

再次没有返回任何内容。我不知道为什么,因为它似乎对其他人有用。我可能错过了一些基本的东西,因为我对 Python 还很陌生?

很感谢任何形式的帮助。

0 投票
1 回答
1240 浏览

python - 使用 python 从 IB api 获取外汇汇率

我正在尝试使用 ibpy 库从交互式经纪人那里获得货币汇率,我在谷歌上找到了一些代码,我做了一点改动。

以下是结果

我现在遇到的困难是,首先我想消除所有那些不相关的消息,其次,我似乎无法让全局变量(出价、询问、最后)工作。

有什么建议么?提前致谢

0 投票
3 回答
4968 浏览

python - 如何在 Python 中接收来自 IBs API 的数据?

盈透证券刚刚发布了他们 API 的 Python 版本。我正在尝试获取数据。

我正在使用“Program.py”中的“示例”,只是试图获取帐户值。我只想知道账户清算价值是多少,然后把它输入python。这是文档。这是创建和发送请求的代码:

我可以使用 IB 网关,查看正在发送的请求,以及返回到 IB 网关的响应。我无法弄清楚如何将响应输入 Python。如果我正确阅读文档,我会看到:

我该怎么办?好像我调用这个函数来获取值,但是这个函数需要我想要返回的值作为输入!我错过了什么!??!

感谢任何人都可以提供的任何帮助。

编辑:

这是我认为的“回调”:

这就是我感到困惑的地方。这似乎期望帐户的值(声明中的'value:str'),这正是我要求它产生的。我找不到我会说类似以下内容的地方:

因此,“myMonies”将保留账户价值,我可以继续我的快乐之路。

0 投票
1 回答
1336 浏览

python - 脚本不会实时打印到控制台 [PYTHON]

我正在测试如何通过交互式代理的 API 和 reqMktData 接收实时数据。该算法通过无限的while循环运行,它允许实时实时流数据,直到我停止脚本。当我运行它时,它应该按照下面的代码中指定的方式将数据连续打印到控制台。但是,在我点击“停止当前命令”之前,什么都不会打印。然后我得到一个巨大的数据转储,其中包含自脚本执行以来收到的所有数据。

我尝试了以下解决方案,在脚本开头导入 sys 并在每次打印后刷新输出。但是,这也不起作用:

我正在使用 python 2.7 和 spyder——我对 python 还是很陌生。

希望有人能帮忙!非常感谢任何输入。

我正在测试的脚本: