My understand is, trade bars from various instruments in the same resolution (even from the same source, e.g. your equitity stream) might arrive in different OnData calls at entirely different times in live (as opposed to backtest).

Thus, if I'm using ranking logic it is necessary to wait until I have enough bars to rank on, resulting in use of delayed data (which would be a problem).

Is this correct? I suppose I can test this live further but it would help w/ verbal confirmation.