EA-1048 · Momentum

MA2CCI

This EA uses a dual moving average crossover combined with a CCI zero-line cross to generate trend-following entry signals. ATR is used for dynamic stop loss placement, and lot sizing is based on either fixed lots or risk-based percentage of free margin with a drawdown reduction mechanism. Positions are closed on the opposite MA crossover signal.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskMedium
Rating★★★☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsSMA, CCI, ATR
AuthorInteger

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD-4.20%-3.66%5.67%5036.00%-1.21-0.745−$8.40Reliable
GBPUSD+2.44%+2.12%3.68%4729.80%0.500.664+$4.66Reliable
USDJPY-3.13%-2.72%4.74%5034.00%-1.14-0.666−$6.26Reliable
XAUUSD-93.15%-89.09%96.30%4524.40%-1.22-0.979−$207.01Account 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 Momentum EAs with a reliable result on the same market: EURUSD: better than 22% of 68 · GBPUSD: better than 79% of 66 · USDJPY: better than 29% of 68 · XAUUSD: better than 25% of 75

Month by month

MarketMonths with a gainBest monthWorst month
EURUSD38%+0.67% 2025-11-2.27% 2026-01
GBPUSD46%+2.68% 2026-04-1.69% 2026-03
USDJPY23%+0.52% 2026-01-0.95% 2026-03
XAUUSD23%+10.67% 2026-03-63.03% 2026-09

From the backtest equity curve, sampled about every two days; only reliable results.

Strategy analysis

The strategy concept is based on a dual moving average crossover confirmed by CCI zero-line crosses: a buy signal occurs when the fast MA crosses above the slow MA and CCI crosses above zero simultaneously, while a sell signal requires the fast MA crossing below the slow MA with CCI crossing below zero. Entry conditions demand both the MA crossover and CCI zero-line cross to align, providing a dual filter that reduces false signals in ranging markets. Exit conditions rely on the opposite MA crossover to close positions, with no take-profit level set, depending solely on ATR-based dynamic stop loss for risk control. Position sizing supports two modes: fixed lot size or risk-based lot calculation using a percentage of free margin. Money management includes a drawdown reduction mechanism via the DcF parameter, which progressively decreases lot size after consecutive losses, but only activates when DcF is greater than zero. Stop loss is calculated from the ATR value and validated against the broker's minimum stop level, with orders rejected if the stop loss would be too close. Overall, this is a classic trend-following system that uses CCI to filter MA crossover signals and reduce whipsaw trades in sideways markets.

Strengths

  • Dual signal filtering (MA crossover + CCI confirmation) reduces false signals in ranging markets
  • ATR-based dynamic stop loss adapts to market volatility changes, more rational than fixed stops
  • Drawdown reduction mechanism (DcF parameter) automatically decreases lot size after consecutive losses
  • New bar detection via LastTime prevents multiple trades within the same bar
  • Stop level validation ensures orders comply with broker minimum stop distance requirements

Weaknesses

  • Extremely short MA and CCI periods (default 4/8/4) lead to frequent false signals and overtrading
  • No take-profit level means profits depend entirely on stop loss or opposing signal exits, potentially missing optimal exit points
  • Position check is per-symbol only, lacking global risk control for multi-symbol concurrent operation
  • Email notification uses SendMail with only basic error checking, lacking retry or fallback notification mechanisms
  • The lot reduction formula (aLots-aLots*losses/DcF) can reduce lot size to extremely small values after many consecutive losses

Possible improvements

  • Add take-profit parameter or trailing stop mechanism to lock in profits and optimize risk-reward ratio
  • Add trading session filter and spread filter to avoid trading during unfavorable hours or high-spread conditions
  • Add maximum drawdown limit and maximum consecutive loss count limit as hard risk control floors
  • Optimize default parameter values — 4/8 period MAs and CCI are overly sensitive; consider more robust defaults like 10/20/14

Risk assessment

Overall risk: Medium

  • Extremely short-period MA and CCI parameters generate frequent and unreliable signals, increasing overtrading risk
  • No take-profit mechanism means winning trades may give back significant gains while waiting for opposing signals
  • Drawdown reduction mechanism is completely disabled when DcF=0, providing no consecutive-loss protection
  • Only checks single-symbol positions without global position or risk control

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management3.0
Robustness2.0
Innovation2.0
Documentation2.0
Overall2.5

Parameters

ParameterDefaultDescription
FMa4Fast MA period
SMa8Slow MA period
PCCi4CCI indicator period
pATR4ATR indicator period for stop loss distance calculation
Lots0.1Order lot size; 0 uses MaxR for dynamic calculation
SndMltrueSend email notification on open and close
DcF3Lot decrease factor on loss; smaller = larger decrease, 0 = disabled
MaxR0.02Max risk ratio (0-1) of available funds, used when Lots is 0

Similar Momentum EAs

Backtests are historical simulations and do not guarantee future results. Not financial advice.

Get the weekly Arena report

One email a week: ranking changes, new signals and new research. No spam; unsubscribe any time.