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
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Run error |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Run error |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Run error |
| XAUUSD | 0.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
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | -0.1 | Money management ratio or lot size |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage |
BuyPosOpen | true | Allow open long position |
SellPosOpen | true | Allow open short position |
BuyPosClose | true | Allow signal-based close long position |
SellPosClose | true | Allow close short position |
InpInd_Timeframe | PERIOD_H4 | Indicator timeframe |
Length | 14 | CMO indicator period |
Method | MODE_SMA | Smoothing type |
Price | PRICE_CLOSE | Applied price type |
SignalBar | 1 | Bar index for entry signal |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.