EA-15336 · Momentum

Exp_AroonHornSign

This EA trades based on signals from the custom AroonHornSign indicator, opening buy positions on upward momentum signals and sell positions on downward momentum signals. It supports configurable money management modes, stop-loss/take-profit, and separate toggles for opening and closing positions on each signal direction. The strategy also performs a historical bar scan to detect close signals when both open and close permissions are enabled.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsAroon, AroonHornSign
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 the AroonHornSign custom indicator derived from the Aroon indicator, capturing trading signals from price momentum direction changes. Entry conditions: a buy signal triggers when the indicator's upper buffer (index 1) produces a non-zero, non-EMPTY_VALUE value on the specified signal bar, and a sell signal triggers similarly on the lower buffer (index 0). Exit conditions operate in two parts: the signal itself can directly trigger reverse-side position closure (e.g., an up signal triggers sell-side closure), and when both open and close permissions are enabled for buy and sell sides, the EA scans historical bars backward to find earlier opposing signals as close confirmation. Position sizing is controlled by the MM parameter, supporting five modes: percentage of balance, percentage of free margin, percentage after loss on balance/margin, or fixed lot size. Stop-loss and take-profit are set in points with large default values (SL=1000, TP=2000), indicating the strategy targets larger trend movements. The EA uses an IsNewBar mechanism to ensure signal calculation occurs only once per bar, preventing repeated trades on the same bar.

Strengths

  • Uses the Aroon momentum indicator to capture trend direction changes with clear and intuitive logic
  • Provides flexible money management modes supporting fixed lots and multiple proportional calculation methods
  • Buy and sell side open/close controls are independently configurable, adapting to different trading scenarios
  • Employs IsNewBar mechanism to limit signal calculation to once per bar, preventing duplicate signal triggers
  • Configurable stop-loss and take-profit parameters provide a basic risk control framework

Weaknesses

  • The historical bar scanning exit logic has performance concerns, potentially iterating over a very large number of bars when Bars count is high
  • The min_rates_total calculation has a bug: line 68 overwrites the MathMax result from line 67 with 3+SignalBar, rendering the ATR/Aroon period check useless
  • Lacks spread filter and trading session filter, potentially executing trades under unfavorable conditions
  • No position check logic exists, potentially opening duplicate positions in the same direction when one already exists
  • Indicator handle failure only prints Russian error messages, hindering international debugging

Possible improvements

  • Fix the min_rates_total calculation bug by taking MathMax of MathMax(AroonPeriod,ATR_Period) and 3+SignalBar
  • Add a maximum search range limit to the historical bar scan to prevent excessive iteration and performance issues
  • Add spread filter and trading session filter to improve live trading quality
  • Add position check logic to avoid duplicate entries in the same direction

Risk assessment

Overall risk: Medium

  • The min_rates_total calculation bug may allow trading logic to execute even when indicator data is insufficient
  • Lack of position checking may cause duplicate entries in the same direction, amplifying risk exposure
  • Default stop-loss of 1000 points and take-profit of 2000 points with a large gap means single-trade losses can be significant

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management2.0
Robustness2.0
Innovation2.0
Documentation1.0
Overall2.2

Parameters

ParameterDefaultDescription
MM0.1Money management parameter, lots or ratio
MMModeLOTMargin calculation mode (fixed lots, balance percentage, etc.)
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum allowed slippage
BuyPosOpentrueAllow buy to open
SellPosOpentrueAllow sell to open
BuyPosClosetrueClose long positions on reverse signal
SellPosClosetrueAllow closing short positions on signal reversal
InpInd_TimeframePERIOD_H4trend_arrows indicator timeframe
AroonPeriod9Aroon indicator period
SignalBar1Signal bar index (0 for 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.