RSI EA
This EA trades based on RSI overbought and oversold levels, entering buy positions when RSI crosses below the oversold threshold and sell positions when RSI crosses above the overbought threshold. It is a classic momentum-reversal strategy that seeks to capture price corrections from extreme RSI readings. The EA typically includes configurable RSI period, overbought/oversold levels, and basic risk management parameters.
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 | -7.24% | -6.32% | 8.38% | 86 | 46.50% | -1.87 | -0.86 | 6 | −$8.42 | Reliable |
| GBPUSD | -3.42% | -2.98% | 5.16% | 86 | 51.80% | -0.69 | -0.66 | 4 | −$3.74 | Reliable |
| USDJPY | +2.22% | +1.93% | 3.45% | 77 | 50.00% | 0.53 | 0.64 | 8 | +$2.72 | Reliable |
| XAUUSD | +189.20% | +140.47% | 55.90% | 91 | 56.00% | 1.37 | 3.38 | 6 | +$207.91 | Reliable |
Profitable on 2 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 Momentum EAs with a reliable result on the same market: EURUSD: better than 9% of 68 · GBPUSD: better than 33% of 66 · USDJPY: better than 78% of 68 · XAUUSD: better than 99% of 75
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 23% | +0.84% 2026-10 | -2.48% 2026-01 |
| GBPUSD | 38% | +1.70% 2026-02 | -2.18% 2026-01 |
| USDJPY | 69% | +2.37% 2026-05 | -1.58% 2026-02 |
| XAUUSD | 77% | +139.12% 2026-02 | -8.95% 2026-01 |
From the backtest equity curve, sampled about every two days; only reliable results.
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
This EA uses the RSI indicator as its core trading signal source, with the strategy concept based on mean reversion and momentum exhaustion principles. Entry conditions: open a buy position when RSI crosses upward from the oversold zone (default below 30), and open a sell position when RSI crosses downward from the overbought zone (default above 70). Exit conditions typically rely on take-profit and stop-loss parameters, or closing positions when RSI returns to neutral territory. Position sizing is generally fixed lot-based, lacking dynamic sizing mechanisms such as ATR-based or account equity percentage calculations. Money management is relatively basic, relying on the user to manually set reasonable stop-loss and take-profit ratios, without proportional risk control or compounding position sizing. The overall strategy logic is simple and straightforward, but it can easily produce consecutive losses during trending markets, requiring a trend filter to improve stability.
Strengths
- Simple and clear strategy logic, easy to understand and debug
- RSI is a well-validated classic momentum indicator that performs well in ranging markets
- Highly configurable parameters allow users to flexibly adjust overbought/oversold levels for different instruments and timeframes
- Entry signals based on extreme readings provide a certain statistical edge
Weaknesses
- Prone to consecutive counter-trend trades resulting in significant losses during strong trending markets
- Lacks a trend filter, unable to distinguish between ranging and trending market conditions
- Fixed lot sizing lacks dynamic position management, unable to adjust risk exposure based on market volatility
- Stop-loss and take-profit settings may not be flexible enough, and the default value of 0 poses extreme risk
Possible improvements
- Add a trend filter (e.g., moving average direction or ADX) to only trade RSI signals in ranging markets
- Implement dynamic position sizing based on ATR or account equity percentage
- Add multi-timeframe confirmation mechanism to improve signal reliability
- Add a spread filter to avoid trading during high-spread periods
Risk assessment
Overall risk: Medium
- Default stop-loss and take-profit values may be 0, presenting unlimited loss risk
- Lacks trend filter, may consecutively open counter-trend positions during strong trends
- No spread filter mechanism, high spread can erode profits through trading costs
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
RSI_Period | 14 | RSI indicator period |
Overbought_Level | 70 | Overbought threshold, consider sell when RSI exceeds this |
Oversold_Level | 30 | Oversold threshold, consider buy when RSI falls below this |
Lot_Size | 0.1 | Fixed lot size per trade |
Stop_Loss | 0 | Stop loss in points, 0 means no stop loss |
Take_Profit | 0 | Take profit in points, 0 means no take profit |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.