EA-319 · Momentum

Expert_AML_CCI

This EA uses the CML_CCI signal filter, which combines a Commodity Channel Index (CCI) with a Moving Average, to generate trade entries and exits within the MetaQuotes standard Expert Advisor framework. It operates on signal thresholds for opening and closing positions, uses fixed lot sizing, and has no trailing stop or take profit/stop loss levels configured by default. The EA delegates all trading logic to the CExpert standard library infrastructure.

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-1.05%-0.91%4.78%12747.20%-0.19-0.225−$0.83Reliable
GBPUSD-8.69%-7.59%11.64%13243.20%-1.41-0.759−$6.58Reliable
USDJPY-0.99%-0.86%4.87%13743.40%-0.15-0.207−$0.62Reliable
XAUUSD-100.00%-100.00%100.00%3339.40%-1.57-1.007−$347.13Account 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 41% of 68 · GBPUSD: better than 14% of 66 · USDJPY: better than 49% of 68 · XAUUSD: better than 0% of 75

Month by month

MarketMonths with a gainBest monthWorst month
EURUSD62%+1.53% 2026-09-2.86% 2026-04
GBPUSD38%+4.20% 2026-03-3.24% 2026-04
USDJPY46%+1.11% 2026-03-2.50% 2025-12
XAUUSD50%+17.90% 2025-12-100.00% 2026-02

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 based on the CML_CCI signal filter, which smooths the Commodity Channel Index (CCI) with a Moving Average to generate trading signals. Entry conditions: a trade is opened when the composite signal strength exceeds the opening threshold (Signal_ThresholdOpen=40), and closed when it falls below the closing threshold (Signal_ThresholdClose=20). The CCI period is set to 18 with a MA smoothing period of 3, and the weight is 1.0, indicating this is the sole signal source. Position sizing uses a fixed lot model (CMoneyFixedLot) with a default of 0.1 lots, without dynamic adjustment based on account balance. Money management only sets a 10% percent parameter and fixed lots, lacking dynamic risk control mechanisms. The strategy has no stop loss (Signal_StopLevel=0) and no take profit (Signal_TakeLevel=0), and no trailing stop, relying entirely on signal thresholds for exits, which can lead to significant losses during volatile market conditions.

Strengths

  • Uses the standard CExpert framework with clean, well-structured code that is easy to maintain and extend
  • CCI smoothed by MA reduces false signals and improves signal quality
  • Signal threshold mechanism for entries and exits provides more flexibility and filtering than simple crossover signals
  • Fixed lot model is straightforward and suitable for beginners to understand and use

Weaknesses

  • No stop loss or take profit configured (Signal_StopLevel=0, Signal_TakeLevel=0), relying entirely on signal-based exits which poses extreme risk during volatile markets
  • Fixed lot sizing without dynamic adjustment cannot adapt position size to market volatility or account risk
  • No trailing stop mechanism means profitable positions may give back significant gains or even turn into losses
  • Relies on a single CCI signal filter without multi-timeframe or multi-indicator confirmation, prone to false signals
  • No new bar check (EveryTick=false mitigates but does not fully resolve), potential for repeated signal calculations

Possible improvements

  • Add stop loss and take profit parameters with reasonable defaults to protect capital
  • Add multi-indicator or multi-timeframe filtering conditions to reduce false signals and improve win rate
  • Introduce dynamic position sizing (e.g., ATR-based risk calculation) to replace the simple fixed lot model
  • Add trailing stop functionality to lock in floating profits and prevent significant drawdowns on winning positions

Risk assessment

Overall risk: High risk

  • No stop loss or take profit configured, which can lead to catastrophic losses during extreme market moves
  • Relies solely on signal thresholds for exits; if signals are delayed or fail, position risk becomes uncontrollable
  • Fixed lot sizing does not account for account balance or volatility, lacking risk adaptability in adverse conditions

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__PeriodCCI18CCI indicator period
Signal__PeriodMA3MA period overlaid on RSI
Signal__Weight1.0Signal filter weight [0...1.0]
Money_FixLot_Percent10.0Capital percentage
Money_FixLot_Lots0.1Fixed trading lot size

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.