问题标签 [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.
python - Python IBAPI reqContractDetails 在第二次运行时不会返回结果
我想请求合同详细信息,它在我第一次运行代码时工作,但是当我再次按运行时,它不会返回任何内容。如果我退出 TWS 和 pycharm 并重试,它将起作用。我是 python 新手,不了解它的整体工作原理,请帮忙。
没有错误消息,只是没有结果:“进程以退出代码 0 完成”。
tws - IB Api 通过传递交换名称获取符号列表
我是 IB API 的新手,我想获取特定交易所类型的符号列表。所以基本上我会通过交换/类型并接收符号列表。
我无法找到相关的方法。
请指教。
python-3.x - 运行 ibapi 的 EReader 线程中的异常错误
我正在运行 Python ib-api 来接收来自 Interactive Brokers 的实时市场数据。它可以提供我期望的数据,但以“EReader 线程中未处理的异常”结尾。
以下是错误消息:
EReader 线程 Traceback 中未处理的异常(最近一次调用最后一次):文件“D:\Anaconda3\envs\myweb\lib\site-packages\ibapi\reader.py”,第 34 行,>运行数据 = self.conn.recvMsg () 文件“D:\Anaconda3\envs\myweb\lib\site-packages\ibapi\connection.py”,行 >99,在 recvMsg buf = self._recvAllMsg() 文件“D:\Anaconda3\envs\myweb\ lib\site-packages\ibapi\connection.py", line >119, in _recvAllMsg buf = self.socket.recv(4096) OSError: [WinError 10038] An operation was tried on something that is >not a socket
python - 安装 ibapi 包
嗨,我正在尝试在 python 中安装 ibapi,但是该软件包似乎不可用,因为每次尝试安装时都会出错,是否有另一种方法可以安装此软件包。对你的帮助表示感谢。我留下了我使用的代码。尝试安装软件包
python - 在 jupyter notebook 中总是出现运行时错误
每次我尝试连接到 Ibt 时,都会收到运行时错误“此事件循环已在运行”。我不记得我之前有过这个错误,可能是我开始了一个没有结束的循环。这是代码和错误日志:
任何想法我该如何解决这个问题?
python - 我怎么知道我从 ib_api reqMktData 检索数据?
我是 Python 新手,开始使用 Interactive Brokers API。我的模拟账户中有一个期权组合,并希望检索与每种工具相关的风险。
我只从我在代码中定义的单一期权合约开始(DIS...)。我知道我缺少一些权限,但我应该能够使用 tickType = 83 的 tickOptionComputation(基于期权和基础价格的最后收盘价)。
我在哪里将 ticktype 指定为 83?它是否应该在被覆盖的 tickPrice 方法中(我需要在此处添加它)如何确保在取消订阅之前填充了我的 all_risk 数据框?我需要以某种方式告诉 reqMktData 停止(通过 cancelMktData),否则我的数据框永远不会被填充,我只是在打印更新。
目前这是我得到的:
另外一个问题,当市场关闭时,我无法从 BOX 交易所获得任何东西,我需要切换到另一个吗?(NYSE/TOP/ALL 或 ARCA,但我错过了那里的市场订阅)
python - 我怎样才能避免得到 OSError: [Errno 9] Bad file descriptor using ibapi?
在以下代码中,我将数据收集到名为 ohlcv 的 pandas 数据帧作为函数并将应用程序抛出到 ib 服务器:
当我调用该函数时,代码运行良好,我将数据收集为 pandas 数据框。但是,我收到以下错误,我想了解并找到避免它的方法:
python - IB_insync 为共享返回小整数(1 = 100, 0 = 50?)需要浮点数或适当缩放的整数
使用 IB_insync API。
加载ticker.Domticks 并接收报价列表时,美元金额似乎是正确的,但份额显示为0、1、3、6 等小整数......当它们最有可能缩放100 倍时......零很可能是少于 100 股。因为它不是浮点数,所以无法缩放。有谁知道为什么它会错误地返回股票号码?我最近确实订阅了 ASX 澳大利亚交易所,并注意到股票数量以数千计,所以它可能是正确的。合约 = 股票('AAPL', "ISLAND","USD") > 合约 = 股票('CBA', "ASX","AUD")
python - 什么是来自 ibapi.utils 的 @iswrapper 装饰器?
顾名思义,@iswrapper
decorator 是做什么的?我经常在官方文档中看到它,但找不到任何解释。
tws - 在哪里定义了哪个回调用于 EClient 中的特定方法
我刚刚开始在 python 中使用 IB API。我能够检索到所有我想要的结果。但是,我遇到了一个大问题。我不完全理解EClient
类和特定回调之间的联系是如何在类中建立的EWrapper
。
截至目前,我了解这样的工作流程(高级):
- EClient 实例调用 IB 网关。
- IB 网关本身与 IB 数据中心联系以获取数据
- 数据返回 IB 网关
- IB网关调用回调,即接口
据我了解,IB网关触发了正确的回调函数。我从文档/源代码中没有看到的是EClient
方法和我在我的EWrapper
类中覆盖的接口(回调)之间的连接。当我在上面的步骤 1 中触发特定方法时。IB 网关如何知道要运行哪个回调?这是在某处指定的吗?