did some due diligence, and Print-statement debugging, and found the culprit: the innocent, plain-vanilla ATR() function for Average True Range. In my strategy, I use ATR to calculate risk tolerance, stop losses, and profit targets. In a backtest, everything is hunky-dory. But when running the strategy live, the ATR() values seem ridiculously small. For example, if the strategy executed a trade in Backtesting, and saw an ATR value of around 10 pips, then in live trading, I'm seeing an ATR on the order of 100-1000 times smaller ... hundredths of a pip. So naturally, ordinary market motion is triggering these ridiculously small stop losses.
So that makes the question: why would I see a different set of values from the stock ATR() function, between a StrategyAnalyzer Backtest and Live Trading in a simulated account?
A few additional data points:
- my Forex data provider is FOREX.com.
- I used the same strategy to trade micro-ES contacts (MES) through NinjaTrader's brokerage and feed. There were no problems.
Any help, clues, or interesting guesses would be greatly appreciated.

Comment