[英]How to set up an error handler for Interactive brokers using IB API or ib_insync? Python
[英]how to handle async error in ib_insync with python3.7?
對不起,我可能會問一個愚蠢的問題,但我只是python和algotrading的初學者。 我現在使用Python 3.7和ibapi與ib_insync來嘗試連接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
我知道我需要將名稱async更改為其他名稱。 我試圖在ibapi中修改文件client.py,但它似乎根本不起作用。 為了讓它工作,我應該改變哪部分代碼?
我在API 973.07中偶然發現了同樣的錯誤。 在我的情況下,我使用MacOS,因此文件路徑看起來與Windows環境不同,但想法是一樣的。 為了解決這個問題,我剛剛將文件IBJts / source / pythonclient / build / lib / ibapi / client.py中的第60行注釋掉,如下所示:
# self.async = False
不確定它是否會影響其他任何東西,但至少我可以通過以下方式編譯並正確安裝庫:
python3 setup.py install
PS在123行os中同一個文件有評論
#TODO: support async mode
希望我的改變不會破壞任何東西
安裝IB API SW的最新版本(API_Version = 9.75.01) - 此問題已修復。 它依賴於Python 3.7 - 相同的代碼對我來說運行Python 3.6運行良好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.