Work in progress… details to follow but this some sample code that works
@printWhenExecuting
def historicalDataOperations_req(self):
contract = Contract()
asset_info = quotes_library.get_asset_info()
for val in asset_info:
print(val)
self.assetId = val['assetId']
tickerId = val['assetId']
contract = Contract()
contract.symbol = val['base_symbol']
contract.secType = "FUT"
contract.exchange = val['exchange']
contract.currency = "USD"
contract.lastTradeDateOrContractMonth = val['lastTradeDateOrContractMonth']
self.reqHistoricalData(tickerId, contract, "", "1 D", "1 min", "TRADES", 0, 1, True,[])
@iswrapper
def historicalDataUpdate(self, reqId: int, bar: BarData):
# print("HistoricalDataUpdate. ReqId:", reqId, "BarData.", bar)
quotes_library.load_IB_1_min_realTime_bars(reqId,bar)
@iswrapper
# ! [historicaldataend]
def historicalDataEnd(self, reqId: int, start: str, end: str):
super().historicalDataEnd(reqId, start, end)
print("HistoricalDataEnd. ReqId:", reqId, "from", start, "to", end)
self.keyboardInterrupt(self)
# ! [historicaldataend]