EA-14965 · Momentum

Exp_MAOscillatorHist

This EA trades based on the MAOscillatorHist custom indicator, which is a moving average oscillator histogram. It opens buy positions when the histogram turns upward from negative territory and sell positions when it turns downward from positive territory, with configurable position closing on opposite signals.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsMA Oscillator Histogram, Custom Moving Average (SMA/EMA/SMMA/LWMA/JJMA/JurX/ParMA/T3/VIDYA/AMA)
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 directional changes in a dual moving average oscillator histogram to capture momentum shifts. Entry conditions: buy when the histogram rises (Ind[2]>Ind[1]) and the prior value is negative (Ind[1]<Ind[0]); sell when the histogram falls (Ind[2]<Ind[1]) and the prior value is positive (Ind[1]>Ind[0]). Exit conditions: close positions on opposite signals — close longs when the histogram declines and close shorts when the histogram rises, with fixed stop-loss and take-profit levels. Position sizing supports multiple margin modes including free margin-based, balance-based, loss-adjusted margin/balance, or fixed lot size. The oscillator uses two configurable smoothing methods (supporting SMA/EMA/SMMA/LWMA/JJMA/JurX/ParMA/T3/VIDYA/AMA) and multiple applied price types, offering high flexibility. The strategy calculates signals only on new bar formation to avoid repeated trading within the same bar, with signal delay controlled by the SignalBar parameter.

Strengths

  • Supports 10 smoothing algorithms and 9 applied price types, offering extremely high strategy flexibility
  • New bar detection mechanism prevents repeated position opening within the same bar, reducing overtrading
  • Multi-mode money management (fixed lot, balance ratio, etc.) adapts to different risk preferences
  • Buy/sell open and close can be independently toggled, convenient for unidirectional trading or signal-only mode
  • Fixed stop-loss and take-profit settings ensure controllable risk per trade

Weaknesses

  • Depends on custom indicator file MAOscillatorHist; EA cannot run without it
  • No spread filter mechanism; high spread environments may cause excessive slippage or false signals
  • Stop-loss 1000 points / take-profit 2000 points are excessively large for some instruments and lack dynamic adjustment
  • No check for existing positions in the same direction, potentially causing duplicate position opening
  • Indicator handle creation failure only prints a log message without detailed error diagnostics

Possible improvements

  • Add spread filter and maximum position check to avoid high-spread entries and duplicate positions
  • Implement dynamic stop-loss/take-profit (e.g., ATR multiples) instead of fixed points to adapt to different instrument volatilities
  • Add indicator data validity checks to ensure CopyBuffer return values are properly handled for all edge cases

Risk assessment

Overall risk: Medium

  • No check for existing same-direction positions; duplicate openings may cause excessive risk exposure
  • Fixed stop-loss/take-profit points don't suit all instruments — too wide for low-volatility, too narrow for high-volatility pairs
  • No spread filter; orders may fill at unfavorable prices during low liquidity or news events

Evaluation scores

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

Parameters

ParameterDefaultDescription
MM0.1Margin usage ratio for lot size calculation
MMModeLOTPosition sizing mode (free margin/balance/net loss/fixed lots)
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum allowed slippage in points
BuyPosOpentrueAllow buy positions
SellPosOpentrueAllow sell positions
BuyPosClosetrueAllow close buy positions
SellPosClosetrueAllow close sell positions
InpInd_TimeframePERIOD_H4Indicator calculation timeframe
MA_Method1MODE_SMA_fastMAsmoothing method
Length113Fast MA period
Phase115Fast MA phase parameter
MA_Method2MODE_SMA_slowMAsmoothing method
Length224Slow MA period
Phase215Slow MA phase parameter
IPCPRICE_CLOSEPrice type applied to calculation
iPeriod0Oscillator extra period parameter
SignalBar1Bar index for signal (0=current bar)

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.