EA-15545 · Trend Following

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

RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesH1, H4, D1
Indicatorstrend_arrows (custom)
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 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

Code quality2.0
Strategy logic3.0
Risk management3.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_H1trend_arrows indicator timeframe
iPeriod15trend_arrows indicator period
iFullPeriods1trend_arrows indicator full period count
SignalBar1Signal bar index (0 for current bar)

Similar Trend Following 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.