Starter_v6mod (jpkfox)
This EA is a multi-indicator momentum-based trading system that uses EMA Angle, Laguerre RSI with Laguerre filter, CCI, and two EMAs to generate buy/sell signals. It incorporates grid-style position stepping, trailing stops, daily loss limits, Friday exit rules, and a lot-decrease factor after consecutive losses. Positions are managed with both indicator-based and time-based exit conditions.
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 | -5.12% | -4.46% | 5.70% | 133 | 49.20% | -1.21 | -0.90 | 7 | −$3.62 | Reliable |
| GBPUSD | -1.10% | -0.95% | 4.67% | 136 | 47.40% | -0.16 | -0.24 | 8 | −$0.63 | Reliable |
| USDJPY | -4.25% | -3.70% | 7.58% | 137 | 40.90% | -0.88 | -0.56 | 8 | −$3.10 | Reliable |
| XAUUSD | +34.06% | +27.40% | 69.59% | 140 | 51.10% | 0.82 | 0.49 | 9 | +$22.73 | Reliable |
Profitable on 1 of 4 markets with reliable results.
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.
Against the other Momentum EAs with a reliable result on the same market: EURUSD: better than 18% of 68 · GBPUSD: better than 53% of 66 · USDJPY: better than 18% of 68 · XAUUSD: better than 68% of 75
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 31% | +2.29% 2026-03 | -2.05% 2026-08 |
| GBPUSD | 46% | +1.67% 2026-05 | -1.65% 2026-10 |
| USDJPY | 31% | +1.84% 2026-09 | -2.75% 2026-03 |
| XAUUSD | 77% | +67.13% 2026-03 | -37.10% 2026-08 |
From the backtest equity curve, sampled about every two days; only reliable results.
Blow-up risk: No blow-up pattern found
- Can hold up to 10 positions at once
On its own this is not a typical blow-up pattern, 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 relies on multi-indicator momentum confirmation: the EMA Angle indicator determines trend direction (negative values signal uptrend, positive values signal downtrend), the Laguerre RSI identifies overbought/oversold zones, CCI confirms momentum direction, and dual EMAs (period 120 and 40) provide trend-following confirmation. The buy condition requires Laguerre RSI below 0.15 (oversold), both EMAs declining, and CCI below zero, seeking reversal opportunities within bearish momentum; the sell condition is the mirror opposite. For exits, long positions close when Laguerre RSI exceeds 0.85, short positions close when it drops below 0.15, and all positions are forcefully closed after Friday 20:00. Position management uses a grid-stepping logic where new buy entries must be a minimum distance (ExtStepGrid) from the lowest existing buy price, preventing over-concentration. Money management supports either fixed lot sizing or risk-percentage mode, with lot size reduced by a DecreaseFactor after losses, a daily maximum of 3 losing trades, and trading halted when equity falls below the margin cutoff threshold.
Strengths
- Multi-indicator confirmation reduces false signals: EMA Angle for trend direction, Laguerre RSI for overbought/oversold, CCI and dual EMAs for momentum confirmation
- Comprehensive risk control system: daily loss count limit, margin cutoff threshold, lot decrease after consecutive losses, maximum position count limit
- Friday forced exit avoids weekend gap risk, and grid stepping prevents over-concentration of entry positions
- Supports both fixed lot and risk-percentage money management modes, flexibly adapting to different account sizes
Weaknesses
- Contradictory entry logic: buy conditions require both EMAs declining and CCI below zero, which means buying in a downtrend — this is counter-trend rather than momentum following, creating logical inconsistency
- Trailing stop logic is duplicated in CheckOpenPositions and a standalone Trailing() function that is never called, representing dead code
- Lacks new bar detection mechanism, meaning trading logic can trigger on every tick, potentially causing redundant entries or over-trading during volatile conditions
- Stop loss of 35 pips vs take profit of 10 pips yields a risk-reward ratio of only ~0.29, requiring an extremely high win rate for profitability, raising sustainability concerns
Possible improvements
- Add new bar detection (isNewBar) to prevent trading logic from executing on every tick, reducing unnecessary computation and potential redundant entries
- Fix entry logic consistency: if the strategy is momentum-following, buys should occur during uptrends with rising EMAs; if it's mean reversion, clearly label the strategy type and add reversal confirmation indicators
- Invoke or remove the unused Trailing() function to eliminate dead code and consolidate trailing stop implementation in one location
- Add spread filtering to avoid opening positions during high-spread periods (e.g., around news releases or low-liquidity sessions), improving win rates for scalping-style trades
Risk assessment
Overall risk: Caution
- Stop loss far exceeds take profit (35 vs 10 pips), yielding an extremely low risk-reward ratio that amplifies drawdown risk during losing streaks
- No new bar detection may allow multiple entries within the same bar, increasing risk exposure especially during rapid market moves
- Grid stepping logic allows up to 10 same-direction positions, potentially creating large cumulative risk exposure in extreme market conditions
- Lack of spread filtering may result in immediate losses when opening positions during high-spread environments
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
InpLotSetManually | false | Lot mode: true=fixed lot, false=risk percentage calculation |
InpLots | 0.1 | Fixed lot size value |
InpStopLoss | 35 | stop losspoints (pips) |
InpTakeProfit | 10 | take profitpoints (pips) |
InpTrailingStop | 0 | Trailing stop distance in points |
InpTrailingStep | 5 | Trailing stop step in points |
Risk | 5 | Risk per trade as percentage of free margin |
InpDecreaseFactor | 1.6 | Lot reduction factor after losses |
InpMaxLossesPerDay | 3 | Maximum daily loss count limit |
InpMargincutoff | 800 | Stop trading when equity falls below this value |
InpMaxtrades | 10 | Maximum positions |
InpStepGrid | 30 | Grid step distance in pips |
EMAPeriod | 34 | EMA angle indicator period |
AngleThreshold | 3.0 | EMA angle threshold; exceeding this signals a trend |
RsiGamma | 0.80 | Laguerre RSI gamma parameter |
RsiSmoothGamma | 0.001 | Laguerre RSI smoothing gamma parameter |
FilterGamma | 0.60 | Laguerre filter gamma parameter |
LevelUp | 0.85 | Laguerre RSIoverbought level |
LevelDown | 0.15 | Laguerre RSIoversold level |
CCI_ma_period | 14 | CCI indicator period |
MA_One_ma_period | 120 | Slow EMA period |
MA_Two_ma_period | 40 | Fast EMA period |
m_magic | 15489 | EA magic number for identifying its positions |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.