python - 不使用 Ibpy 的 IB API Python 示例

标签 python api tws

有人可以帮我弄清楚如何使用 IB API Python 套接字进行基本请求吗? (我正在使用最新的 IB API,它似乎支持 Python,所以应该不需要人们过去使用的 Ibpy)

我这样的代码可以简单地工作并连接到交易平台。 问题是:我不知道如何“查看”从 IB 发回的消息。

from ibapi import wrapper
from ibapi.client import EClient
from ibapi.contract import *


w = wrapper.EWrapper()
myTWS = EClient(w)
myTWS.connect(host='localhost', port=7496, clientId=100)

print("serverVersion:%s connectionTime:%s" % (myTWS.serverVersion(),
                                          myTWS.twsConnectionTime()))
myTWS.startApi()


c = Contract()
c.m_symbol = "AAPL"
c.m_secType = "STK"
c.m_exchange = "ISLAND"
c.m_currency = "USD"


myTWS.reqRealTimeBars(999, c, 5, "MIDPOINT", True, [])

我知道在使用 IBPy 之前它类似于 Register()。我只是不知道如何在当前的 IB 原始 python API 中执行此操作。有人可以给我一个简单的例子吗?提前致谢。

最佳答案

有一个新项目可以简化 Python TWS Api 的工作。

它称为 IB-insync,它允许同步和异步处理。它看起来非常适合 TWS API 的新手。 Link to Project Page

使用IB-insync请求历史数据的例子:

from ib_insync import *

ib = IB()
ib.connect('127.0.0.1', 7497, clientId=1)

contract = Forex('EURUSD')
bars = ib.reqHistoricalData(contract, endDateTime='', durationStr='30 D',
    barSizeSetting='1 hour', whatToShow='MIDPOINT', useRTH=True)

# convert to pandas dataframe:
df = util.df(bars)
print(df[['date', 'open', 'high', 'low', 'close']])

关于python - 不使用 Ibpy 的 IB API Python 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42867933/

相关文章:

python - Seaborn ValueError : zero-size array to reduction operation minimum which has no identity

python - OpenCV 通过 python : Is there a fast way to zero pixels outside a set of rectangles?

java - 通过 IB API 请求外汇数据(指定的目标交易所无效)

java - 盈透证券 API - 执行多笔交易

python - django - 不显示模板文件中的更改

python - Pandas read_excel 干扰 na_values 和转换器错误?

android - 更改几乎准备就绪的 Android 应用程序的目标

iphone - 使用 ObjectiveC/iPhone 中的 TwitPic API

java - Asynctask 未知类型执行

python - 用于下载股票基本数据的 TWS API 仅运行第一个数据条目,而忽略其他数据条目。这个问题找谁解决?