Я создал два контракта с помощью функции Forex в пакете ib_insyn c, и я пытаюсь извлечь данные из обоих тикеров в моем списке, однако я получаю только данные первого контракта. Пожалуйста, дайте мне знать, если я что-то упустил
from ib_insync import *
import asyncio
async def get_data(contract, time_frame):
while True:
bars = ib.reqHistoricalData(
contract, endDateTime='', durationStr='60 S',
barSizeSetting=time_frame, whatToShow='MIDPOINT', useRTH=True)
print('contract: {0}, timeframe: {1}'.format(contract, time_frame))
df = util.df(bars)
print(df.tail(1))
await asyncio.sleep(1)
loop = asyncio.get_event_loop()
ib = IB()
util.patchAsyncio()
ib.connect('127.0.0.1', 4002, clientId=9999)
requests = []
symbols = ['AUDUSD', 'EURUSD']
time_frames = ['1 min', '5 mins', '10 mins', '15 mins']
try:
for symbol in symbols:
for time_frame in time_frames:
contract = Forex(symbol)
requests.append(get_data(contract, time_frame))
# loop.run_forever()
loop.run_until_complete(asyncio.gather(*requests))
finally:
loop.run_until_complete(loop.shutdown_asyncgens())
loop.close()