Hello, this call in backtesting:

history = self.History(cur_contract.Symbol, 10, Resolution.Minute)  # cur_contract.Symbol is "ES17H17"

returns this dataframe:


so the index here is (expiry, symbol, time). 

I only want time in index, so I am dropping other columns from index and resample:

history = history.droplevel([0, 1]).resample(Timeframe).agg({'open': 'first', 'high': 'max', 'low': 'min', 'close': 'last'})

However, on live with IBKR data this code raises an exception: 

Too many levels: Index has only 1 level, not 2.

So I am guessing, it only has one column in index on live? Why is it different?


Also, on a side note, can you please tell me how to choose the symbol-related line in dataframe? Neither history.loc[cur_contract.Symbol] nor history.loc[cur_contract.Symbol.Value] work:


basically, I need to know how to match history lines to symbol, but I can't find a proper way….