Exp_Color3rdGenXMA
This EA trades based on signals from the Color3rdGenXMA custom indicator, which uses a third-generation moving average with configurable smoothing methods. It opens buy positions when the indicator signals an uptrend (value=2) and sell positions when it signals a downtrend (value=0), with time-based entry filtering and position holding duration limits.
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 core strategy of this EA is a trend-following system based on the third-generation moving average indicator (Color3rdGenXMA). Entry conditions are: a buy signal is generated when indicator buffer 1 equals 2, and a sell signal when it equals 0, with the value 1 representing no directional signal. Entry timing is strictly controlled, only allowing new positions at a user-specified hour and minute (StartHour:StartMinute), functioning as a session-based trade filter. Exit conditions include: indicator reversal signals triggering position closure (if BuyPosClose/SellPosClose are enabled), and forced closure based on position holding time (TimeMin parameter, default 720 minutes). Position sizing is managed through the TradeAlgorithms.mqh library, supporting five money management modes: free margin percentage, balance percentage, free margin loss share, balance loss share, and fixed lot size. The EA also implements maximum price deviation (slippage) control and history data loading to ensure correct indicator calculations.
Strengths
- Supports 10 smoothing algorithms, providing high strategy flexibility to adapt to different market conditions
- Time-based entry filter avoids trading during unfavorable sessions, reducing false signal risk
- Position holding time limit (TimeMin) prevents prolonged drawdowns, with forced stop-loss and take-profit for risk management
- Five money management modes offer flexible position sizing control options
- Separate permission controls for opening and closing positions allow fine-grained strategy tuning
Weaknesses
- Entry time filter is precise only to the minute and triggers at a single moment, potentially missing optimal entries or forcing entries at suboptimal times
- Indicator-based position closing is disabled by default (BuyPosClose/SellPosClose=false), preventing timely exits on trend reversals
- No spread filter included, which may lead to unfavorable fills in high-spread environments
- Depends on the custom Color3rdGenXMA indicator, which must be correctly installed or the EA cannot run
- Signals are based on a single indicator without multi-dimensional confirmation, potentially generating many false signals
Possible improvements
- Add spread filtering and multi-timeframe confirmation to reduce unfavorable fills and false signals
- Change the entry time filter from a single moment to a time window for greater entry flexibility
- Add a trailing stop feature to protect profits during trend continuation
Risk assessment
Overall risk: Medium
- Indicator-based closing disabled by default, potentially holding losing positions until stop-loss or timeout on trend reversal
- Single indicator signal lacks confirmation mechanism, may trigger frequent stop-losses in ranging markets
- Entry limited to a single minute, risk of unfavorable fills if price gaps at that moment
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Trade capital percentage |
MMMode | LOT | Lot sizing method (free margin/balance/loss ratio/fixed lot) |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Max price deviation (slippage) in points |
BuyPosOpen | true | Allow opening long positions |
SellPosOpen | true | Allow opening short positions |
BuyPosClose | false | Allow closing long positions on indicator signal |
SellPosClose | false | Allow closing short positions on indicator signal |
StartHour | H08 | Position opening hour |
StartMinute | M00 | Position opening minute |
TimeMin | 720 | Max position holding time (minutes) |
InpInd_Timeframe | PERIOD_H4 | Indicator timeframe |
XMA_Method | MODE_EMA | Smoothing method (SMA/EMA/SMMA/LWMA/JJMA/JurX/ParMA/T3/VIDYA/AMA) |
XLength | 50 | Smoothing depth |
XPhase | 15 | Smoothing parameter (JJMA: -100 to +100, VIDYA: CMO period, AMA: slow MA period) |
IPC | PRICE_TYPICAL_ | Applied price type |
Shift | 0 | Indicator horizontal shift (bars) |
PriceShift | 0 | Indicator vertical shift (points) |
SignalBar | 1 | Bar index for entry signal |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.