Exp_BlauCMI
This EA trades based on the BlauCMI (Ergodic CMI) indicator, a momentum-based oscillator with triple smoothing. It opens buy positions when the indicator rises and sell positions when it falls, with configurable stop loss and 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 | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
Why this EA never traded: no entry rule survived the conversion.
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 strategy concept is based on William Blau's CMI (Cumulative Momentum Index), which applies triple smoothing to momentum values to filter noise and generate more stable trading signals. Entry conditions: a buy position opens when the indicator value rises consecutively (Value[0]>Value[1] and Value[1]<Value[2]), and a sell position opens when the indicator value falls consecutively (Value[0]<Value[1] and Value[1]>Value[2]). Exit conditions include fixed stop loss (default 1000 points) and take profit (default 2000 points), as well as closing positions on opposing signals (long positions close on a declining signal, short positions close on a rising signal). Position sizing is controlled by the MM parameter, supporting either deposit percentage or fixed lot size modes. Money management uses the MarginMode enumeration to determine lot calculation, with MM defaulting to 0.1 representing 10% of the deposit. The strategy employs a multi-timeframe design where the indicator can run on a different timeframe than the chart, enhancing flexibility.
Strengths
- Triple smoothing effectively reduces market noise, producing more stable signals
- Supports multiple smoothing algorithms (EMA/JJMA/VIDIA/AMA) for market adaptability
- Complete stop loss/take profit mechanism with bidirectional trade toggle controls
- Multi-timeframe design allows analysis on higher timeframes with execution on lower ones
- Input parameter validation rejects invalid configurations (IPC1==IPC2 with XLength==1)
Weaknesses
- No spread filter, potentially entering at unfavorable prices during wide spreads
- No trailing stop feature, potentially failing to protect floating profits adequately
- Fixed stop loss (1000pts) and take profit (2000pts) without ATR-based volatility adaptation
- Numerous indicator parameters (5 smoothing depths + 1 phase) create high overfitting risk
- No check for existing positions in the same direction, potentially opening duplicate trades
Possible improvements
- Add ATR-based adaptive stop loss/take profit that dynamically adjusts to market volatility
- Add position checking logic to avoid duplicate entries in the same direction and excessive risk exposure
- Add spread filter and trading session filter to improve entry quality
Risk assessment
Overall risk: Medium
- Fixed stop loss/take profit ignores market volatility, potentially causing frequent stop outs during high volatility
- No same-direction position check may accumulate excessive directional risk exposure
- Excessive parameters create overfitting risk; backtest performance may not replicate in live trading
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Deposit percentage or fixed lots; negative value means lot size |
MMMode | LOT | Lot size calculation method |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum price slippage |
BuyPosOpen | true | Allow buy positions |
SellPosOpen | true | Allow sell positions |
BuyPosClose | true | Allow closing long positions |
SellPosClose | true | Allow closing short positions |
InpInd_Timeframe | PERIOD_H4 | Indicator timeframe |
XMA_Method | MODE_EMA | Smoothing method |
XLength | 1 | Momentum averaging depth |
XLength1 | 20 | First smoothing depth |
XLength2 | 5 | Second smoothing depth |
XLength3 | 3 | Third smoothing depth |
XPhase | 15 | Smoothing parameter |
IPC1 | PRICE_CLOSE | Close price constant |
IPC2 | PRICE_OPEN | Open price constant |
SignalBar | 1 | Bar index for entry signal |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.