I have been having some issues reconciling live trading with paper trading and I believe the issue might come from limit orders.

On an hourly timeframe, I open a limit order when the OnOrderEvent of another order gets filled. It seems as if that order could be filled earlier in the hour it also gets instantly filled.

i.e. SPY opens at 310 at 13h00, at 13h25 SPY is at 308, triggering a limit order I put earlier. This causes my algo to open a take profit order at 309 which gets instantly filled in paper trading even though SPY never gets back to 309, since the high of the bar is 310. 

From comparing orders of both live and paper trading this is what I believe to be the cause of the discrepancy, can anyone more knowledgeable about the code base comment?