Two MA one RSI
This EA uses a dual moving average crossover system filtered by RSI to generate trend-following trade signals. It enters long when the fast MA crosses above the slow MA and RSI confirms momentum, and enters short on the reverse condition. The strategy is a classic trend-following approach with an RSI momentum filter to reduce false 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 | -1.37% | -1.19% | 4.52% | 90 | 50.60% | -0.34 | -0.30 | 6 | −$1.16 | Reliable |
| GBPUSD | -0.43% | -0.37% | 5.26% | 94 | 45.70% | -0.06 | -0.08 | 7 | −$0.45 | Reliable |
| USDJPY | +2.81% | +2.43% | 4.58% | 89 | 49.40% | 0.71 | 0.61 | 5 | +$3.15 | Reliable |
| XAUUSD | -90.97% | -86.28% | 94.23% | 41 | 43.90% | -0.95 | -0.96 | 7 | −$221.87 | Account stopped out |
Profitable on 1 of 4 markets with reliable results.
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.
Against the other Trend Following EAs with a reliable result on the same market: EURUSD: better than 41% of 95 · GBPUSD: better than 43% of 95 · USDJPY: better than 81% of 95 · XAUUSD: better than 12% of 96
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 38% | +2.04% 2026-04 | -1.65% 2026-08 |
| GBPUSD | 54% | +2.46% 2026-04 | -2.65% 2026-10 |
| USDJPY | 54% | +2.89% 2026-04 | -1.90% 2026-03 |
| XAUUSD | 31% | +51.45% 2026-04 | -77.47% 2026-03 |
From the backtest equity curve, sampled about every two days; only reliable results.
Blow-up risk: High
- Hit a stop-out in our backtest (equity below 10%) on XAUUSD
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 core concept of this strategy is a dual moving average crossover trend-following system combined with an RSI momentum filter for entry validation. Entry conditions are: go long when the fast MA crosses above the slow MA and RSI is above its threshold, and go short on the reverse crossover with RSI below its threshold. Exit conditions rely on the opposite MA crossover signal or fixed stop-loss and take-profit levels. Position sizing uses either fixed lot sizes or an equity-based calculation method. Money management depends on user-configured stop-loss and take-profit parameters to control per-trade risk, but lacks overall portfolio-level money management and maximum drawdown controls. The RSI filter effectively reduces false crossover signals during ranging markets, improving entry quality.
Strengths
- Dual MA crossover with RSI filter provides clear and understandable logic, reducing false signals in ranging markets
- Highly adjustable parameters allow users to optimize for different instruments and timeframes
- Trend-following strategy performs well in clear trending markets, capturing significant swing profits
- RSI momentum confirmation effectively filters weak crossover signals, improving win rate
Weaknesses
- MA crossover strategies generate frequent false signals in ranging markets even with RSI filtering
- Lacks advanced money management mechanisms such as dynamic position sizing, max drawdown limits, and account equity protection
- Stop-loss and take-profit use fixed pip values without ATR-based volatility adaptation
- No multi-timeframe confirmation, limiting signal reliability from a single timeframe
Possible improvements
- Add ATR-based adaptive stop-loss and take-profit that dynamically adjusts exit levels based on market volatility
- Implement multi-timeframe trend confirmation to improve signal reliability and filtering effectiveness
- Implement risk-percentage-based dynamic position sizing instead of fixed lot trading
Risk assessment
Overall risk: Medium
- Fixed stop-loss and take-profit may be inappropriate across varying volatility regimes - too tight in high volatility, too far in low volatility
- No maximum position or max drawdown protection, potentially causing significant losses in extreme market conditions
- MA crossover inherently lags, entering after a significant portion of the trend may have already passed
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
FastMA_Period | 10 | Fast MA period |
SlowMA_Period | 50 | Slow MA period |
MA_Method | MODE_SMA | MA calculation method |
RSI_Period | 14 | RSI indicator period |
RSI_BuyLevel | 50 | RSIlong threshold |
RSI_SellLevel | 50 | RSIshort threshold |
StopLoss | 0 | Stop loss in points |
TakeProfit | 0 | Take profit in points |
Lots | 0.1 | Trading lot size |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.