Exp_CCI_Woodies
This EA trades based on the crossover of fast and slow CCI (Woodies) indicators. It opens buy positions when the fast CCI crosses above the slow CCI and sell positions when the fast CCI crosses below the slow CCI. Positions are closed on opposite crossover signals, with configurable money management and stop-loss/take-profit levels.
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 | -2.65% | -2.31% | 7.20% | 133 | 46.20% | -0.50 | -0.37 | 8 | −$2.26 | Reliable |
| GBPUSD | -0.83% | -0.72% | 5.20% | 130 | 51.90% | -0.11 | -0.16 | 5 | −$0.82 | Reliable |
| USDJPY | -3.28% | -2.86% | 6.66% | 132 | 42.00% | -0.60 | -0.49 | 9 | −$2.39 | Reliable |
| XAUUSD | +69.73% | +54.82% | 43.51% | 137 | 45.60% | 1.19 | 1.60 | 5 | +$49.46 | 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 34% of 68 · GBPUSD: better than 56% of 66 · USDJPY: better than 28% of 68 · XAUUSD: better than 84% of 75
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 54% | +2.26% 2026-06 | -3.43% 2026-03 |
| GBPUSD | 54% | +1.17% 2026-04 | -2.41% 2026-06 |
| USDJPY | 46% | +3.05% 2026-07 | -2.33% 2026-05 |
| XAUUSD | 38% | +56.91% 2026-03 | -10.09% 2026-02 |
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
This EA employs a dual CCI crossover strategy using the Woodies CCI indicator, where the core concept is capturing momentum shifts through the relative position changes between a fast CCI (default period 6) and a slow CCI (default period 14). Entry conditions are: a buy position opens when the fast CCI crosses above the slow CCI, and a sell position opens when the fast CCI crosses below the slow CCI, using a one-bar lag confirmation (SignalBar=1) to avoid look-ahead bias. Exit conditions are: a long position closes when the fast CCI crosses below the slow CCI, and a short position closes when the fast CCI crosses above the slow CCI. Position sizing supports five modes: fixed lot size, based on free margin, based on balance, based on free margin minus losses, and based on balance minus losses. Money management is controlled via the MM parameter with a default of 0.1 lots, along with a 1000-point stop loss and 2000-point take profit. The EA also supports signal inversion via the Invert parameter, which swaps buy and sell signals for counter-trend trading scenarios.
Strengths
- Dual CCI crossover strategy effectively captures momentum shifts with fast/slow line coordination
- Five position sizing modes offer flexibility for different risk appetites and account sizes
- Signal confirmation using previous bar (SignalBar=1) avoids look-ahead bias, making backtesting more reliable
- Signal inversion feature allows switching between trend-following and counter-trend modes for different market conditions
- Independent controls for buy/sell opening and closing enable one-direction-only trading or signal-only exits
Weaknesses
- CCI crossover strategy prone to frequent false signals in ranging markets, causing repeated losses
- Lacks a trend filter to distinguish trending from sideways markets, performing poorly in trendless conditions
- Fixed 1000-point SL and 2000-point TP do not account for market volatility (ATR), potentially unsuitable across different instruments and timeframes
- No trading session filter, which may lead to unfavorable fills during low-liquidity periods
- Depends on custom indicator CCI_Woodies; if the indicator file is missing the EA fails to initialize, increasing deployment complexity
Possible improvements
- Add ATR-based dynamic stop-loss and take-profit to automatically adjust exit levels based on market volatility for better adaptability
- Add a trend filter (e.g., ADX or higher-timeframe MA) to reduce trading frequency during sideways markets and avoid losses in ranging conditions
Risk assessment
Overall risk: Medium
- CCI crossovers generate numerous false signals in ranging markets, potentially causing consecutive losses
- Fixed SL/TP does not account for volatility; stop loss may be too tight in high-volatility conditions leading to frequent triggers
- No maximum position count limit or maximum drawdown protection, leaving risk uncontrolled during extreme market conditions
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management parameter, lots or ratio |
MMMode | LOT | Margin calculation mode (fixed lots, balance percentage, etc.) |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage |
BuyPosOpen | true | Allow buy positions |
SellPosOpen | true | Allow sell positions |
BuyPosClose | true | Close long positions on reverse signal |
SellPosClose | true | Allow closing short positions on signal reversal |
Invert | false | Invert buy/sell signals |
InpInd_Timeframe | PERIOD_H4 | trend_arrows indicator timeframe |
FastPeriod | 6 | fastCCI period |
FastPrice | PRICE_MEDIAN | Fast CCI applied price |
SlowPeriod | 14 | slowCCI period |
SlowPrice | PRICE_MEDIAN | Slow CCI applied price |
SignalBar | 1 | Signal bar index (0 for current bar) |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.