To get accurate backtesting results you need to do a lot more than you think. Here is the short list.
First off all, never use the strategy analyzer, exotic bar types, minute data as the time series on backtest for scalping types of strategies. These simply can't handle the nuances of trading a few ticks and you will overstate your results by an order of magnitude.
Never check the fill limit order on touch box no matter what you do. This is the worst thing you can ever do.
In general throw away the strategy analyzer, this is dog shit. The only thing even close to reality is running market replay on a 1 tick time series and even this has serious limits and here they are:
There is 0 latency in execution of placing orders, filling orders and any time you use Ninjatrader to run a back test of any kind, you are basically seeing high frequency trading speed. 0 Latency, instant fills, and complete and utter fantasy. All this breaks down in live trading and it will absolute not reconcile whatsoever. The closer you get to a scalping type of strategy the worst the gap is. So to get a realistic simulation out of NinjaTrader you need to account for this by coding your own latency simulation. You need to seperate the act of catching the signal, and placing the order. When you get your alpha signal, you need to add the trade information to a queue along with the timestamp of when this happened, but you do not actually send the order. In the queue, you run a check on every tick to see if the current timestamp is > the signal timestamp + Your Latency Target. Once this is true, dequeue the order and place it. Realistically if you are using Ninjatrader live, even on a VPS in Chicago you will be 100 milliseconds during most of the US cash session best case. NinjaTrader is a charting software first and foremost, made with shitty .Net bloat that has so much garbage collection it will freeze your app every 50 milliseconds constantly. But seriously, if you want to get anywhere close to reality, especially if you are trying to scalp with this, you have to add a latency adjustment similar to what I described or you are just fucked.
You have to account for the ridiculous amount of fake positive slippage they give you on limit orders in all their backtests. Export Trades, and Orders in a spreadsheet and track the difference between the Limit order prices and the actual fill prices. In most cases the Limit order price (What you actually asked for in your strategy) is what you will get in real live trading. The actual fill prices they give you in backtesting is usually inflated by 25% to 50%. It's insane honestly looking at NQ, CL, ES, etc. You need to manually adjust this in a spreadsheet and only give yourself credit for the Limit order prices and not the fill prices.
The market orders / Stop losses, don't have enough slippage. You will need to add for example 5 dollars for MNQ on every order. You have to figure out the right settings for each instruments but it's 2-3 ticks on average across the board - unless you are dumb enough to try to trade quarterly earnings or FOMC or an event that AMP sets margins to 80% so you couldn't even trade it in the first place.... Then you will get murdered and most of your stop losses will get rejected and run for 100 points. Yep, this has happened to me several times. But the point of this post is getting a halfway accurate backtest, so I will taper off on this rant...
Don't ever mix the event handlers in the same strategy. OnBarUpdate front runs all the other methods. If you use GetCurrentBid() or GetCurrentAsk() for example from OnBarUpdate and mix this with OnMarketUpdate you can actually front run and look into the future. It's fucked, but you can actually glitch your way to a million dollars in backtesting. This is just about as bad as the fill limit orders on touch glitch.
But if you do the stuff I mentioned, you can get it in the ballpark. But without this, any type of scalping, or short term trading strategy will be off by an order of magnitude. If you are taking a few trades a day shooting for 100 points or something, then none of this really matters - but if you are one of the unlucky fools trying to figure out HFT with Ninjatrader, then 911!!!