Leu*_*hun 5 python algorithmic-trading python-3.x interactive-brokers ib-api
抱歉,我可能会问一个愚蠢的问题,但我只是python和algotrading的初学者。我现在使用带有ib_insync的Python 3.7和ibapi尝试连接交易平台。但是,由于Python 3.7使用async作为关键字,因此当我尝试使用ib_insync进行编码时:
from ib_insync import *
ib = IB()
ib.connect('127.0.0.1', 7496, clientId=1)
contract = Forex('EURUSD')
bars = ib.reqHistoricalData(contract, endDateTime='', durationStr='30 D', barSizeSetting='1 hour', whatToShow='MIDPOINT', useRTH=True)
df = util.df(bars)
print(df['date', 'open', 'high', 'low', 'close'])
Run Code Online (Sandbox Code Playgroud)
它最终像这样:
from ib_insync import *
ib = IB()
ib.connect('127.0.0.1', 7496, clientId=1)
contract = Forex('EURUSD')
bars = ib.reqHistoricalData(contract, endDateTime='', durationStr='30 D', barSizeSetting='1 hour', whatToShow='MIDPOINT', useRTH=True)
df = util.df(bars)
print(df['date', 'open', 'high', 'low', 'close'])
Run Code Online (Sandbox Code Playgroud)
我知道我需要将异步名称更改为其他名称。我试图在ibapi中修改文件client.py,但似乎根本不起作用。为了使它起作用,我应该更改代码的哪一部分?
小智 1
我在 API 973.07 中偶然发现了同样的错误。就我而言,我使用 MacOS,因此文件路径看起来与 Windows 环境不同,但想法是相同的。为了解决这个问题,我刚刚注释掉了文件 IBJts/source/pythonclient/build/lib/ibapi/client.py 中的第 60 行,如下所示:
# self.async = False
Run Code Online (Sandbox Code Playgroud)
不确定它是否会影响其他任何事情,但至少我可以通过以下方式编译并正确安装库:
python3 setup.py install
Run Code Online (Sandbox Code Playgroud)
PS在第123行os同一个文件有一条注释
#TODO: support async mode
Run Code Online (Sandbox Code Playgroud)
希望我的改变不会破坏任何东西
| 归档时间: |
|
| 查看次数: |
515 次 |
| 最近记录: |