def _request_historical_ticks(ib: IB, contract: Contract, start_time: str, what="BID_ASK"): return ib.reqHistoricalTicks( contract=contract, startDateTime=start_time, endDateTime="", numberOfTicks=1000, whatToShow=what, useRth=False, )
for right in rights for expiration in expirations for strike in strikes ] contracts = ib.qualifyContracts(*contracts) # 2) ricevi tickers # 3) calcola hedge basato su greeks start = datetime.datetime(2020, 4, 14, 13, 30).replace(tzinfo=pytz.utc) allticks: List = [] ticks = ib.reqHistoricalTicks( contracts[0], startDateTime=start, endDateTime=None, numberOfTicks=1000, whatToShow="TRADES", ignoreSize=True, useRth=True, ) while 1: # ib.waitOnUpdate() allticks = allticks + [ (start, t.time.replace(tzinfo=pytz.utc), t.price, t.size) for t in ticks ] start = ticks[-1].time + datetime.timedelta(microseconds=1) df = pd.DataFrame(allticks, columns=["date", "tick", "price", "size"]) es = ib.reqContractDetails(Future(symbol="ES", exchange="GLOBEX"))[0].contract