Exp_AroonSignal
This EA trades based on the custom AroonSignal indicator, entering long when an up-signal appears and short when a down-signal appears. It uses Aroon overbought/oversold levels to detect momentum shifts and manages positions with fixed stop-loss and take-profit. A historical bar scan searches backward for the last signal direction to determine close signals when no new signal is present.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | -2.44% | -2.12% | 5.87% | 145 | 43.10% | — | — | — | — | Custom indicator approximated |
| GBPUSD | +3.28% | +2.84% | 4.19% | 145 | 47.90% | — | — | — | — | Custom indicator approximated |
| USDJPY | -1.30% | -1.13% | 5.64% | 145 | 59.00% | — | — | — | — | Custom indicator approximated |
| XAUUSD | -100.00% | -100.00% | 100.00% | 57 | 56.10% | — | — | — | — | Custom indicator approximated |
On every market this backtest is identical to EA-1099, EA-1100, EA-1223, EA-12581, EA-21616. The automatic conversion almost certainly lost what makes this EA different (a custom indicator, a filter or the money management), so these results are not ranked or counted.
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 Aroon indicator detecting shifts in price momentum direction, going long when the Aroon up-signal triggers and short when the Aroon down-signal triggers. Entry conditions require the AroonSignal indicator buffer 0 (up-signal) or buffer 1 (down-signal) to produce a non-zero, non-EMPTY_VALUE value on the specified SignalBar. Exit conditions include hard stop-loss and take-profit closures, plus a historical bar scan that searches backward to find the most recent opposite signal to trigger position closes when both opening and closing permissions are enabled. Position sizing is controlled by the MM parameter, where negative values represent fixed lot sizes and positive values represent deposit-share-based lot calculation. Money management relies on the BuyPositionOpen and SellPositionOpen functions from TradeAlgorithms.mqh, supporting both account-balance percentage and fixed lot modes. The strategy defaults to H4 timeframe with a 9-period Aroon parameter, classifying it as a medium-to-long-term momentum-following system.
Strengths
- Clear strategy logic based on the well-established Aroon momentum indicator with precisely defined signals
- Full buy/sell permission switches provide high flexibility, allowing independent disabling of buy or sell operations
- Hard stop-loss and take-profit protection ensures risk has defined boundaries
- IsNewBar check prevents repeated trading within the same bar, reducing overtrading risk
- Recount mechanism ensures data copy failures trigger retries, improving robustness
Weaknesses
- The historical bar scan for closing positions may iterate over many bars, being inefficient and potentially producing incorrect close signals during long no-signal periods
- No spread filter mechanism, which may cause slippage losses in low-liquidity markets with high spreads
- Depends on external TradeAlgorithms.mqh library with invisible core trading logic, making auditing and verification difficult
- Default stop-loss of 1000 points and take-profit of 2000 points are excessively large and may be unsuitable for certain instruments
- No multi-timeframe confirmation or additional filter conditions, making single-indicator signals prone to false signals
Possible improvements
- Add spread filter and volatility filter (e.g., ATR) to avoid opening positions in high-spread or low-volatility environments
- Set a maximum lookback bar limit for the historical closing signal search to prevent infinite iteration and unreasonable close signals
- Add multi-timeframe confirmation or additional indicator filters (e.g., trend line, volume) to reduce false signal rate
Risk assessment
Overall risk: Medium
- Historical lookback closing logic may produce stale close signals inconsistent with current market conditions
- Core trading logic is encapsulated in an external library that cannot be audited, potentially hiding risks
- Default stop-loss and take-profit point values are extremely large, which may cause excessive single-trade losses on low-volatility instruments
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | -0.1 | Deposit percentage or fixed lot; negative value = lot size |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum slippage deviation in points |
BuyPosOpen | true | Allow buy position opening |
SellPosOpen | true | Allow sell position opening |
BuyPosClose | true | Allow closing long positions |
SellPosClose | true | Allow closing short positions |
InpInd_Timeframe | PERIOD_H4 | AroonSignal indicator timeframe |
HighLevel | 85 | Overbought level |
LowLevel | 15 | Oversold level |
AroonPeriod | 9 | Aroon indicator period |
SignalBar | 1 | Bar index for entry signal |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.