As I'm new to QC, I did struggle a fair bit to get the data I need for futures and linking a technical indicator to a future contract, so I'm adding my code to the question so that people can improve it and make suggestions.

In this example, I'm basically just getting Bollinger bands on the S&P Mini next future contract and rolling to the next contract 3 days before expiry.

I have  few questions though:

1) I had to do the technical indicator warmup manually, is there a way to do it properly?

2) I'm managing the roll of futures as next calendar, is it posible to roll by volume? How would we go about it?

3) when declaring a technical indicator we can use Minute or Hour from the Resolution enum, however if I want to have indicators on 30 or some weird number of minutes/hours, how would I do it? Should I just feed it IndicatorDataPoints manually from my TradeBarconsolidator or is there a more elegant way to do it? In this case, I assume I should not use the register version but do a new BollinberBands instead of BB?