Join waitlist
Strategies / Mean reversion / Pump Avoiding Mean Reversion

Pump Avoiding Mean Reversion

Buys when price is below the 5-bar and 12-bar EMAs, at a 12-bar closing low and at or below the lower 20-bar band. Sells when price is above both EMAs, at a 12-bar closing high and at or above the upper band.

Mean reversionLong onlyIntradayEUR/USD2 min
1.95Profit factor
264,709Net profit USD
57.40%Win rate
2,655Trades
-31,103Max drawdown
99.70Avg trade

Best run of 33. EUR/USD, 2 min, spread 1, from run pf:2026-10-05-EURUSD-2m.tsv:1.

Entry rules, long

  1. Volume is below 20 times the prior bar's 30-bar average volume.
  2. The close is below the 5-bar EMA and below the 12-bar EMA.
  3. The close equals the lowest close of the last 12 bars.

Exit rules

  1. The close equals or exceeds the highest close of the last 12 bars.
  2. The close is at or above the upper 20-bar Bollinger band of typical price.
  3. A 10% profit target and 5% stop loss are set on entry.

Test conditions

PeriodUp to 2026-10-05
InstrumentEUR/USD, 2 minutes
Spread1 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-05

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
EUR/USDBest run2 min1.95 2,65557.40264,709 USD-31,103
EUR/USD3 min1.86 2,64860.01181,259 USD-21,419
EUR/USD5 min1.62 2,63161.61123,929 USD-21,413
EUR/USD10 min1.37 2,67163.8386,146 USD-11,842
USD/JPY4 hoursn/a 48467.56407,370 USD-233,480
USD/JPYDailyn/a 6870.59270,350 USD-232,520
EUR/USD4 hoursn/a 62463.9443,283 USD-28,314
Nikkei 2251 hourn/a 83165.4625,833 USD-10,890
Nikkei 225Dailyn/a 6357.1421,182 USD-8,437
Dow JonesDailyn/a 4165.8519,918 EUR-7,166
Dow Jones4 hoursn/a 15571.6119,516 EUR-7,683
Nikkei 22530 minn/a 1,65865.0218,077 USD-14,698
EUR/USD15 minn/a 2,76664.1715,229 USD-14,415
DAX 40Dailyn/a 6465.6215,077 EUR-2,885
Nasdaq 1001 hourn/a 94469.8113,199 EUR-7,950
Nasdaq 100Dailyn/a 5860.3412,676 EUR-4,114
Nasdaq 1004 hoursn/a 24372.0212,564 EUR-4,281
DAX 404 hoursn/a 25469.6911,745 EUR-4,217
Dow Jones10 minn/a 2,67467.3910,697 EUR-7,327
Dow Jones1 hourn/a 61067.389,742 EUR-8,415
Dow Jones30 minn/a 1,15267.978,732 EUR-7,927
Brent Crude30 minn/a 1,75766.368,712 EUR-3,146
DAX 401 hourn/a 87065.407,334 EUR-3,889
Dow Jones15 minn/a 2,19868.617,147 EUR-6,551
FTSE 1001 hourn/a 91770.455,674 EUR-2,202
S&P 5004 hoursn/a 23373.393,485 EUR-1,132
S&P 500Dailyn/a 5565.452,809 EUR-877
FTSE 10015 minn/a 2,68467.322,670 EUR-2,610
FTSE 1004 hoursn/a 23066.092,626 EUR-1,908
S&P 5001 hourn/a 90268.182,444 EUR-1,240
FTSE 10010 minn/a 2,65267.012,341 EUR-2,032
S&P 50030 minn/a 1,69867.791,809 EUR-1,201
GoldDailyn/a 8162.96823 EUR-671

Charts

Results by run

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

Above 1.0 made money, below 1.0 lost money.

The code

ProBuilder code, as tested

// ==============================================================
// Pump Avoiding Mean Reversion
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long only
// Timeframe tested: 2 minutes
// ==============================================================

DEFPARAM CumulateOrders = false

emashort = ExponentialAverage[5](close)
emamed = ExponentialAverage[12](close)
tp = (high + low + close) / 3
mid = Average[20](tp)
sd = STD[20](tp) * SQRT(20 / 19)
bbup = mid + 2 * sd
bblow = mid - 2 * sd
lowwin = Lowest[12](close)
highwin = Highest[12](close)
volavg = Average[30](volume)

14 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

EMABollinger BandsVolume
Longer historyRe-run on up to 1,000,000 barsEUR/USD · 2 min · older data -69,562.00 USD

On the long run with 997,000 bars the net result was 195,147 USD, against 264,709 USD on the standard 200,000-bar run. The older data alone gave -69,562 USD.

EUR/USD · 2 min

Bars available997,000
Net, standard 200,000-bar run264,709.00 USD
Net, long run195,147.00 USD
Net on the older data alone-69,562.00 USD
Read this firstKnown weaknesses2 points
  • On the older part of the 1,000,000-bar history it lost -69,562 USD.
  • Results include the spread only. Commissions and overnight financing are not included.

Questions

About this strategy

Can I run Pump Avoiding 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 33 market and timeframe combinations. The best run was EUR/USD, 2 minutes, with a profit factor of 1.95 over 2,655 trades.

How large was the drawdown?

The best run had a maximum drawdown of 31,103 USD at the tested position size, against a net result of 264,709 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

Slow MACD Slope

Best run on the same market, EUR/USD.

6.80 PF · 7,305 trades

Overnight Dip

Also a mean reversion strategy.

1.95 PF · 219 trades

Put your name on the ProRealAlgos waitlist to trade a tested portfolio instead of single strategies.

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