Why Backtest on "on market open" show drastic difference from actual trades made at market open
The context is that I have a signal for short term stock trades (5-10 days), the signal is created after the market is closed, and it tells me whether to enter or exit a position on the next day.
I did my backtest using the open value of the next day (for both the entry and exit) assuming that when I perform the actual trade, it would be with the same price as the open of the next day.
I tested the strategy for a while using IBKR, I tried using limit order(limit only as safeguards) market order and their "midprice"order, I placed the order before market open using the signal that is based on the previous day's market close.
When comparing the actual trades with the backtest for the same period - I got good correlation and the strategy still outperforms the benchmarks but I get consistently worse prices in my actual trades then the prices I get with the "open" values for the respective trades.
To the question - what am I misunderstanding about the open value? And in my case - is there a better way to make the trades?