Why is there a tick-stream discrepancy between tradovate and TOS?

Hi All –

I am using the MarketData subscribe feature to get a stream of incoming price data for /ES in order to build OHLC candlesticks. I’ve run into a discrepancy that occurs with my “Open” datapoint on the candlestick in that my open value is always about a tick or so off from what is provided by Tradovate on the Tradovate trading portal, and what is provided in think or swim.

When I do a deeper dive of the tick data to see if there’s any discrepancy, I notice that the tradovate datastream often has “extra” incoming data. The way I build out my request is that is use the “Trade” data for each tick as the contract’s spot price, and when the time rolls over into the next five minute interval, the first tick’s Trade price is noted as the “Open”. However, my open is always different from ThinkOrSwim on Tradovate Trader. I’ve noticed that on my tickstream from tradovate, there is extra data that often accounts for the disprepancy that i do not see in the tickstream from ThinkOrSwim.

^^ on my data above, you can see multiple ticks coming through with different timestamps that list 4275.75 as the opening price, while ThinkOrSwim does not have these ticks, and instead has 42760 as the opening price

on the TOS data below, you can see that all these ticks that appear before the 1 second mark are not there, and the true open ticks are not until :01.
image

Can someone explain why I have these extra ticks in my datastream and how to go about fixing this? Is this an issue with the API or with how I have my datastream setup?

Thanks!