FT CCI MA
This EA combines the CCI (Commodity Channel Index) indicator with a Moving Average to generate trading signals. It enters long positions when CCI crosses above a threshold while price is above the MA, and enters short positions when CCI crosses below a threshold while price is below the MA. The strategy aims to capture momentum shifts confirmed by trend direction.
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 | +0.49% | +0.43% | 3.36% | 132 | 47.30% | 0.13 | 0.15 | 5 | +$0.63 | Reliable |
| GBPUSD | -1.30% | -1.13% | 6.01% | 133 | 49.20% | -0.19 | -0.22 | 5 | −$0.80 | Reliable |
| USDJPY | -3.05% | -2.66% | 5.22% | 73 | 52.10% | -0.85 | -0.58 | 4 | −$4.18 | Reliable |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | No trades |
Profitable on 1 of 3 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 65% of 68 · GBPUSD: better than 45% of 66 · USDJPY: better than 32% of 68
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 54% | +2.03% 2026-06 | -1.31% 2026-09 |
| GBPUSD | 54% | +2.34% 2026-02 | -2.88% 2026-03 |
| USDJPY | 54% | +0.78% 2026-06 | -1.95% 2026-05 |
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 of this EA is momentum tracking, combining CCI overbought/oversold zones with Moving Average trend direction filtering for trade entries. For entry conditions, a long signal requires CCI crossing above the buy threshold while price is above the MA, and a short signal requires CCI crossing below the sell threshold while price is below the MA; this dual-condition filtering reduces false signals. Exit conditions typically rely on fixed take-profit and stop-loss levels or reverse signal triggers to close positions. Position sizing is handled through configurable lot size parameters, though the absence of dynamic lot calculation based on account equity is a potential limitation. Money management relies on stop-loss settings as a key component, but the adequacy of stop distances and whether spread impact is considered need scrutiny. Overall, the strategy logic is clear and well-structured, but as a momentum system it may generate excessive losing trades in ranging markets.
Strengths
- Dual-condition filtering (CCI + MA) effectively reduces false signals and improves entry quality
- Clear and concise strategy logic with highly configurable parameters, easy to optimize and adapt to different instruments
- CCI as a momentum indicator combined with trend direction confirmation aligns with fundamental trend trading principles
Weaknesses
- Momentum strategy tends to generate frequent stop-losses in ranging markets due to lack of sideways market identification
- Fixed lot sizing lacks proportional position management based on account equity, making risk control inflexible
- No explicit spread filter or trading session filter detected, potentially opening positions under unfavorable conditions
Possible improvements
- Add sideways market identification (e.g., ADX filter) to pause trading or switch strategies during ranging conditions
- Introduce dynamic position sizing based on account equity percentage and add spread/trading session filters to enhance risk control
Risk assessment
Overall risk: Medium
- Momentum strategy may incur consecutive losses in ranging markets due to lack of market state adaptation
- If stop-loss is set to 0 or excessively wide, a single trade may suffer significant losses
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
CCI_Period | 14 | CCI indicator calculation period |
MA_Period | 50 | Moving average period |
MA_Method | MODE_SMA | Moving average calculation method |
CCI_BuyLevel | -100 | CCI buy threshold level |
CCI_SellLevel | 100 | CCI sell threshold level |
LotSize | 0.1 | Trade lot size per order |
StopLoss | 0 | Stop loss in points |
TakeProfit | 0 | Overall take profit target in points |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.