Basic CCI RSI
This EA generates trading signals based on the combined readings of CCI and RSI indicators. It opens buy positions when both indicators suggest oversold conditions and sell positions when they indicate overbought conditions. The strategy is a classic dual-oscillator momentum reversal system with fixed lot sizing and stop-loss/take-profit management.
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 | +2.73% | +2.37% | 4.07% | 143 | 51.40% | 0.58 | 0.67 | 6 | +$2.16 | Reliable |
| GBPUSD | +12.99% | +11.20% | 2.78% | 144 | 56.60% | 2.23 | 4.67 | 4 | +$8.92 | Reliable |
| USDJPY | -0.65% | -0.57% | 5.63% | 143 | 56.30% | -0.09 | -0.12 | 4 | −$0.57 | Reliable |
| XAUUSD | +46.05% | +36.75% | 40.57% | 152 | 49.00% | 0.95 | 1.14 | 8 | +$32.14 | Reliable |
Profitable on 3 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 74% of 68 · GBPUSD: better than 98% of 66 · USDJPY: better than 50% of 68 · XAUUSD: better than 76% of 75
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 69% | +2.02% 2026-08 | -2.46% 2026-03 |
| GBPUSD | 62% | +2.73% 2026-08 | -1.13% 2026-03 |
| USDJPY | 54% | +1.82% 2026-04 | -1.49% 2026-01 |
| XAUUSD | 38% | +77.74% 2026-02 | -16.12% 2026-08 |
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
The strategy concept is based on combined signals from CCI (Commodity Channel Index) and RSI (Relative Strength Index) oscillators, falling under the momentum reversal category. Entry conditions require both indicators to confirm: a buy signal triggers when CCI drops below its oversold threshold and RSI also falls below its oversold level, while a sell signal triggers when CCI exceeds its overbought threshold and RSI also rises above its overbought level. Exit conditions rely on predetermined fixed stop-loss and take-profit levels without any trailing or dynamic adjustment mechanism. Position sizing uses a fixed lot approach without any account equity or volatility-based dynamic calculation. Money management lacks risk percentage sizing and the stop-loss settings do not adapt to market volatility using tools like ATR. Overall the strategy logic is straightforward and beginner-friendly but lacks sufficient filtering conditions and market regime detection mechanisms.
Strengths
- Dual-indicator confirmation reduces false signals compared to single-indicator strategies
- Strategy logic is simple and clear, easy to understand and debug, suitable for learning reference
- Fixed stop-loss and take-profit provide a defined cap on risk exposure per trade
Weaknesses
- Fixed lot sizing does not dynamically adjust based on account equity, unsuitable for varying account sizes
- Lacks trend filter, prone to counter-trend trades during strong trending markets
- No new bar check mechanism, potentially opening multiple positions within the same bar causing overtrading
Possible improvements
- Add ATR-based dynamic stop-loss and take-profit to adapt risk management to market volatility
- Add a trend filter (e.g., moving average) to avoid counter-trend entries during strong trends
Risk assessment
Overall risk: Medium
- No new bar check may cause duplicate position opening within the same bar
- Fixed lot sizing ignores account equity ratio, concentrating risk with larger accounts
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
CCI_Period | 14 | CCI indicator calculation period |
RSI_Period | 14 | RSI indicator period |
CCI_Oversold | -100 | CCI oversold threshold |
CCI_Overbought | 100 | CCI overbought threshold |
RSI_Oversold | 30 | RSI oversold threshold |
RSI_Overbought | 70 | RSI overbought threshold |
StopLoss | 500 | Stop loss in points |
TakeProfit | 1000 | Take profit in points |
Lots | 0.1 | Fixed trading lot size |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.