Disclaimer: This article is for educational and informational purposes only. It does not constitute financial or investment advice. Trading forex and CFDs carries significant risk of loss. Past performance of any strategy — including backtests — does not guarantee future results. Never trade with money you cannot afford to lose.
What Is This Strategy?
The Chande Momentum Continuation strategy is a trend-following, pullback-continuation system built around the Chande Momentum Oscillator (CMO) — a bounded momentum indicator that measures the net directional pressure in price over a set number of bars on a scale from −100 to +100. Rather than chasing fresh breakouts or trying to fade exhausted moves, this strategy is designed to do something more patient: it waits for an already-established trend to take a brief momentum "breather," and then it looks to re-join that trend at the moment momentum turns back in the trend's favor.
To decide when a trend is genuinely in place, the strategy combines the CMO with a dual Exponential Moving Average (EMA) regime filter and an Average True Range (ATR) volatility measure. The EMA pair defines the direction and structure of the trend, the ATR quantifies how much the market is currently moving, and the CMO provides the precise entry timing. Because these three tools measure different things — direction, volatility, and momentum — they act as orthogonal filters that each remove a different family of false signals.
As a learning tool, this strategy is well suited to traders who want to study how a continuation approach differs from a breakout or reversal approach. It is designed for trending instruments such as major forex pairs, gold, or an index, on intraday-to-swing timeframes (roughly M15 through H4). This article frames the strategy as an educational case study in rules-based trend trading — not as a profit opportunity — so you can understand why each rule exists and how the pieces fit together.
How It Works
The strategy evaluates its rules once per newly-closed bar, reading only fully-closed price data so that signals do not repaint (change after the fact). Every entry must pass three independent filters before a trade is signaled.
Entry conditions (long example — shorts are the mirror image):
- Regime filter (trend direction): The strategy signals a long only when the fast EMA is above the slow EMA and the last close is above the slow EMA. This confirms an uptrend is in place and discards counter-trend setups, where continuation trades historically fail most often.
- Trend-strength filter: The gap between the fast and slow EMA must be larger than
TrendStrengthMult × ATR. Because the gap is measured in ATR multiples, this test is dimensionless and works across symbols and timeframes. It demands a real, expanding trend and skips the flat, tangled, whipsaw-prone chop where the two EMAs sit on top of each other. - Momentum-timing filter: The CMO must first pull back into a neutral band around zero, and then cross back out of that band in the trend's direction — up through the
+PullbackLevelfor longs, or down through the−PullbackLevelfor shorts. That cross is the moment a healthy pullback resolves into renewed thrust, which the strategy treats as its continuation trigger.
When all three conditions align, the strategy signals an entry at the current market price.
Stop-loss and take-profit logic:
- The initial stop-loss is placed
StopLossAtrMult × ATRaway from entry, so the risk distance automatically adapts to current volatility. - The take-profit is placed
TakeProfitAtrMult × ATRaway. With the defaults (3.2 / 1.6), this creates a target-to-stop distance of roughly 2-to-1. - A trailing stop activates once price has moved
TrailStartAtrMult × ATRin your favor. From that point, the stop ratchets to a distance ofTrailDistanceAtrMult × ATRbehind price and only ever tightens — it never loosens. This is designed to let winning trades run while protecting open profit.
Additional controls:
- A maximum-spread filter blocks new entries when the spread (execution cost) is abnormally wide.
- Only one position per magic number is held at a time — the strategy does not stack or average into trades.

Strategy Parameters
| Parameter | Default | Min | Max | Description |
|---|---|---|---|---|
| CmoPeriod | 14 | 6 | 40 | Lookback length (in bars) for the Chande Momentum Oscillator. |
| EmaFastPeriod | 21 | 5 | 80 | Period of the fast EMA in the trend-regime filter. |
| EmaSlowPeriod | 55 | 20 | 200 | Period of the slow EMA in the trend-regime filter. |
| PullbackLevel | 5.0 | 0.0 | 40.0 | Neutral CMO band (in CMO points) that momentum must pull into and then cross back out of. |
| AtrPeriod | 14 | 7 | 30 | ATR length used for the trend-strength gate, stops, targets, and trailing. |
| TrendStrengthMult | 0.10 | 0.0 | 1.0 | Minimum EMA separation, in ATR multiples, required to call the trend "real." |
| StopLossAtrMult | 1.6 | 0.8 | 4.0 | Initial protective stop distance, in ATR multiples. |
| TakeProfitAtrMult | 3.2 | 1.0 | 7.0 | Take-profit distance, in ATR multiples. |
| TrailStartAtrMult | 1.0 | 0.2 | 3.0 | Open profit (in ATR multiples) required before the trailing stop activates. |
| TrailDistanceAtrMult | 1.4 | 0.5 | 3.5 | Trailing-stop distance from price once active, in ATR multiples. |
| MaxSpreadPoints | 30 | 5 | 150 | Skip new entries when the current spread (points) exceeds this cap. |
| Lots | 0.10 | 0.01 | 1.00 | Trade volume in lots. |
| Magic | 8815 | 0 | 9,999,999 | Expert magic number used to identify this strategy's positions. |

Recommended Chart Settings
This strategy was designed to run on a single primary timeframe, and it adapts its risk to volatility, so it is intended to be portable across instruments. In practice it is best studied on trending instruments — major forex pairs, gold (XAU/USD), or a stock index — on timeframes from M15 to H4. Because the trend-strength and risk logic are all ATR-normalized, the same default settings can be applied to different symbols without manual point-size tuning.
Keep in mind that results will vary significantly across different market conditions. A parameter set that behaves well in a strongly trending phase may behave very differently in a ranging or highly volatile phase, so any settings should be studied on a demo account first.
How to Install on MetaTrader 5
- Download the
.ex5file from the link below. - Copy it to your MT5
MQL5\Expertsfolder. - Restart MetaTrader 5 or refresh the Navigator panel.
- Drag the EA onto a chart matching the recommended symbol and timeframe.
- Configure the input parameters and enable Algo Trading.
What to Consider Before Using This EA
Every strategy involves trade-offs. Understanding them is part of using any tool responsibly.
Strengths of this approach:
- Trend alignment. By requiring the EMA regime and a strength floor before entering, the strategy avoids many low-quality counter-trend and chop signals.
- Volatility-adaptive risk. Stops, targets, and trailing are all expressed in ATR multiples, so risk distances expand and contract with the market rather than being fixed in points.
- Non-repainting logic. Signals are read from closed bars only, which makes the strategy's historical behavior easier to study honestly.
- Defined, one-at-a-time exposure. Holding a single position per magic number keeps risk transparent and avoids compounding exposure.
Known limitations:
- Trend dependency. As a continuation system, it needs sustained directional movement. In prolonged ranges, the trend-strength filter may block trades for long stretches, or occasional signals may resolve into whipsaws.
- Pullback-timing risk. The CMO cross is a probability tool, not a certainty. Some pullbacks that trigger an entry will simply be the start of a deeper reversal.
- Parameter sensitivity. EMA lengths, the CMO period, and the pullback band all shape how often signals appear. Over-tuning them to past data (curve-fitting) can produce results that do not carry forward.
- Execution and cost. Spread, slippage, and commissions all affect real outcomes. The spread filter mitigates but does not eliminate this.
The goal is balance: this is a structured, rules-based framework worth studying, but it is not a set-and-forget solution, and no filter combination removes market risk.
Risk Management Tips
Sound risk management matters more than any single entry rule. As you study this or any strategy, consider these general principles:
- Risk a small, fixed fraction per trade. Many educational sources suggest risking no more than 1–2% of account equity on any single position, so that a losing streak does not threaten the account.
- Size positions to your stop, not the other way around. Let the ATR-based stop distance and your chosen risk percentage determine your lot size — not a lot size you simply feel comfortable with.
- Always start on a demo account. Test behavior across trending, ranging, and volatile periods before ever considering live capital.
- Understand drawdown. Even a well-designed trend strategy will have losing periods. Know the maximum peak-to-trough decline you are willing to tolerate before you begin.
- Account for costs. Include spread, slippage, and commissions in any evaluation, since they can materially change outcomes.
- Keep records. Reviewing your own trade log is one of the most effective ways to learn how a strategy actually behaves in your conditions.
Risk Warning
Trading foreign exchange, CFDs, and other leveraged financial instruments involves substantial risk of loss and is not suitable for all investors. The strategies and tools discussed on this page are provided for educational purposes only and do not constitute financial advice, investment recommendations, or solicitation to trade. Always consult a qualified financial adviser before making trading decisions. Past backtest performance is not indicative of future results.
Downloads
- Expert Advisor: ChandeMomentumContinuation.ex5 (1 downloads)
- Source Code: ChandeMomentumContinuation.mq5 (0 downloads)
- Documentation: ChandeMomentumContinuation.pdf (1 downloads)