EA-14383 · Momentum

Exp_MACDCandle

This EA trades based on the MACDCandle custom indicator, generating buy signals when the MACD histogram transitions to bullish (value 2) and sell signals when it transitions to bearish (value 0). It supports two operating modes: histogram crossover and signal line crossover, with configurable position sizing, stop loss, and take profit levels.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskMedium
Blow-up riskLow
Rating★★★☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsMACD, EMA
Author—

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD0.00%0.00%0.00%0—————Not convertible yet
GBPUSD0.00%0.00%0.00%0—————Not convertible yet
USDJPY0.00%0.00%0.00%0—————Not convertible yet
XAUUSD0.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 MACD momentum changes, using a custom MACDCandle indicator that encodes MACD states into discrete values (0, 2, etc.) to generate trading signals. Entry conditions: a buy signal is generated when indicator buffer 4 transitions from non-2 to 2, and a sell signal when it transitions from non-0 to 0, essentially capturing shifts in MACD momentum direction. Exit conditions rely on fixed stop loss (1000 points) and take profit (2000 points), while also closing positions on reverse signals — closing sells on buy signals and closing buys on sell signals. Position sizing supports two modes: fixed lot size (LOT) or margin-based percentage (MM parameter defaults to 0.1), implemented through the TradeAlgorithms.mqh library functions. Money management features a 1:2 risk-reward ratio, but lacks trailing stops and dynamic position adjustment, making risk control relatively static and inflexible.

Strengths

  • Clear strategy logic based on the classic MACD momentum indicator with solid theoretical foundation
  • Provides stop loss and take profit protection with a 1:2 risk-reward ratio, favorable for long-term expectancy
  • Independent on/off switches for buy and sell directions offer high trading flexibility
  • Uses IsNewBar check to prevent repeated trades within the same bar, reducing overtrading risk
  • Clean code structure with modular use of TradeAlgorithms library, easy to maintain

Weaknesses

  • Fixed stop loss and take profit in points without considering market volatility (ATR), poor adaptability across instruments and market conditions
  • Lacks trailing stop mechanism, potentially losing most profits during strong trending moves due to retracements
  • Depends on a custom MACDCandle indicator, increasing deployment complexity and dependency risk
  • No trading session filter, may generate unfavorable signals during low-liquidity periods
  • No spread filter or margin sufficiency check, which may cause anomalies during high spread or insufficient margin conditions

Possible improvements

  • Introduce ATR-based dynamic stop loss and take profit to adapt risk management to different instruments' volatility characteristics
  • Add trailing stop functionality to lock in more profits during trending markets
  • Add trading session filter and spread filter to avoid trading under unfavorable market conditions

Risk assessment

Overall risk: Medium

  • Fixed 1000-point stop loss may be too large or too small during significant volatility changes, failing to effectively protect capital
  • No spread filter means high-spread environments could trigger stops with expanded slippage
  • Dependency on external custom indicator means missing indicator file will cause EA initialization failure

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management3.0
Robustness3.0
Innovation2.0
Documentation1.0
Overall2.5

Parameters

ParameterDefaultDescription
MM0.1Money management parameter (lot or ratio)
MMModeLOTPosition sizing mode (free margin/balance/net free margin/net balance/fixed lot)
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum allowed slippage in points
BuyPosOpentrueAllow opening long positions
SellPosOpentrueAllow opening short positions
BuyPosClosetrueAllow closing long positions
SellPosClosetrueAllow closing short positions
InpInd_TimeframePERIOD_H4Indicator calculation timeframe
SignalBar1Bar index for signal retrieval
fast_ema_period12Fast EMA period
slow_ema_period26Slow EMA period
signal_period9Signal line period
modeMODE_SIGNAL_LINEMACD signal mode (histogram/signal line)

Similar Momentum EAs

Backtests are historical simulations and do not guarantee future results. Not financial advice.

Get the weekly Arena report

One email a week: ranking changes, new signals and new research. No spam; unsubscribe any time.