Exp_ColorStepXCCX
This EA trades based on the ColorStepXCCX custom indicator, which uses step-filtered moving averages with dual smoothing. It enters long when the fast line crosses above the slow line and short when it crosses below, with configurable permissions for opening and closing positions independently.
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 | — | — | — | — | — | Custom indicator approximated |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Custom indicator approximated |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Custom indicator approximated |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Custom indicator approximated |
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 EA's core strategy is trend following based on the ColorStepXCCX indicator, which combines dual smoothing algorithms — price smoothing (e.g., JJMA) and deviation smoothing (e.g., T3) — then generates signals through fast and slow step sizes. Entry conditions: a buy signal triggers when buffer 0 (MPlus) crosses above buffer 1 (MMinus), and a sell signal triggers on the opposite crossover, with the additional requirement that the prior bar showed no crossover (confirming a fresh cross). Exit conditions: reverse crossover signals close positions, supplemented by fixed StopLoss and TakeProfit values in points for risk control. Position sizing is governed by the MM parameter: negative values specify a fixed lot size, while positive values represent a share of the deposit per deal. Money management relies on the TradeAlgorithms.mqh library functions (BuyPositionOpen/SellPositionOpen), which include deviation control to manage slippage. The strategy also uses an IsNewBar mechanism to ensure signals are calculated only once per bar, preventing duplicate trades within the same bar.
Strengths
- Dual smoothing algorithms (JJMA+T3) produce higher quality signals with reduced noise
- Independent control over buy/sell open and close permissions provides flexible configuration
- IsNewBar mechanism prevents redundant signal calculation and duplicate trades within the same bar
- Reasonable StopLoss/TakeProfit defaults with a 2:1 reward-to-risk ratio favoring long-term profitability
- Step filtering mechanism effectively reduces frequent false signals in choppy markets
Weaknesses
- Depends on the custom ColorStepXCCX indicator which must be installed separately, increasing deployment complexity
- No spread filter, potentially leading to unfavorable entries in high-spread conditions
- No explicit position check logic, potentially allowing duplicate position openings under certain conditions
- StopLoss 1000 and TakeProfit 2000 points may be too large or small for some instruments without adaptive adjustment
- The positive/negative MM parameter logic is unintuitive and prone to misconfiguration
Possible improvements
- Add a spread filter to pause trading when spread exceeds a threshold, avoiding unfavorable slippage
- Add position checking to prevent duplicate same-direction opens and allow max position limits
- Split the MM parameter into separate position sizing mode and lot/ratio parameters for better readability
Risk assessment
Overall risk: Medium
- No spread filter means entry prices may be unfavorable during high-spread periods
- The negative MM value for fixed lots is error-prone and could accidentally use oversized lots
- Dependency on external custom indicator means EA fails silently if indicator file is missing
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | -0.1 | Deposit percentage or fixed lot; negative value = lot size |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum slippage deviation in points |
BuyPosOpen | true | Allow buy position opening |
SellPosOpen | true | Allow sell position opening |
BuyPosClose | true | Allow closing long positions |
SellPosClose | true | Allow closing short positions |
InpInd_Timeframe | PERIOD_H4 | AroonSignal indicator timeframe |
DSmoothMethod | MODE_JJMA | Price smoothing method |
DPeriod | 30 | Moving average period |
DPhase | 100 | Smoothing parameter |
MSmoothMethod | MODE_T3 | Deviation smoothing method |
MPeriod | 7 | Average deviation period |
MPhase | 15 | Deviation smoothing parameter |
IPC | PRICE_TYPICAL | Price constant type (close/open/high/low/median/typical/weighted etc.) |
StepSizeFast | 5 | Fast step size |
StepSizeSlow | 30 | Slow step size |
SignalBar | 1 | Bar index for entry signal |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.