EA-11372 · Trend Following

Exp_ExchangePrice

This EA trades based on the custom ExchangePrice indicator, generating buy signals when the indicator line crosses above the signal line and sell signals when it crosses below. It uses a new-bar check to avoid repeated entries on the same bar, and manages positions with configurable Stop Loss, Take Profit, and multiple money management modes including lot-based and margin-based sizing.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskMedium
Blow-up riskLow
Rating★★★☆☆
TypeTrading EA
TimeframesH4, H8, D1
IndicatorsExchangePrice (Custom)
AuthorCopyright © 2014, 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 core strategy of this EA is based on the crossover of two lines (main line Ind and signal line Sign) from the custom ExchangePrice indicator to determine trend direction. Entry conditions: when Ind[1]>Sign[1] (main line above signal line on the previous bar) and Ind[0]<=Sign[0] (main line below or equal on the bar before that), an uptrend is confirmed and a buy position is opened; conversely, when Ind[1]<Sign[1] and Ind[0]>=Sign[0], a downtrend is confirmed and a sell position is opened. Exit conditions include: closing long positions when a downtrend signal appears, closing short positions when an uptrend signal appears, with StopLoss and TakeProfit applied to every trade for risk control. Position sizing supports five modes: based on free margin, based on balance, based on free margin after losses, based on balance after losses, and fixed lot size. The EA uses the IsNewBar mechanism to ensure signals are calculated only once per bar cycle, avoiding repeated trades, and employs a Recount flag to re-fetch data when CopyBuffer fails.

Strengths

  • Clear strategy logic based on indicator crossover, a classic and reliable trend-following approach
  • Five position sizing modes offer high flexibility to accommodate different risk preferences
  • New-bar check mechanism prevents repeated entries on the same bar, reducing overtrading
  • Complete StopLoss and TakeProfit parameters ensure risk control on every trade
  • Buy/sell open and close can be independently toggled, allowing flexible configuration

Weaknesses

  • Depends on a custom ExchangePrice indicator whose internal logic is opaque and unverifiable
  • StopLoss of 1000 points and TakeProfit of 2000 points are very wide, potentially leading to significant single-trade losses
  • No trailing stop mechanism means profitable positions cannot lock in floating gains
  • No spread filter, potentially allowing unfavorable entries in high-spread environments
  • Signal judgment relies on only two bars of crossover data, lacking multi-timeframe confirmation or filters, prone to false signals

Possible improvements

  • Add a trailing stop feature to gradually lock in profits as price moves favorably
  • Implement multi-timeframe confirmation, such as a higher-timeframe trend filter, to reduce false signals
  • Add spread and volatility filters to avoid entering trades under unfavorable market conditions

Risk assessment

Overall risk: Medium

  • StopLoss of 1000 points is very wide, potentially causing a single trade loss to represent a large portion of the account
  • No spread filter may result in additional slippage losses in low-liquidity markets
  • Indicator logic is opaque, making it impossible to evaluate signal quality and reliability

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management3.0
Robustness3.0
Innovation2.0
Documentation1.0
Overall2.5

Parameters

ParameterDefaultDescription
MM0.1Money management parameter for lot calculation
MMModeLOTLot mode: free margin/balance/margin minus loss/balance minus loss/fixed lots
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Maximum allowed slippage in points
BuyPosOpentrueAllow buy position opening
SellPosOpentrueAllow sell position opening
BuyPosClosetrueAllow buy position closing (close longs)
SellPosClosetrueAllow sell position closing (close shorts)
InpInd_TimeframePERIOD_H8Timeframe for indicator calculation
countBarsS96Number of bars for short-term calculation
countBarsL288Number of bars for long-term calculation
SignalBar1Bar index for retrieving signal data

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.