EA-1317 · Trend Following

Exp_MovingAverage_FN

This EA trades based on the MovingAverage_FN custom indicator, which applies a configurable Fourier noise filter to a smoothed moving average. It opens buy positions when the filtered MA turns upward and sell positions when it turns downward, with optional position closing on reverse signals. The strategy is a trend-following system using multiple smoothing methods and a Fourier-based noise reduction filter.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskMedium
Blow-up riskLow
Rating★★★☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsMovingAverage_FN (Fourier-filtered MA), JJMA, JurX, ParMA, T3, VIDYA, AMA
AuthorCopyright © 2012, Nikolay Kositsin

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 based on a Fourier noise-filtered moving average. Entry conditions are: open a long position when the indicator values show an uptrend at the SignalBar (Value[0]>Value[1] and Value[1]<Value[2]), and open a short position when the values show a downtrend (Value[0]<Value[1] and Value[1]>Value[2]). Exit conditions include StopLoss (default 1000 points) and TakeProfit (default 2000 points), plus optional closing on reverse signals controlled by BuyPosClose and SellPosClose parameters. Position sizing is managed through the MM parameter, where negative values represent fixed lot sizes and positive values represent a share of the deposit per deal. The money management uses either percentage-based or fixed lot modes, but lacks dynamic position adjustment mechanisms like scaling in or out. The strategy leverages the CXMA class supporting up to 10 smoothing methods (SMA, EMA, SMMA, LWMA, JJMA, JurX, ParMA, T3, VIDYA, AMA) and selects Fourier filter orders from 4 to 60 via the filter_mode enumeration, providing strong noise reduction capability.

Strengths

  • Fourier noise filter effectively reduces market noise and minimizes false signals
  • Supports 10 smoothing methods and multiple price types, offering high flexibility
  • Independent buy/sell open and close permission controls allow fine-grained strategy management

Weaknesses

  • Default StopLoss of 1000 points and TakeProfit of 2000 points are large, potentially exposing to significant drawdowns during volatile markets
  • Lacks scaling in/out or trailing stop mechanisms, making money management relatively simplistic
  • Depends on iCustom call to external MovingAverage_FN indicator, increasing deployment complexity and dependency

Possible improvements

  • Add trailing stop functionality to lock in floating profits and reduce drawdown risk
  • Add spread filter and trading session restrictions to avoid high-cost and low-liquidity periods

Risk assessment

Overall risk: Medium

  • Fixed stop loss in points does not adapt to volatility differences across instruments, potentially being too wide for low-volatility assets
  • When MM is negative, it is used directly as lot size without minimum/maximum lot validation
  • No spread filter mechanism, so positions may still be opened during high-spread conditions

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management2.0
Robustness3.0
Innovation4.0
Documentation2.0
Overall2.8

Parameters

ParameterDefaultDescription
MM-0.1Deposit percentage or fixed lot; negative value = lot size
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum slippage deviation in points
BuyPosOpentrueAllow buy position opening
SellPosOpentrueAllow sell position opening
BuyPosClosetrueAllow closing long positions
SellPosClosetrueAllow closing short positions
InpInd_TimeframePERIOD_H4AroonSignal indicator timeframe
FilterNumberN44Fourier filter order (4-60)
XMA_MethodMODE_JJMASmoothing method (SMA/EMA/SMMA/LWMA/JJMA/JurX/ParMA/T3/VIDYA/AMA)
XLength12Smoothing depth (period)
XPhase15Smoothing param; JJMA: -100 to +100, VIDYA: CMO period, AMA: slow MA period
IPCPRICE_CLOSEPrice constant type (close/open/high/low/median/typical/weighted etc.)
SignalBar1Bar index for entry signal

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.