EA-1141 · Momentum

Exp_CMO

This EA trades based on the CMO (Chande Momentum Oscillator) indicator, opening buy positions when the CMO crosses from negative to positive territory and sell positions when it crosses from positive to negative. It uses configurable lot sizing, stop loss, and take profit levels, and only processes signals on new bars to avoid redundant trading.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskMedium
Blow-up riskLow
Rating★★★☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsCMO
AuthorCopyright © 2012, Nikolay Kositsin

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD0.00%0.00%0.00%0—————Run error
GBPUSD0.00%0.00%0.00%0—————Run error
USDJPY0.00%0.00%0.00%0—————Run error
XAUUSD0.00%0.00%0.00%0—————Run error

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.

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 trading based on CMO indicator zero-line crossovers. Entry conditions: a buy signal is generated when the previous CMO bar value is above zero and the current bar value drops below zero (crossing downward), while a sell signal is generated when the previous value is below zero and the current value rises above zero (crossing upward). Exit conditions include fixed stop loss and take profit levels in points, plus reverse signal exits where a buy signal closes short positions and a sell signal closes long positions. Position sizing is controlled via the MM parameter, where negative values represent fixed lot sizes and positive values represent deposit-proportional sizing. Money management relies on external functions from the TradeAlgorithms.mqh library, whose internal logic is not visible in this file. The default configuration uses H4 timeframe with a 14-period SMA-smoothed CMO, reading signals from bar index 1, making it a lagging-confirmation trend momentum approach.

Strengths

  • Strategy logic is clean and straightforward, based on the classic CMO zero-line crossover, easy to understand and verify
  • Full directional control with separate buy/sell open and close permission switches for flexible configuration
  • New bar detection mechanism prevents redundant trades within the same bar, reducing overtrading risk
  • Configurable stop loss and take profit with a default 2:1 reward-to-risk ratio

Weaknesses

  • Core trading logic depends on the external TradeAlgorithms.mqh library, making it impossible to fully audit position management and order execution details
  • Lacks spread filter and adequate slippage protection, potentially suffering extra losses in low-liquidity markets
  • CMO zero-line crossovers generate frequent false signals in ranging/choppy markets, leading to consecutive losses
  • No trailing stop or dynamic stop loss mechanism; fixed stops may not suit all market volatility conditions

Possible improvements

  • Add CMO threshold filtering or overbought/oversold zones to avoid frequent open/close cycles when oscillating near the zero line
  • Add spread filtering and multi-timeframe confirmation to improve signal quality and reduce false signal ratio

Risk assessment

Overall risk: Medium

  • Frequent false signals from CMO zero-line crossovers in ranging markets can lead to consecutive stop losses
  • External library's risk control logic is not visible, so position management safety cannot be confirmed

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management3.0
Robustness2.0
Innovation2.0
Documentation2.0
Overall2.5

Parameters

ParameterDefaultDescription
MM-0.1Money management ratio or lot size
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum allowed slippage
BuyPosOpentrueAllow open long position
SellPosOpentrueAllow open short position
BuyPosClosetrueAllow signal-based close long position
SellPosClosetrueAllow close short position
InpInd_TimeframePERIOD_H4Indicator timeframe
Length14CMO indicator period
MethodMODE_SMASmoothing type
PricePRICE_CLOSEApplied price type
SignalBar1Bar index for entry signal

Similar Momentum EAs

Backtests are historical simulations and do not guarantee future results. Not financial advice.

Get the weekly Arena report

One email a week: ranking changes, new signals and new research. No spam; unsubscribe any time.