EA-1097 · Trend Following

Exp_Arrows_Curves

This EA trades based on signals from the custom Arrows_Curves indicator, opening buy positions on buy arrows and sell positions on sell arrows. It supports configurable money management, stop loss/take profit, and separate permissions for entry and exit. The strategy also searches historical bars for stop signals to close existing positions when no direct close signal is generated.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskMedium
Blow-up riskLow
Rating★★★☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsArrows_Curves (Custom)
AuthorCopyright © 2011, Nikolay Kositsin

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 trend-following based on arrow signals generated by the custom Arrows_Curves indicator. Entry conditions: a buy position opens when indicator buffer 1 (Buy buffer) produces a non-empty, non-zero value on the specified signal bar, and a sell position opens when buffer 0 (Sell buffer) produces such a value. Exit conditions are twofold: first, opposite signals trigger position closes (buy signal closes shorts, sell signal closes longs); second, the EA iterates through historical bars checking stop buffers (buffer 2 for SellStop, buffer 3 for BuyStop) to find stop signals for closing positions when no direct close signal is present. Position sizing is controlled by the MM parameter, where negative values represent fixed lot sizes and positive values represent a share of the deposit per deal. Money management uses fixed stop loss and take profit in points, with a default SL of 1000 points and TP of 2000 points, yielding a 2:1 reward-to-risk ratio. The strategy includes a new bar detection mechanism to prevent repeated trades within the same bar and a deviation parameter to control slippage tolerance.

Strengths

  • Reasonable reward-to-risk ratio of 2:1, supporting long-term positive expectancy
  • Independent permission controls for buy/sell opening and closing provide high flexibility
  • New bar detection mechanism prevents duplicate trades within the same bar
  • Supports both deposit share and fixed lot position sizing modes
  • Configurable stop loss and take profit parameters provide clear risk control

Weaknesses

  • Depends on the custom Arrows_Curves indicator whose internal logic is opaque, making signal quality impossible to evaluate independently
  • Historical bar iteration for stop signal search may be inefficient with large datasets, posing performance risks
  • No spread filter mechanism, which could lead to unfavorable fills in high-spread environments
  • Re-reading Buy/Sell buffers inside the stop signal search loop is logically redundant and wastes resources
  • No maximum position count limit or maximum drawdown protection mechanism

Possible improvements

  • Add spread filtering and maximum position count limits to enhance risk management capabilities
  • Optimize the stop signal search logic by avoiding redundant buffer reads inside the loop, improving both performance and code clarity

Risk assessment

Overall risk: Medium

  • Relies on external custom indicator signals whose reliability cannot be independently verified
  • Stop signal search iterates historical bars, which may cause execution delays with large datasets
  • Lacks maximum drawdown protection and maximum position limits

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management3.0
Robustness2.0
Innovation2.0
Documentation2.0
Overall2.5

Parameters

ParameterDefaultDescription
MM-0.1Deposit percentage or fixed lot, negative=lot size
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum slippage in points
BuyPosOpentrueAllow buy position opening
SellPosOpentrueAllow sell position opening
BuyPosClosetrueAllow closing long positions
SellPosClosetrueAllow closing short positions
InpInd_TimeframePERIOD_H4Indicator timeframe
SSP20Indicator linear reversal period
Channel0Channel range reduction value, 0-50
Ch_Close30Stop-loss channel reduction value (added to main channel)
relay10Historical lookback offset in bars
SignalBar1Bar index for entry signal

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.