Exp_StepMA_NRTR
This EA trades based on the StepMA_NRTR custom indicator, which is a step-moving average NRTR (No Repaint Trailing Reverse) system. It opens buy positions on upward step signals and sell positions on downward step signals, with configurable money management, stop loss, and take profit. Positions are managed per-bar using new bar detection to avoid redundant signals.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
Why this EA never traded: no entry rule survived the conversion.
Converted from MQL5 to Python and run with the same rules for every EA. Positions use MT5 lot sizes (100,000 units per FX lot, 100 oz per gold lot) with 1:100 leverage, one order at a time, and a stop-out below 10% of the starting balance. Sharpe is computed from the equity curve. Results marked as unreliable are shown for completeness only.
Blow-up risk: No blow-up pattern found
None of the usual blow-up patterns were found in the code, and the account was not stopped out in our backtests. That is not a guarantee: any EA can lose money.
High: stopped out in our backtest, or martingale/grid sizing without a stop loss. Elevated: martingale or grid sizing with a stop loss, or several positions at once without a stop loss. What the label means and what we found →
Strategy analysis
The strategy trades based on trend-following signals from the StepMA_NRTR indicator, which combines a step-moving average with NRTR (No Repaint Trailing Reverse) logic. Entry conditions: a buy position is opened when the indicator's upper channel buffer (buffer 2) shows a non-empty value, and a sell position is opened when the lower channel buffer (buffer 3) shows a non-empty value. Exit conditions include closing on reverse signals (buy close on down signal, sell close on up signal), plus hard stop loss and take profit exits. Position sizing supports multiple modes via the MarginMode enum, including fixed lot size, percentage of balance, and percentage of free margin. The money management parameter MM controls the risk ratio per trade, defaulting to 0.1. An additional confirmation logic checks the trend line buffers (buffers 0 and 1) after the primary signal, reinforcing close decisions if the trend line also signals a reversal. Signals are evaluated only once per new bar via the CIsNewBar class, preventing redundant entries within the same bar.
Strengths
- New bar detection prevents redundant entries within the same bar, reducing overtrading
- Supports multiple money management modes, flexibly adapting to different trader needs
- Configurable stop loss and take profit parameters provide a basic risk control framework
- Buy and sell directions can be independently toggled, facilitating one-direction trading or strategy testing
- Dual signal confirmation logic checks channel signals first, then trend line signals for validation
Weaknesses
- Stop loss of 1000 points and take profit of 2000 points may be excessively large for H1 timeframe, risking significant drawdowns
- Lacks trailing stop mechanism to lock in floating profits as trend progresses
- Depends on the custom StepMA_NRTR indicator file; EA cannot run if the indicator is missing
- No spread filter, which may cause unfavorable entries in high-spread conditions
- Redundant return statement in OnInit (line 85), indicating sloppy code structure
Possible improvements
- Add a trailing stop feature to progressively lock in profits as the trend develops
- Add spread filter and session/time filter to avoid entries during high-cost and high-volatility periods
Risk assessment
Overall risk: Medium
- Stop loss of 1000 points is large, potentially causing significant drawdown per trade
- No trailing stop mechanism, profitable positions may give back all gains on retracement
- No spread filter, entries may occur at poor prices during low-liquidity sessions
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management ratio per trade |
MMMode | LOT | Lot calculation mode (fixed lot / balance % / free margin % etc.) |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage in points |
BuyPosOpen | true | Allow opening buy positions |
SellPosOpen | true | Allow opening sell positions |
BuyPosClose | true | Allow closing buy positions on signal |
SellPosClose | true | Allow closing sell positions on signal |
InpInd_Timeframe | PERIOD_H1 | Timeframe for the StepMA_NRTR indicator |
Length | 10 | Volatility calculation period (Volty Length) |
Kv | 1.0 | Sensitivity factor |
StepSize | 0 | Constant step size (0 for adaptive) |
Percentage | 0 | Percentage of up/down moving |
Switch | HighLow | Price mode switch (High/Low or Close/Close) |
SignalBar | 1 | Bar index used for signal retrieval |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.