EA-15221 · Trend Following

Exp_NonLagDot

This EA trades trend reversals signaled by the NonLagDot custom indicator, opening buy positions when the indicator shifts from downtrend (2) to uptrend (1) and sell positions on the opposite transition. It includes configurable money management modes, stop loss/take profit, and separate toggle switches for opening and closing long/short positions. The EA operates on new bar detection to avoid excessive tick-level trading.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskMedium
Blow-up riskLow
Rating★★★☆☆
TypeTrading EA
TimeframesM15, H1, H4, D1
IndicatorsNonLagDot
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 core strategy of this EA is trend-following reversal trading based on the NonLagDot indicator. Entry conditions: a buy signal is triggered when the indicator buffer value changes from 2 to 1 (trend shifting from down to up), with an option to simultaneously close sell positions; a sell signal is triggered when the value changes from 1 to 2 (trend shifting from up to down), with an option to simultaneously close buy positions. Exit conditions are twofold: counter-signal exits where an opposing signal closes existing positions, and fixed stop loss/take profit exits (default SL 1000 points, TP 2000 points). Position sizing supports five margin modes: fixed lot, free margin-based, balance-based, loss-adjusted free margin, and loss-adjusted balance. Money management is implemented via the MarginMode enum for flexible lot calculation, defaulting to a fixed 0.1 lot. The EA also implements a new bar detection mechanism, executing signal logic only on new bars or when recalculation is needed, effectively reducing redundant computations on every tick.

Strengths

  • New bar detection mechanism avoids per-tick redundant computation, reducing resource usage and false signals
  • Independent toggle switches for buy/sell open/close provide flexible control over each trading direction
  • Five money management modes accommodate traders with different risk preferences
  • Configurable indicator parameters allow optimization for different market conditions
  • CopyBuffer failure triggers recalculation via Recount flag, improving robustness

Weaknesses

  • Default SL 1000 and TP 2000 points are excessively wide, posing significant loss risk on most instruments
  • No spread filter or volatility filter, making the EA vulnerable to slippage and false signals during low-liquidity sessions
  • No existing position check before opening new trades, potentially leading to duplicate positions in the same direction
  • Depends on iCustom call to external 'NonLagDot' indicator; if the file is missing the EA fails with a vague error message
  • SignalBar=1 uses the previous bar which may lag; SignalBar=0 uses the incomplete current bar which may generate repeated signals

Possible improvements

  • Add position existence check before opening new trades to prevent duplicate positions and over-leveraging
  • Add spread filter and trading session filter to avoid trading during low-liquidity periods
  • Adjust default SL/TP to more reasonable ranges and add ATR-based dynamic SL/TP option

Risk assessment

Overall risk: Medium

  • Default 1000-point SL is very wide, single-trade loss could exceed account tolerance
  • Lack of position check may cause duplicate same-direction positions leading to overexposure
  • No spread filter may result in unfavorable fills during high-spread periods

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management2.0
Robustness3.0
Innovation2.0
Documentation1.0
Overall2.3

Parameters

ParameterDefaultDescription
MM0.1Money management ratio or lot size, meaning per MMMode
MMModeLOTPosition sizing (free margin/balance/fixed lot, etc.)
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum slippage tolerance
BuyPosOpentrueAllow long entry
SellPosOpentrueAllow short entry
BuyPosClosetrueAllow closing buy positions on reverse signal
SellPosClosetrueAllow closing sell positions on reverse signal
InpInd_TimeframePERIOD_H1NRTR_extr indicator timeframe
PricePRICE_CLOSEIndicator applied price type
TypeMODE_SMAindicatormoving average type
Length10Indicator period length
Filter0Indicator filter parameter
Swing0Indicator swing parameter
SignalBar1Signal reference bar index

Similar Trend Following 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.