有人可以帮我弄清楚如何使用 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/