问题标签 [ib-api]

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 回答
926 浏览

python - Interactive Brokers API (IBAPI) - 使用 threading.Timer 对象在数据连接中断时自动退出

我一直在尝试实现一种机制来请求实时数据(例如reqRealTimeBars)并自动使脚本退出以防数据连接中断。

我一直在用threading.Timer对象(https://docs.python.org/3/library/threading.html#timer-objects)进行测试,这在这个方向上表现出很好的承诺:例如,该脚本(如下)是一个就像 一样的无限循环Eclient.run(),但它在 3 秒后退出,正如计时器所预期的那样

但是,当我尝试将相同的逻辑应用于 Eclient 本身时,它似乎不起作用。下面是我的代码的简化版本。逻辑是当应用程序启动时,定时器设置为 10 秒(或任何超过实时条之间 5 秒时间跨度的持续时间)的超时。然后每次收到一个新柱时,计时器被取消,然后以相同的超时重新创建。这意味着通常代码永远不会达到超时,除非与 tws 服务器的连接中断。

测试下面的代码:启动他的tws,然后启动这个脚本。它应该开始在控制台中打印数据。然后,手动关闭 tws。那会断开连接。通常在 10s 之后,没有被“刷新”的定时器应该触发该exit功能并使程序停止,就像上面的例子一样。但是,它只是保持空闲状态,仍在等待传入的数据。如果有人可以看看,那就太棒了。

我认为这种技术可能是一种非常灵活且很好的方法,可以使任何实时数据收集应用程序变得健壮。它只需要与每 x 分钟运行一次该脚本的 cronjob 相结合,然后在开始时添加一些额外的逻辑,以防止它再次运行,以防它已经这样做了。

请注意,我已经进行了试验,我将超时设置为 < 5s(例如 3s)的值 - 在这种情况下,脚本确实将 thx 退出到计时器......

0 投票
1 回答
563 浏览

python - IBapi想读取和使用IBapi类生成的错误码

我是 python 和 TWS API 的新手,我的问题是我想使用由 Error 生成的错误 ID 。Id: 441 Code: 200 Msg: No security definition has found for the request虽然它显示在终端中,但我无法在变量中获取它以便在我的代码中进一步使用

这是我的代码

这是输出:

我想抓住 错误。id: 443 转换成变量供进一步使用

0 投票
1 回答
1327 浏览

python - 期货数据没有通过 reqHistoricalData 的权限,但 reqMktData 有效

被困在这个问题上一段时间了。我们的帐户启用了所有未来市场数据权限,但是当我尝试为 MES 的当前期货合约请求历史柱数据时,我得到了Market Data Service error message:No market data permissions for GLOBEX FUT

结果(工作正常):

但是,当我尝试使用相同合约的历史数据时:

我收到来自 IB 的消息:

历史市场数据服务错误消息:GLOBEX FUT 没有市场数据权限

我做错什么了吗?我正在使用 IBPY2

在此处输入图像描述

0 投票
1 回答
1030 浏览

python - 如何在盈透证券导出账户投资组合信息

我想使用数据框来存储我的投资组合信息并每分钟更新一次。但是下面的代码结果是空的,我错过了什么吗?

0 投票
0 回答
182 浏览

interactive-brokers - 有没有办法使用盈透证券 IBAPI 库获取多只股票的实时 OHLC 数据?

我正在尝试为多只股票获取 OHLC。但是,我是 IBAPI 的新手,我找不到任何同时获取多个股票 OHLC 的示例。这是代码:

任何人都可以帮我解决我缺少或没有得到的东西吗?提前致谢。

0 投票
1 回答
235 浏览

python - 如何使用 IBapi 获取市场订单的成交价格?

我正在使用带有 python 的 IBapi(IBKR 本机 API)开发测试算法。我怎样才能得到我的市场订单成交的价格?我查看了官方文档,但很难理解。

如果你能帮助我,我将不胜感激。

0 投票
1 回答
525 浏览

python - 运行 Ibapi / TWS API 脚本时出现订单 ID 错误

我正在运行一个应该只下一个简单订单的测试代码,但是每次运行它时,我都会遇到一个我以前从未遇到过的奇怪错误。这是截图https://imgur.com/a/vuPfsys。这是我的脚本:非常感谢您的帮助...

太感谢了

0 投票
2 回答
309 浏览

python - 使用 python IB API 堆叠数据

我正在下载 5 只股票('A'、'AAP'、'AAPL'、'ABBV'、'ABC')的 15 年数据(每日收盘)。问题是我有一些重复。第一个“A”没有问题,我得到了适量的数据。对于第二个“AAP”,我的行数是正确的两倍,似乎数据被下载了两次。最后 3 只股票的问题相同,我的行数是正确的三倍。我附上了一个显示 csv 文件大小的屏幕截图,如果一切正常,这些文件应该具有相同的大小。
我怀疑问题来自调用 reqHistoricalData 后的 10 秒暂停;可能太长了。我怎样才能避免重复的行以及如何暂停适当的时间(不要太长也不要太短)?

在此处输入图像描述

0 投票
1 回答
520 浏览

python - ib_insync 客户端 - 对等关闭连接

我正在使用很棒的包ib_insync来构建一个带有IB. 我得到一些实时代码数据如下(pseudo code):

基本上我插入tickerEvent5 K 合约,然后收听代码数据。它工作得非常完美,但是随着时间的推移(没有模式,总是不同的时间间隔),比如 5 分钟或 50 分钟,我得到了错误:

我在文档中发现了这个错误。但不知如何处理?怎么抓?我试图抓住它并重新连接,但它没有帮助!

请帮忙解决这个问题!

0 投票
1 回答
171 浏览

c++ - 无法在 IB API C++ 中获取历史数据

我正在尝试获取外汇合约的历史数据(不需要任何订阅)并获取 std::bad_alloc

m_pClient->reqHistoricalData(4001, contract, queryTime, "1 M", "1 day", "TRADES", 1, 1, false, TagValueListSPtr());

这是整个代码: