EA-15950 · Momentum

Exp_AroonOscillatorSignAlert

This EA trades based on the Aroon Oscillator indicator with alert signals. It opens buy positions on upward crossover signals and sell positions on downward crossover signals, with configurable stop-loss, take-profit, and money management options.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsAroon Oscillator, ATR
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

This EA uses the Aroon Oscillator indicator (custom AroonOscillatorSignAlert indicator) as its core signal source. Entry conditions: when the indicator's upper buffer (buffer 1) produces a non-zero, non-empty value on the configured signal bar, it triggers a buy open and sell close signal; when the lower buffer (buffer 0) produces a valid signal, it triggers a sell open and buy close signal. Exit conditions rely on fixed stop-loss and take-profit settings, and also support reverse-signal closing — when both buy and sell open/close are enabled, the EA retrospects historical bars to find opposing signals to determine whether to close positions. Position sizing supports five modes via the MM parameter and MMMode enumeration: by free margin percentage, by balance percentage, by net free margin percentage, by net balance percentage, and fixed lot size. Money management uses fixed stop-loss and take-profit in points with no dynamic adjustment mechanism, lacking the ability to adapt stops and targets based on market volatility. The overall strategy is a typical momentum-following system relying on the Aroon Oscillator crossing threshold levels to detect trend momentum changes.

Strengths

  • Clear strategy logic based on the Aroon Oscillator momentum signals with solid theoretical foundation
  • Five position sizing modes offer good flexibility to suit different risk preferences
  • Independent buy/sell open/close switches enable long-only, short-only, or bidirectional trading
  • SignalBar parameter controls signal confirmation timing, avoiding false signals from uncompleted bars
  • New bar detection mechanism (CIsNewBar) prevents duplicate entries on the same bar

Weaknesses

  • ATR_Period is not declared as an input parameter, making it non-optimizable in the strategy tester — a code defect
  • Fixed stop-loss and take-profit in points ignores market volatility changes (e.g., ATR-based dynamic stops), leading to inconsistent performance across varying volatility regimes
  • The historical bar loop for finding reverse closing signals (lines 142-163) can be inefficient with large bar counts, posing potential performance issues
  • No spread filter mechanism — trades open even with wide spreads, potentially resulting in excessive entry costs
  • No position count check or maximum position limit, which may lead to excessive positions from dense signal clusters
  • Comments are garbled (encoding issue), severely harming code readability and maintainability

Possible improvements

  • Declare ATR_Period as an input parameter for strategy tester optimization, and fix file encoding to restore Chinese comments
  • Add ATR-based dynamic stop-loss/take-profit options, a spread filter, and maximum position limits to improve risk management adaptability

Risk assessment

Overall risk: Medium

  • Fixed stop-loss/take-profit doesn't adapt to volatility changes — stops too wide in low volatility, targets hard to reach in high volatility
  • No spread filter — entries execute even when spreads widen during volatile periods
  • No maximum position limit — dense signals may accumulate excessive exposure
  • Historical bar loop has no upper bound protection, potentially iterating too many bars in extreme cases

Evaluation scores

Code quality2.0
Strategy logic3.0
Risk management3.0
Robustness2.0
Innovation2.0
Documentation1.0
Overall2.2

Parameters

ParameterDefaultDescription
MM0.1Money management ratio, controls trade lot size
MMModeLOTLot calculation mode: Fixed lot or margin-based ratio
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum allowed slippage
BuyPosOpentrueAllow buy to open
SellPosOpentrueSell position opening signal mode
BuyPosClosetrueAllow buy to close (close long)
SellPosClosetrueSell position closing signal mode
InpInd_TimeframePERIOD_H4CandlesticksBW indicator timeframe
ATR_Period14ATR period (Note: not declared as input, hardcoded)
AroonPeriod9Aroon oscillator calculation period
UpLevel+50Upper threshold level
DnLevel-50Lower threshold level
SoundONtrueEnable soundalert
NumberofAlerts2Maximum number of alerts
EMailONfalseEnable emailnotification
PushONfalseEnable pushnotification
SignalBar1Signal bar index (0=current, 1=last closed 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.