Exp_PercentageCrossover
This EA trades based on a percentage crossover strategy, comparing the current price's percentage position relative to a moving average or reference level. It generates buy signals when the price crosses above a defined percentage threshold and sell signals when crossing below, implementing a systematic trend-following approach with configurable parameters.
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 | +2.51% | +2.18% | 2.10% | 70 | 54.30% | 0.78 | 1.20 | 4 | +$3.59 | Reliable |
| GBPUSD | -0.03% | -0.02% | 3.71% | 78 | 51.30% | 0.01 | -0.01 | 6 | −$0.04 | Reliable |
| USDJPY | -0.08% | -0.07% | 4.63% | 79 | 49.40% | 0.00 | -0.02 | 5 | −$0.09 | Reliable |
| XAUUSD | -51.32% | -44.83% | 86.75% | 74 | 54.10% | 0.34 | -0.59 | 5 | −$69.35 | Reliable |
Profitable on 1 of 4 markets with reliable results.
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.
Against the other Trend Following EAs with a reliable result on the same market: EURUSD: better than 74% of 95 · GBPUSD: better than 46% of 95 · USDJPY: better than 54% of 95 · XAUUSD: better than 22% of 96
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 54% | +2.31% 2026-04 | -0.73% 2026-05 |
| GBPUSD | 62% | +1.66% 2026-04 | -2.08% 2026-10 |
| USDJPY | 38% | +2.23% 2026-09 | -2.45% 2026-03 |
| XAUUSD | 46% | +217.01% 2026-04 | -72.12% 2026-02 |
From the backtest equity curve, sampled about every two days; only reliable results.
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 based on the percentage deviation crossover between price and a moving average, going long when the percentage deviation crosses from negative to positive and short when it crosses from positive to negative. Entry conditions rely on the percentage indicator line crossing the zero axis or a configurable threshold, confirming a trend direction change before opening positions. Exit conditions include reverse crossover signals, fixed stop-loss and take-profit levels, or trailing stop mechanisms. Position sizing uses either fixed lot sizes or dynamic lot calculation based on account equity percentage. Money management allows setting maximum open positions and risk percentage limits, but lacks volatility-adaptive position sizing. The overall strategy logic is clear and follows a typical trend-following system, though it may generate frequent false signals in ranging markets.
Strengths
- Clear and intuitive strategy logic where percentage deviation directly reflects the relative relationship between price and moving average
- Highly configurable parameters allowing users to flexibly adjust thresholds and MA periods for different instruments and timeframes
- Includes stop-loss, take-profit, and trailing stop mechanisms providing fundamental risk control capabilities
Weaknesses
- Trend-following strategy prone to frequent false signals and consecutive losses in ranging or choppy markets
- Lacks market regime detection mechanism to automatically distinguish between trending and ranging conditions
- Position sizing is relatively simplistic without volatility-adaptive lot adjustment based on market conditions
Possible improvements
- Add a market regime filter (e.g., ADX indicator) to reduce trading frequency or pause trading during ranging markets
- Introduce ATR-based dynamic stop-loss, take-profit, and position sizing for volatility-adaptive risk management
Risk assessment
Overall risk: Medium
- Trend-following strategy may trigger consecutive stop-losses in ranging markets leading to significant drawdowns
- Fixed stop-loss in pips does not account for volatility differences across instruments, potentially resulting in stops that are too tight or too loose
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
LotSize | 0.1 | Fixed trading lot size |
MAPeriod | 14 | Moving average period |
PercentageThreshold | 0.5 | Percentage crossover threshold |
StopLoss | 50 | Stop loss in points |
TakeProfit | 100 | Take profit in points |
TrailingStop | 30 | Trailing stop in points |
MaxPositions | 1 | Maximum positions |
MagicNumber | 12345 | EA magic number for order identification |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.