TradingLab Best MACD Strategy
This EA trades based on MACD signal line crossovers combined with trend filtering, entering long positions when MACD crosses above its signal line in an uptrend and short positions when it crosses below in a downtrend. It uses standard MACD indicator values to generate systematic entry and exit signals without discretionary intervention. The strategy aims to capture momentum shifts confirmed by MACD histogram direction changes.
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.10% | +4.42% | 3.94% | 118 | 52.10% | — | — | — | — | Same as other EAs |
| GBPUSD | +13.29% | +11.45% | 2.46% | 121 | 50.40% | — | — | — | — | Same as other EAs |
| USDJPY | -8.03% | -7.01% | 9.07% | 125 | 48.00% | — | — | — | — | Same as other EAs |
| XAUUSD | +1.98% | +1.63% | 54.16% | 134 | 49.60% | — | — | — | — | Same as other EAs |
On every market this backtest is identical to EA-17425. The automatic conversion almost certainly lost what makes this EA different (a custom indicator, a filter or the money management), so these results are not ranked or counted.
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 concept of this strategy is to capture directional shifts in market momentum using the classic MACD signal line crossover. Entry conditions require the MACD main line to cross above the signal line for longs (or below for shorts), combined with a trend direction filter to avoid counter-trend trades — long signals must be confirmed in an uptrend and short signals in a downtrend. Exit conditions typically rely on a reverse MACD crossover signal or preset take-profit and stop-loss levels to close positions. Position sizing uses either fixed lots or an account balance-proportional approach, but lacks a dynamic position adjustment mechanism. Money management relies on stop-loss settings to control per-trade risk, but there is no explicit maximum risk percentage per trade or equity drawdown protection mechanism. The overall strategy logic is clear but relatively basic, lacking adaptive adjustments for market volatility, trading sessions, and spread environment factors.
Strengths
- MACD is a well-established classic momentum indicator with clear signal logic that is easy to verify and optimize
- Trend filtering effectively reduces counter-trend false signals and improves win rate
- High degree of parameterization allows users to flexibly adjust periods and lot sizes for different instruments and market conditions
- Systematic execution eliminates emotional interference and ensures consistent trading discipline
Weaknesses
- MACD signals have noticeable lag, leading to late entries during rapid reversals which reduce profit potential
- Lacks adaptive volatility mechanism (ATR), prone to frequent false signals in low-volatility ranging markets
- Default stop-loss and take-profit are zero, exposing trades to unlimited risk if users do not manually set them
- No new bar check mechanism, potentially opening duplicate positions on the same bar leading to overtrading
- Does not consider trading session or spread filtering, which may result in unfavorable fills during low liquidity or widened spreads
Possible improvements
- Add ATR-adaptive stop-loss and take-profit mechanism that dynamically adjusts stop distances based on market volatility, improving strategy adaptability across different market conditions
- Add new bar check and maximum position count limits to prevent duplicate entries and overtrading, along with spread filtering to avoid high-cost executions
Risk assessment
Overall risk: Medium
- Default stop-loss and take-profit are zero — if users forget to set them, trades have no price protection and may suffer significant losses
- Lacks new bar check mechanism, potentially triggering multiple entries on a single bar leading to duplicate positions
- No maximum drawdown protection or account equity monitoring, which may lead to continued position addition and expanded losses during extreme market conditions
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
FastEMA_Period | 12 | MACD fast EMA period |
SlowEMA_Period | 26 | MACD slow EMA period |
SignalSMA_Period | 9 | MACD signal SMA period |
LotSize | 0.1 | Trading lot size |
StopLoss | 0 | Stop loss in points |
TakeProfit | 0 | Take profit in points |
TrailingStop | 0 | Trailing stop in points |
MagicNumber | 123456 | EA magic number for identifying orders |
TimeFrame | H1 | Trading timeframe |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.