It sounds to me like you're not using fully simulated ticks from historical bars. What I mean by fully simulated ticks is that for each 1-minute bar you create eg 60 prices - 1 per second - and this is simulated in your backtests. For example, for an up bar, you would have 3 stages: open-low, low-high, high-close. Each of these stages (lines) has 20 ticks and the price of each tick is interpolated between those OHLC values. The price moves down, then up, then down to the close. This way, in your backtest, you are simulating that the bar is really being created tick by tick, by recreating ticks from a bar. I find this pretty important in backtesting. Each tick also has a time stamp. In backtesting you assign it by yourself and in real time you see the system time (or IB server time). With this approach you are really allowed to make more assumptions, because of increased accuracy. Strategies which are highly reactive should often look at the last price (or bid/ask) to determine if a level has been broken - not just at the OHLC values of bars. This also allows you to compute slippage more easily: make it for example 0.05% of the last price delta (last simulated tick delta) so that with speed increases, the slippage will increase.
This is my model for calculating slippage, it would be interesting to hear about yours (if you're into sharing).
This is my model for calculating slippage, it would be interesting to hear about yours (if you're into sharing).