MaSarADX
This EA combines a 100-period Simple Moving Average, ADX directional indicators, and Parabolic SAR to identify and trade trend-following signals. It opens buy positions when price is above the MA, ADX+ is greater than ADX-, and price is above SAR; sell conditions are the mirror opposite. Positions are closed when price crosses back below/above the Parabolic SAR, and lot sizing is dynamically calculated based on account free margin and recent loss history.
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 | -3.52% | -3.06% | 8.84% | 1 | 0.00% | — | — | — | — | Same as other EAs |
| GBPUSD | +2.68% | +2.32% | 6.56% | 1 | 0.00% | — | — | — | — | Same as other EAs |
| USDJPY | -2.68% | -2.33% | 7.60% | 1 | 0.00% | — | — | — | — | Same as other EAs |
| XAUUSD | -8.50% | -7.07% | 66.13% | 1 | 0.00% | — | — | — | — | Same as other EAs |
On every market this backtest is identical to EA-42283. 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
- Has no stop loss or trailing stop
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 is a triple-confirmation trend-following system combining a moving average for trend direction, ADX for trend strength and direction, and Parabolic SAR as a trailing stop and signal confirmation. For entry, a buy requires the close price above SMA(100), ADX+ greater than ADX-, and close above SAR—all three conditions must align simultaneously; sell conditions are the exact mirror. Exit relies solely on SAR reversal—long positions close when price falls below SAR, short positions close when price rises above SAR, with no fixed stop-loss or take-profit configured. Position sizing dynamically calculates lot size based on account free margin and a maximum risk percentage, then reduces size proportionally based on consecutive losing trades via a decrease factor, while normalizing volume to symbol step/min/max constraints. Although money management considers risk ratio and loss-based reduction, the PositionOpen call sets both stop-loss and take-profit to 0, relying entirely on SAR as an implicit trailing stop, which creates a meaningful risk exposure. The overall strategy logic is clear but relatively simplistic, lacking a ranging-market filter and more robust risk controls.
Strengths
- Triple confirmation (MA+ADX+SAR) reduces false signals with rigorous entry conditions
- Dynamic position sizing adapts to account balance and consecutive losses, showing risk awareness
- New bar first-tick check prevents repeated trading, effectively implementing one-trade-per-bar logic
- Clean code structure with clear function separation, easy to understand and modify
Weaknesses
- No stop-loss or take-profit set on position open (both 0), relying entirely on SAR for exit—extreme moves could cause significant losses
- SAR parameters are hardcoded (0.02/0.2) with no input parameter adjustment, lacking flexibility
- CheckForClose doesn't iterate all positions, only processes a single selected position—multi-symbol or multiple positions may be missed
- The Lots input parameter is declared but never used, which can confuse users
- No ranging-market filter—the ADX main line value is not used to gauge trend strength for filtering
Possible improvements
- Make SAR parameters configurable inputs and add an ADX main line threshold filter to avoid trading in ranging markets
- Add stop-loss and take-profit to position open calls, using ATR-based dynamic stop distances for enhanced risk control
Risk assessment
Overall risk: Medium
- Stop-loss and take-profit are both 0 on open—no hard stop protection means flash crashes or gaps can cause losses far exceeding expectations
- Relying solely on SAR reversal for exits can cause frequent whipsaw losses in low-volatility or sideways markets
- CheckForClose doesn't loop through all positions, risking positions not being properly closed
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
ADX_Period | 14 | ADX indicator period |
Lots | 0.1 | Fixed lot size (unused; dynamic calculation applied) |
MaximumRisk | 0.002 | Maximum risk percentage for dynamic lot calculation |
DecreaseFactor | 3 | Position decrease factor after consecutive losses |
MovingPeriod | 100 | Moving average period |
MovingShift | 0 | Moving average shift |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.