Exp_XCCI_Histogram_Vol
This EA trades based on the XCCI Histogram with Volume confirmation, entering long positions when the CCI histogram crosses above zero with volume support and short positions when it crosses below zero with volume support. It uses a customizable CCI period and volume threshold to filter signals, applying fixed stop-loss and take-profit levels for trade management. The strategy is a momentum-based approach that seeks to capture trend initiation confirmed by increasing market participation.
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 | -8.31% | -7.26% | 8.94% | 144 | 39.90% | -1.68 | -0.93 | 6 | −$6.05 | Reliable |
| GBPUSD | -13.44% | -11.79% | 15.17% | 144 | 42.70% | -2.19 | -0.89 | 11 | −$9.57 | Reliable |
| USDJPY | -3.98% | -3.47% | 5.58% | 165 | 47.00% | -0.78 | -0.71 | 10 | −$2.33 | Reliable |
| XAUUSD | +53.03% | +42.12% | 34.90% | 152 | 52.30% | 1.15 | 1.52 | 7 | +$33.49 | Reliable |
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 4% of 68 · GBPUSD: better than 3% of 66 · USDJPY: better than 24% of 68 · XAUUSD: better than 79% of 75
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 15% | +5.33% 2026-03 | -3.56% 2026-02 |
| GBPUSD | 15% | +6.88% 2026-03 | -5.76% 2026-02 |
| USDJPY | 54% | +1.35% 2026-08 | -3.44% 2026-09 |
| XAUUSD | 54% | +37.84% 2026-01 | -18.74% 2026-07 |
From the backtest equity curve, sampled about every two days; only reliable results.
Blow-up risk: No blow-up pattern found
None of the usual blow-up patterns were found in the code, and the account was not stopped out in our backtests. That is not a guarantee: any EA can lose money.
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 concept of this EA is based on the zero-line crossover signals of the XCCI (Extended Commodity Channel Index) histogram, combined with volume confirmation to filter out false breakouts. Entry conditions are: for long positions, the CCI histogram crosses above zero from negative territory and current volume exceeds a set volume threshold; for short positions, the reverse applies with the CCI histogram crossing below zero from positive territory with sufficient volume. Exit conditions rely on fixed stop-loss and take-profit parameters, without employing trailing stops or any dynamic exit mechanism. Position sizing uses a fixed lot size approach, without implementing dynamic position sizing based on account equity or market volatility for money management. The volume filter design helps reduce false signals in low-liquidity environments, but the strategy lacks multi-timeframe analysis and market structure recognition (such as support and resistance levels), which may lead to frequent false signals in ranging markets.
Strengths
- Volume confirmation mechanism effectively filters low-liquidity false signals, improving entry quality
- Fixed stop-loss and take-profit provide clear risk control boundaries, preventing excessive single-trade losses
- CCI histogram zero-line crossover logic is clear and easy to understand, with concise parameters facilitating optimization and backtesting
- Magic number for order management avoids conflicts with other EAs
Weaknesses
- Lacks trailing stop mechanism, profitable positions may significantly erode before being closed by take-profit or stop-loss
- Fixed lot position sizing does not account for account size and volatility, resulting in inconsistent risk exposure across different capital levels
- In ranging markets, CCI frequently crosses zero generating numerous false signals leading to consecutive losses
- No new bar check is implemented, potentially causing repeated entries within the same candle
Possible improvements
- Add trailing stop functionality to automatically tighten stops after price moves favorably, locking in profits
- Implement dynamic position sizing based on ATR or account equity percentage to make risk exposure self-adjusting to market conditions and capital size
- Add multi-timeframe confirmation, requiring higher timeframe trend alignment before entry, to reduce false signals in ranging markets
Risk assessment
Overall risk: High risk
- No new bar check implemented, potentially causing repeated entries within the same candle leading to over-exposure risk
- Fixed position sizing does not adjust to account size, potentially over-leveraging small accounts or under-utilizing large accounts
- Lacks ranging market identification and filtering, which may generate numerous consecutive losing trades in sideways markets
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
CCI_Period | 14 | CCI indicator calculation period |
Volume_Threshold | 1000 | Volume filter threshold; no trade below this value |
StopLoss | 300 | Stop loss in points |
TakeProfit | 600 | Take profit in points |
Lots | 0.1 | Fixed trading lot size |
MagicNumber | 21952 | EA unique ID to distinguish orders across instances |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.