Join waitlist
Strategies / Mean reversion / EMA Deviation Mean Reversion

EMA Deviation Mean Reversion

Buys when the close is 2.5% or more below its 50-period exponential moving average, and sells when it is 2.5% or more above that average. A signal fires once per change in trend state, and the strategy holds one contract, long only.

Mean reversionLong onlySwingSilverDaily
n/aProfit factor
15,021Net profit USD
72.19%Win rate
151Trades
-11,319Max drawdown
99.47Avg trade

Best run of 48. Silver, Daily, spread 2, from run sweeps:2026-10-04-SILVER-D-opt.tsv:22.

Entry rules, long

Exit rules

  1. The close is at least 2.5% above the 50-period EMA, signaling once per change in trend state, and closes the long

Test conditions

PeriodUp to 2026-10-04
InstrumentSilver, Daily
Spread2 points
Starting capital1,000,000
CostsSpread only. Commissions and overnight financing are not included.
BarsUp to 200,000 bars, fewer where the instrument has less history
Last tested2026-10-04

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
SilverBest runDailyn/a 15172.1915,021 USD-11,319
USD/JPY30 minn/a 2100.00653,160 USD-260,990
USD/JPY15 minn/a 1100.00561,900 USD-245,400
USD/JPY1 hourn/a 450.00389,290 USD-312,340
EUR/USD30 minn/a 966.67107,762 USD-50,920
Nikkei 22510 minn/a 875.0036,655 USD-12,992
Nikkei 22515 minn/a 1656.2535,481 USD-12,049
Nikkei 2254 hoursn/a 6473.4433,736 USD-8,960
Dow JonesDailyn/a 10477.8831,909 EUR-8,975
Nikkei 2251 hourn/a 4372.0931,873 USD-11,603
EUR/USD4 hoursn/a 1145.4530,858 USD-28,220
Nikkei 22530 minn/a 2864.2922,681 USD-12,720
DAX 40Dailyn/a 12576.0014,958 EUR-4,743
Nasdaq 10030 minn/a 3177.4214,899 EUR-5,831
DAX 401 hourn/a 6165.5714,837 EUR-5,810
Nasdaq 1001 hourn/a 5966.1013,740 EUR-6,758
Nasdaq 1004 hoursn/a 8265.8513,230 EUR-5,672
DAX 404 hoursn/a 8175.3113,032 EUR-5,779
DAX 4030 minn/a 2466.6712,527 EUR-4,984
Nasdaq 100Dailyn/a 9875.5111,831 EUR-4,499
Nasdaq 10015 minn/a 2080.0010,505 EUR-5,831
Nasdaq 1005 minn/a 4100.0010,120 EUR-5,875
US Crude Oil10 minn/a 5164.718,258 EUR-3,407
FTSE 100Dailyn/a 7677.637,963 EUR-2,804
Nasdaq 10010 minn/a 875.007,438 EUR-5,844
US Crude Oil15 minn/a 11063.647,214 EUR-5,219
Brent Crude10 minn/a 3756.765,620 EUR-4,454
Nasdaq 1003 minn/a 250.005,050 EUR-2,666
DAX 4010 minn/a 366.675,028 EUR-4,419
FTSE 1004 hoursn/a 5078.004,780 EUR-2,986
Brent Crude3 minn/a 1764.714,731 EUR-2,851
S&P 5004 hoursn/a 5271.154,538 EUR-1,298
FTSE 1001 hourn/a 3767.574,195 EUR-2,671
Brent Crude5 minn/a 2166.673,828 EUR-3,040
S&P 50030 minn/a 1877.783,736 EUR-1,319
Gold30 minn/a 2065.003,686 EUR-1,097
S&P 500Dailyn/a 10171.293,468 EUR-953
Brent Crude2 minn/a 1566.673,435 EUR-3,010
Dow Jones5 minn/a 2100.003,173 EUR-1,058
S&P 5001 hourn/a 4269.052,840 EUR-1,317
GBP/USD10 minn/a 1100.002,839 USD-1,328
Gold1 hourn/a 4062.502,350 EUR-1,109
S&P 5005 minn/a 3100.002,060 EUR-572
Gold15 minn/a 757.142,005 EUR-1,105
Dow Jones3 minn/a 1100.001,928 EUR-918
FTSE 10015 minn/a 1070.001,804 EUR-1,308
Gold4 hoursn/a 5671.431,127 EUR-823
S&P 5003 minn/a 1100.00282 EUR-147

Charts

Results by run

Top 10 of 48 runs. The full list is in the table above.

Net profitMax drawdown

The code

ProBuilder code, as tested

// ==============================================================
// EMA Deviation Mean Reversion
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long only
// Timeframe tested: Daily
// ==============================================================

DEFPARAM CumulateOrders = false

ONCE trend = 0

emaval = ExponentialAverage[50](close)
diff = (close / emaval * 100) - 100
longsig = 0
exitsig = 0

21 more lines: the entry and exit rules.

Setup

How to load it

  1. Copy the code with the copy button on the code block.
  2. In ProRealTime, open a chart of the instrument and timeframe you want to test, then open ProOrder > New trading system and choose "Create with programming".
  3. Paste the code, give the system a name and save it.
  4. Click "Backtest", set your own spread and position size, and run it before you consider trading it live.

Indicators used

EMA
Read this firstKnown weaknesses3 points
  • No profit factor is available, because only sweep results exist for this strategy.
  • The maximum drawdown of 11,318 USD is large next to the net profit of 15,020 USD.
  • The code sets no stop loss, so a losing trade stays open until an exit signal arrives.

Questions

About this strategy

Can I run EMA Deviation Mean Reversion in ProOrder?

Yes. The code is ProBuilder and runs as an automated ProOrder system. Backtest it on your own account with your own spread and position size before trading it live.

Which markets was it tested on?

It was tested on 48 market and timeframe combinations. The best run by trade count was Silver, Daily, with 151 trades.

How large was the drawdown?

The best run had a maximum drawdown of 11,318 USD at the tested position size, against a net result of 15,020 USD.

Does it trade long, short or both?

It only takes long trades.

Related

Strategies like this one

Reversal Pattern With Chaikin Volatility

Uses the same indicator.

2.26 PF · 6,872 trades

SMA Crossover With RSI Exit

Best run on the same market, Silver.

2.13 PF · 8,999 trades

ATR Band

Also a mean reversion strategy.

10.31 PF · 53 trades

Get the full rules, the complete code and the ProRealAlgos portfolio as a member.

The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.

Past backtest results do not guarantee future results. This is not financial advice. Curated and maintained by ProRealAlgos. ProRealTime™ is a trademark of ProRealTime SAS. prorealalgos.comStatsDocs