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
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | -1.05% | -0.91% | 4.78% | 127 | 47.20% | -0.19 | -0.22 | 5 | −$0.83 | Reliable |
| GBPUSD | -8.69% | -7.59% | 11.64% | 132 | 43.20% | -1.41 | -0.75 | 9 | −$6.58 | Reliable |
| USDJPY | -0.99% | -0.86% | 4.87% | 137 | 43.40% | -0.15 | -0.20 | 7 | −$0.62 | Reliable |
| XAUUSD | -100.00% | -100.00% | 100.00% | 33 | 39.40% | -1.57 | -1.00 | 7 | −$347.13 | Account 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
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 62% | +1.53% 2026-09 | -2.86% 2026-04 |
| GBPUSD | 38% | +4.20% 2026-03 | -3.24% 2026-04 |
| USDJPY | 46% | +1.11% 2026-03 | -2.50% 2025-12 |
| XAUUSD | 50% | +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
Parameters
| Parameter | Default | Description |
|---|---|---|
Signal_ThresholdOpen | 40 | Entry signal threshold [0...100] |
Signal_ThresholdClose | 20 | Exit signal threshold [0...100] |
Signal_PriceLevel | 0.0 | Trade execution price level |
Signal_StopLevel | 0.0 | Stop loss level (in points) |
Signal_TakeLevel | 0.0 | Take profit level (in points) |
Signal_Expiration | 4 | Pending order expiration (in bars) |
Signal__PeriodCCI | 18 | CCI indicator period |
Signal__PeriodMA | 3 | MA period overlaid on RSI |
Signal__Weight | 1.0 | Signal filter weight [0...1.0] |
Money_FixLot_Percent | 10.0 | Capital percentage |
Money_FixLot_Lots | 0.1 | Fixed trading lot size |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.