Exp_trend_arrows
This EA trades based on signals from the custom 'trend_arrows' indicator, opening buy positions on upward trend arrows and sell positions on downward trend arrows. It includes configurable money management modes, stop loss/take profit, and options to independently control buy/sell opening and closing. The strategy uses a new bar check to avoid redundant signal processing on the specified timeframe.
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
The core strategy of this EA is a trend-following approach based on the custom trend_arrows indicator. Entry conditions are triggered when indicator buffers 2 and 3 produce non-empty values on the specified signal bar, generating buy and sell signals respectively. Exit conditions include configurable stop loss and take profit levels, plus reverse-signal closing where indicator buffers 0 and 1 can trigger closure of opposing positions. Position sizing supports multiple modes through the MM parameter and MMMode enumeration, including fixed lot, balance-proportional, and free-margin-proportional sizing. The EA uses the IsNewBar mechanism to ensure signals are processed only once per bar, preventing redundant trades. The strategy also implements an additional reverse-signal closing check using supplementary indicator buffers, actively closing positions when an opposite trend arrow appears, which enhances risk control capability.
Strengths
- Clear strategy logic using the trend_arrows indicator as a signal source with well-defined entry conditions
- Supports multiple money management modes for flexible adaptation to different trading needs
- Reverse-signal closing capability allows timely position exit when trends reverse
- Buy/sell open and close can be independently controlled, facilitating strategy optimization and testing
- New bar check mechanism prevents redundant signal processing and overtrading
Weaknesses
- Depends on external custom trend_arrows indicator whose logic is opaque and cannot be independently evaluated
- Default stop loss of 1000 points and take profit of 2000 points are large and may not suit all instruments
- No spread filter present, which could lead to unfavorable entries in high-spread environments
- No explicit position state check in main logic, relying on external library functions which may hide issues
- Code comments are garbled due to encoding issues, severely hurting readability and maintainability
Possible improvements
- Add a spread filter to avoid entering positions when the spread is excessively wide
- Add explicit position checking logic before opening to confirm no same-direction positions exist, preventing duplicate entries
Risk assessment
Overall risk: Medium
- Reliance on external indicator library with opaque logic creates risk of unknown signal reliability
- Large default SL/TP values (1000/2000 points) may cause oversized single-trade losses on low-volatility instruments
- Lack of spread filter and explicit position checking introduces risk of unfavorable or duplicate entries
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management parameter, lots or ratio |
MMMode | LOT | Margin calculation mode (fixed lots, balance percentage, etc.) |
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 | Allow sell to open |
BuyPosClose | true | Close long positions on reverse signal |
SellPosClose | true | Allow closing short positions on signal reversal |
InpInd_Timeframe | PERIOD_H1 | trend_arrows indicator timeframe |
iPeriod | 15 | trend_arrows indicator period |
iFullPeriods | 1 | trend_arrows indicator full period count |
SignalBar | 1 | Signal bar index (0 for current bar) |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.