EA-322 · Momentum

Expert_AMS_ES_CCI

This EA uses a CCI (Commodity Channel Index) indicator smoothed by a Moving Average as its core signal filter within the MQL5 Standard Library Expert Advisor framework. It opens and closes positions based on threshold-driven signal strength from the CMS_ES_CCI filter, with fixed-lot money management and no trailing stop. The strategy is a momentum-based system that relies on CCI extremes filtered through MA smoothing.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskHigh risk
Blow-up riskHigh
Rating★★☆☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsCCI, MA
AuthorMetaQuotes Software Corp.

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD-3.18%-2.77%7.48%12345.50%-0.66-0.425−$2.58Reliable
GBPUSD-5.60%-4.89%9.50%12849.20%-0.96-0.596−$4.38Reliable
USDJPY-1.95%-1.70%4.77%13141.50%-0.32-0.418−$1.38Reliable
XAUUSD-100.00%-100.00%100.00%3237.50%-1.79-1.004−$482.89Account stopped out

Profitable on 0 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 29% of 68 · GBPUSD: better than 23% of 66 · USDJPY: better than 38% of 68 · XAUUSD: better than 0% of 75

Month by month

MarketMonths with a gainBest monthWorst month
EURUSD46%+2.70% 2026-09-3.71% 2026-04
GBPUSD38%+1.01% 2025-11-3.25% 2026-04
USDJPY46%+1.63% 2026-01-3.06% 2025-12
XAUUSD0%-4.56% 2025-11-100.00% 2026-01

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

Blow-up risk: High

  • Has no stop loss or trailing stop
  • 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 strategy of this EA is a momentum-based trading system centered on the CCI (Commodity Channel Index) indicator. Entry conditions are determined by comparing the CCI value (default period 25) smoothed through a Moving Average (default period 5) against an opening threshold (default 40) and a closing threshold (default 20): positions are opened when signal strength exceeds the opening threshold and closed when it falls below the closing threshold. Exit conditions, aside from threshold-triggered closes, include pending order expiration (default 4 bars), but both Stop Loss and Take Profit are set to 0, meaning there is no hard stop-loss or take-profit protection. Position sizing uses a fixed lot model (default 0.1 lots), with no dynamic adjustment based on account balance or market volatility. Money management employs the MoneyFixedLot module, controlling risk exposure solely through a fixed percentage (10%) and fixed lot size, with no trailing stop mechanism to lock in floating profits. Overall, the strategy relies on directional trading from CCI momentum signals but lacks stop-loss protection and profit-tracking mechanisms, making risk control relatively weak.

Strengths

  • Uses the MQL5 Standard Library Expert framework with clean, modular code structure
  • CCI indicator smoothed by MA reduces false signals and improves signal quality
  • Threshold-based mechanism provides adjustable entry/exit sensitivity for different market conditions
  • Fixed lot sizing makes risk predictable and simplifies backtesting validation

Weaknesses

  • Both Stop Loss and Take Profit are set to 0, providing no hard risk protection which could lead to significant losses during extreme market moves
  • No trailing stop means the EA cannot lock in floating profits on winning trades, creating profit giveback risk
  • Fixed lot sizing ignores account size changes and market volatility, making money management overly simplistic
  • Single signal filter lacks multi-dimensional confirmation, prone to frequent false signals in ranging markets

Possible improvements

  • Add Stop Loss and Take Profit parameters, or implement ATR-based dynamic SL/TP to protect capital
  • Replace TrailingNone with an actual trailing stop module to automatically lock in profits on winning trades
  • Introduce multi-timeframe confirmation or an additional trend filter (e.g., MA direction) to reduce false signals in ranging markets

Risk assessment

Overall risk: High risk

  • Stop Loss and Take Profit both at 0 means no price protection, allowing single-trade losses to escalate unchecked
  • No trailing stop means winning positions can fully give back profits on market reversals
  • Fixed lot sizing ignores account equity changes, causing risk ratio to continuously increase during losing streaks

Evaluation scores

Code quality4.0
Strategy logic3.0
Risk management1.0
Robustness2.0
Innovation2.0
Documentation2.0
Overall2.3

Parameters

ParameterDefaultDescription
Signal_ThresholdOpen40Entry signal threshold [0...100]
Signal_ThresholdClose20Exit signal threshold [0...100]
Signal_PriceLevel0.0Trade execution price level
Signal_StopLevel0.0Stop loss level (in points)
Signal_TakeLevel0.0Take profit level (in points)
Signal_Expiration4Pending order expiration (in bars)
Signal__PeriodCCI25CCI indicator period
Signal__PeriodMA5MA period overlaid on RSI
Signal__Weight1.0Signal filter weight [0...1.0]
Money_FixLot_Percent10.0Money management percentage
Money_FixLot_Lots0.1Fixed trading lot size
Expert_MagicNumber7663EA magic number (not used for trading)
Expert_EveryTickfalseExecute every tick

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.