抱歉,我可能会问一个愚蠢的问题,但我只是 python 和算法的初学者。我现在使用 Python 3.7 和带有 ib_insync 的 ibapi 来尝试连接 TWS。但是,由于 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'])
它最终是这样的:
File "C:/Users/leung/Documents/MONEY/Algotrade/venv/test1.py", line 1, in <module>
from ib_insync import *
File "C:\Users\leung\AppData\Local\Programs\Python\Python37-32\lib\site-packages\ib_insync\__init__.py", line 24, in <module>
from .ib import *
File "C:\Users\leung\AppData\Local\Programs\Python\Python37-32\lib\site-packages\ib_insync\ib.py", line 11, in <module>
from ib_insync.client import Client
File "C:\Users\leung\AppData\Local\Programs\Python\Python37-32\lib\site-packages\ib_insync\client.py", line 10, in <module>
from ibapi.client import EClient
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 963, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 906, in _find_spec
File "<frozen importlib._bootstrap_external>", line 1280, in find_spec
File "<frozen importlib._bootstrap_external>", line 1254, in _get_spec
File "<frozen importlib._bootstrap_external>", line 1235, in _legacy_get_spec
File "<frozen importlib._bootstrap>", line 441, in spec_from_loader
File "<frozen importlib._bootstrap_external>", line 594, in spec_from_file_location
File "C:\Users\leung\AppData\Local\Programs\Python\Python37-32\lib\site-packages\ibapi-9.73.7-py3.7.egg\ibapi\client.py", line 60
self.async = False
^
SyntaxError: invalid syntax
Process finished with exit code 1
我知道我需要将名称异步更改为其他名称。我试图在 ibapi 中修改文件 client.py,但它似乎根本不起作用。我应该更改代码的哪一部分以使其正常工作?