问题标签 [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 投票
2 回答
246 浏览

python - 使用 Python 的 TWS 交互式经纪人 API。通过多种方法接收实时数据时出现问题

要提供有关我的问题的更多背景信息:

我正在使用 python 构建一个连接到交互式经纪人 TWS 的 API。我设法构建了一些功能性的东西,并且能够使用 IB 文档中给出的方法从合约中获取实时数据。现在我想使用所有数据来构建其他并行系统,我在组织来自 IB 服务器的数据时遇到了问题。

我的程序循环一个包含 30 个符号的列表以从中获取实时数据,然后我想将每个符号的数据(例如“HIGH”、“LOW”、“CLOSE”、“VWAP”等)放在一个数据帧中计算指标并从那里提出一个基于这些指标的警报系统。

这个目标我已经完成了,整个程序只使用一个符号。很容易将数据存储在实例或变量中,将其传递给 DataFrame,然后计算以设置警报。

现在,当循环 30 个值的列表并接收所有这些值的数据时,我一直在努力尝试将每个符号的数据存储在一起,然后计算并设置警报。特别是当我必须使用几种方法来接收数据时(例如,我对某些数据使用tickPrice,对其他一些数据使用tickString)这几种方法一个接一个地执行,但它们不一定同时拥有所有数据,有些价值比其他价值需要更多的时间来显示。

我将展示我的代码示例,以提供更多关于我的目标的上下文:

这是我的 EWrapper 类:

然后我有我的应用程序类:

正如您在 EWrapper 类中看到的那样,我有两种方法来接收数据并将符号分配给每个 reqId,然后我传递一个静态方法,它将接收到的数据放在一起,还有要循环的值列表槽。然后在我的 App 类中有连接、构建合同的方法、从 IB 保存 reqMktData 的方法以及获取我需要的参数的方法,以及使用 EWrapper 类中的列表执行 reqMktData 的循环。

以这种方式一切正常,我有这样正确输入的数据:

在此处输入图像描述

问题

因此,我的数据到达方式对我建立警报系统并没有真正有用,因为我没有将每个合同的所有数据放在一起,我不能只使用不同的值来设定条件跟上警报。有一次我要么只有“HIGH”,要么只有“LOW”,或者只有“VWAP”,但我很难弄清楚如何将每个符号放在一起,因为我没有一次拥有所有东西,而且数据每次都不断出现我就是找不到路。

我想澄清一下,我是编程新手,也是使用 python 的新手。对不起我的菜鸟代码,可能是“显而易见的”问题。 但是,如果有人可以帮助我解决这个问题,我将不胜感激。任何其他评论将不胜感激。

亲切的问候

马里奥

0 投票
0 回答
50 浏览

python - 如何使用 IB API 获取当前价格

我有这个代码,我需要将最后的价格存储在一个变量中,我该怎么办?

我需要将当前价格保存在一个变量中

0 投票
0 回答
13 浏览

c++ - Interactive Brokers TWS API C++ - 从 32 位切换到 64 位平台时出现链接错误

Interactive Brokers 交易者工作站中的错误 - C++ API。我可以编译并解决大部分链接错误。我可以让它在 Win32 配置中运行。但我正在切换到 x64 平台,我面临以下链接错误。

请帮助我解决这些错误。

0 投票
1 回答
41 浏览

python - 如何在代码中使用类方法参数(?)作为输入(IBKR / IB API / IB TWS) - Python

(对不起,如果术语/解释不正确)我想打印“我的美元账户余额是:xxx”。目的是了解如何使用类方法参数(不确定这是否是正确的术语)作为代码输入但是,结果是:“我的美元账户余额为:无”。帐户余额打印在单独的行上。

0 投票
0 回答
23 浏览

python - 如何从外部模块返回变量

在使用交互式代理 api python 库时,我尝试从程序中由 ibapi 模块本身支持的特定函数返回一个 dict 对象。

虽然我使用该return语句来获取 dict 对象,但我似乎无法弄清楚从函数返回后的对象路径是什么。如何将对象从外部函数返回到我的主程序?

  • “def tickPrice”是从“self.reqMktData(1, contract, "", False, False, [])" 行的回调,如果我把它放在变量中,它会返回 NONE
0 投票
1 回答
53 浏览

python - 为什么我在 IB API / TWS (Python) 中收到“ERROR 508 322 Error processing request.-'bW':原因 - Duplicate ticker id”

我正在尝试打印 SPY 的开盘价(因此刻度为 14),类似于以美元打印账户余额。在添加尝试打印 SPY 价格的代码之前打印帐户余额有效。但是,我现在收到“ERROR 508 322 Error processing request.-'bW':cause - Duplicate ticker id”。我不明白为什么,因为我的代码中似乎没有重复的股票代码 ID,并且我已经重新启动了 TWS 和 PyCharm。

0 投票
0 回答
26 浏览

python - 如何在 ibapi 中扫描股票市场的 HALT

这是我在互联网上找到的用于扫描的代码,我不明白如何添加选项以在此时停止查找库存

https://interactivebrokers.github.io/tws-api/tick_types.html#halted

0 投票
1 回答
31 浏览

python - 如何使用正在直播的一个变量创建数据框?

我正在使用 IB API 流式传输实时价格数据,我想将其放入数据框中进行分析。我的数据包括一个没有时间戳的实时流媒体价格。

我想我需要使用自动添加的行号创建新行,并将价格插入价格列。

我尝试定义数据框并告诉价格去向如下:

我一直在使用类似于这里的方法(https://github.com/PythonForForex/Interactive-brokers-python-api-guide/blob/master/GOOG_five_percent.py)。但是,由于我只是在流式传输价格,因此我无法使用时间戳来创建新行。

0 投票
0 回答
40 浏览

python - 如何在 IB API 中按合约打印头寸大小

我正在尝试打印持有的股票(或其他金融资产)的数量。我在 nextValidId 下定义了一个股票合约,并定义了如下位置:

然后我请求位置并尝试按如下方式打印结果:

app.reqPositions() 打印合同和头寸,但我想将持有的数量作为字符串语句的一部分。我收到“Apple 持有:0”,但这是错误的。

0 投票
1 回答
23 浏览

python - 将contractDetails从Python中的TWS API导出到df或csv?

这个问题实际上已经在另一个论坛上提出并回答了,但是,答案是通过一个网络链接给出的,看起来这个链接确实已经过期了。因此,我不得不再次向你们这些可爱的聪明人提出这个问题。

有谁知道如何将数据从“contractDetails”导出到 df 或 CSV 文件?这是到目前为止的代码:

这是原始问题的链接:https ://www.elitetrader.com/et/thre...details-to-csv-from-tws-api-in-python.344314/

这是原始答案的链接:https ://repl.it/repls/DamagedStandardDeprecatedsoftware

如果有人能解决这个问题,请放心,晚餐在我身上(Y)