Expert_ADC_PL_CCI
This EA uses the CDC_PL_CCI signal filter, which combines CCI (Commodity Channel Index) with a Moving Average to generate trade signals within the MQL5 Standard Library Expert Advisor framework. It employs fixed-lot money management and no trailing stop, relying entirely on the CCI/MA momentum signal for entry and exit decisions.
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 | +3.75% | +3.25% | 3.53% | 96 | 48.40% | 0.82 | 1.06 | 5 | +$3.59 | Reliable |
| GBPUSD | -5.71% | -4.98% | 8.66% | 110 | 44.00% | -0.89 | -0.66 | 8 | −$5.46 | Reliable |
| USDJPY | -8.02% | -7.01% | 10.12% | 118 | 35.00% | -1.36 | -0.79 | 9 | −$6.79 | Reliable |
| XAUUSD | -98.62% | -97.09% | 99.07% | 28 | 42.90% | -1.38 | -0.99 | 4 | −$352.21 | Account 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 79% of 68 · GBPUSD: better than 21% of 66 · USDJPY: better than 1% of 68 · XAUUSD: better than 12% of 75
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 62% | +2.52% 2026-03 | -1.47% 2026-04 |
| GBPUSD | 31% | +2.16% 2026-09 | -4.01% 2026-04 |
| USDJPY | 31% | +0.42% 2025-11 | -2.38% 2026-05 |
| XAUUSD | 15% | +33.96% 2025-12 | -96.78% 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 strategy concept is based on a combined momentum signal from the CCI indicator and a Moving Average, where CCI identifies the degree of price deviation from its statistical mean and MA smooths and confirms trend direction. Entry conditions are triggered by CCI and MA crossover or threshold breakthroughs, with signals required to reach the open threshold (default 40) and close threshold (default 20) before executing trades. Exit conditions rely on the reverse decay of signal strength, closing positions when the signal value drops below the close threshold, with no hard stop loss or take profit configured (both set to 0). Position sizing uses a fixed lot model (default 0.1 lots), which does not dynamically adjust based on account balance or market volatility. Money management employs the CMoneyFixedLot class with a fixed percentage (10%) and fixed lot size allocation, lacking an adaptive position sizing mechanism.
Strengths
- Uses the MQL5 Standard Library Expert framework with clean, well-structured, and highly modular code
- CCI and MA combination signal effectively filters false breakouts and reduces over-trading
- Signal threshold mechanism provides flexible open/close control and adjustable strategy sensitivity
- Fixed lot sizing reduces compounding risk, suitable for small account testing
Weaknesses
- Stop loss and take profit are both set to 0, lacking hard risk controls which could cause significant losses in extreme market conditions
- No trailing stop means profitable positions may reverse into losses due to price retracements
- Fixed lot sizing ignores account size and volatility changes, lacking adaptive money management
- Uses only a single signal filter, lacking strategy diversity and prone to consecutive losses in ranging markets
- No explicit new bar check despite EveryTick=false, potentially recalculating multiple times within a bar
Possible improvements
- Add stop loss and take profit parameters to provide basic risk protection mechanisms
- Introduce dynamic position sizing based on ATR or account risk ratio for automatic lot adjustment
- Add additional signal filters or time filters to improve strategy robustness and adaptability
- Add trailing stop functionality to protect unrealized profits
Risk assessment
Overall risk: High risk
- Stop loss and take profit are both 0, providing no hard risk boundaries or protection in extreme market conditions
- Fixed lot sizing does not adjust with account changes, potentially leading to over-leveraging or under-utilization of capital
- Single signal filter may generate consecutive losing signals under unfavorable market conditions
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
Signal_ThresholdOpen | 40 | Open position signal threshold [0...100] |
Signal_ThresholdClose | 20 | Close position signal threshold [0...100] |
Signal_PriceLevel | 0.0 | Price level for trade execution |
Signal_StopLevel | 0.0 | Stop loss level (points) |
Signal_TakeLevel | 0.0 | Take profit level (points) |
Signal_Expiration | 4 | Pending order validity (bars) |
Signal__PeriodCCI | 49 | CCI indicator period |
Signal__PeriodMA | 11 | MA moving average period |
Signal__Weight | 1.0 | Signal filter weight [0...1.0] |
Money_FixLot_Percent | 10.0 | Money 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.