Hey guys, I have a few of questions about how OnData and the subscriptions work and their comparison to consolidators and different time frames.  In particular, I'm curious when/where/how an hourly data and minutely (or hour/daily, etc.) data subscription would line up.

1. What's considered the first, second, and last bar timeframes of hourly data?  Is this 9:30AM (or 9:00AM?), 10:00AM, and 4:00PM?  Similarly, how many hourly bars would actually get processed in a single day?

2. If recreating the hourly bars (or daily for that matter) using consolidators with minutely data, what frames would need to referenced to get them to line up correctly?  I'm concerned that if an hour subscription is based on hourly timed data and a minute subscription is based on minute data they could be off should the minute data not be filled once or twice in an hour period.  

Say that you had an hour data subscription in one algrorithm and then in a second algorithm you have a consolidator that is subscribed minute data and consolidates 60 minutes. If the first alrogirthm's OnData fills its hour bar at 11:00AM updating from the previous 10:00AM bar and the second algorithm missed 2 minutes of data  points along the way would the second algorithm's consolidator report an hourly bar data 11:02 AM?

Part of the reason I'm wondering about this is that if OnData reacts to receiving data and at a higher resolution would cover a trading day, would making a consolidator actually cover these same OnData events or would it possibly lose the ability to process one event if no data is received for a short time and have the event pushed down the line?

3. I know the "self.Time" function exists and can be called to log a comparable time frame, however, I've not had much work with the function. Can this function be used in lieu of OnData/Consolidators for lining up the market times correctly?


Sorry for the longwinded post and thanks in advance for any answers!