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
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| XAUUSD | 0.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
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management ratio, controls trade lot size |
MMMode | LOT | Lot calculation mode: Fixed lot or margin-based ratio |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage |
BuyPosOpen | true | Allow buy to open |
SellPosOpen | true | Sell position opening signal mode |
BuyPosClose | true | Allow buy to close (close long) |
SellPosClose | true | Sell position closing signal mode |
InpInd_Timeframe | PERIOD_H4 | CandlesticksBW indicator timeframe |
ATR_Period | 14 | ATR period (Note: not declared as input, hardcoded) |
AroonPeriod | 9 | Aroon oscillator calculation period |
UpLevel | +50 | Upper threshold level |
DnLevel | -50 | Lower threshold level |
SoundON | true | Enable soundalert |
NumberofAlerts | 2 | Maximum number of alerts |
EMailON | false | Enable emailnotification |
PushON | false | Enable pushnotification |
SignalBar | 1 | Signal bar index (0=current, 1=last closed bar) |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.