Join waitlist
Strategies / Mean reversion / MACD Bollinger Band RSI Reversion

MACD Bollinger Band RSI Reversion

Buys when the MACD line crosses over its 9-period signal line while RSI(14) is below 50 and the close is below its 20-period average. Exits when RSI(14) is above 70 and the close is above the upper Bollinger Band, holding one contract long only.

Mean reversionLong onlyIntradayDAX 4030 min
n/aProfit factor
7,864Net profit EUR
68.69%Win rate
757Trades
-5,190Max drawdown
10.39Avg trade

Best run of 38. DAX 40, 30 min, spread 3, from run sweeps:2026-10-04-DAX40-30m-opt.tsv:32.

Entry rules, long

  1. RSI(14) is below 50 and the close is below its 20-period simple moving average
  2. Since the latest close below the lower Bollinger Band (20 periods, 2 standard deviations), at least half the bars, minus 1, closed above the prior close

Exit rules

  1. RSI(14) is above 70 and the close is above the upper Bollinger Band (20 periods, 2 standard deviations), closing the long

Test conditions

PeriodUp to 2026-10-04
InstrumentDAX 40, 30 minutes
Spread3 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
DAX 40Best run30 minn/a 75768.697,864 EUR-5,190
USD/JPY4 hoursn/a 13665.44276,750 USD-264,180
Nikkei 2251 hourn/a 39770.7840,407 USD-10,728
Nikkei 22510 minn/a 75269.0235,688 USD-11,302
EUR/USD15 minn/a 74164.5133,469 USD-12,762
Nikkei 2254 hoursn/a 10071.0026,803 USD-8,845
Dow JonesDailyn/a 4386.0526,135 EUR-11,142
Dow Jones1 hourn/a 17974.3019,028 EUR-9,739
Nikkei 22515 minn/a 74266.3119,019 USD-10,270
Dow Jones15 minn/a 61170.8717,618 EUR-9,149
Nikkei 22530 minn/a 71565.7316,970 USD-9,886
Nasdaq 10030 minn/a 74171.1216,422 EUR-4,454
Nasdaq 100Dailyn/a 3686.1114,265 EUR-4,516
Nasdaq 1004 hoursn/a 12475.8113,766 EUR-5,672
DAX 40Dailyn/a 5174.5113,303 EUR-5,475
Dow Jones30 minn/a 31171.3811,644 EUR-10,055
Nasdaq 1001 hourn/a 51669.579,430 EUR-5,453
Dow Jones10 minn/a 71470.459,212 EUR-7,676
Nasdaq 10015 minn/a 74068.788,761 EUR-4,638
DAX 404 hoursn/a 11670.698,526 EUR-4,306
US Crude OilDailyn/a 4774.477,741 EUR-7,501
FTSE 100Dailyn/a 3686.116,213 EUR-3,289
Dow Jones2 minn/a 67068.665,729 EUR-3,982
DAX 4010 minn/a 72368.335,504 EUR-3,638
FTSE 10030 minn/a 74769.755,074 EUR-2,622
DAX 4015 minn/a 72369.435,047 EUR-4,666
S&P 50030 minn/a 71571.754,049 EUR-1,024
S&P 5004 hoursn/a 11575.654,040 EUR-1,205
FTSE 1001 hourn/a 43871.233,845 EUR-2,984
S&P 5001 hourn/a 51672.873,071 EUR-1,300
S&P 500Dailyn/a 4280.952,918 EUR-1,124
US Crude Oil5 minn/a 69767.292,846 EUR-2,814
FTSE 10010 minn/a 70269.942,744 EUR-1,124
FTSE 1005 minn/a 71266.432,287 EUR-850
S&P 50015 minn/a 72071.252,086 EUR-1,064
S&P 50010 minn/a 70269.521,772 EUR-1,098
GBP/USD5 minn/a 68064.12641 USD-609
S&P 5001 minn/a 61267.97469 EUR-421

Charts

Results by run

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

Net profitMax drawdown

The code

ProBuilder code, as tested

// ==============================================================
// MACD Bollinger Band RSI Reversion
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long only
// Timeframe tested: 30 minutes
// ==============================================================

DEFPARAM CumulateOrders = false

ONCE since = -1

myMacd = MACDline[12,26,9](close)
signal = ExponentialAverage[9](myMacd)
basis = Average[20](close)
dev = 2 * STD[20](close)
upper = basis + dev
lower = basis - dev
myRsi = RSI[14](close)

27 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

MACDRSIBollinger BandsSMAStandard Deviation
Read this firstKnown weaknesses3 points
  • No profit factor is available, because only sweep results exist for this strategy.
  • The maximum drawdown of 5,190 EUR is large next to the net profit of 7,864 EUR.
  • The code sets no stop loss, so a losing trade stays open until an exit signal arrives.

Questions

About this strategy

Can I run MACD Bollinger Band RSI 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 38 market and timeframe combinations. The best run by trade count was DAX 40, 30 minutes, with 757 trades.

How large was the drawdown?

The best run had a maximum drawdown of 5,190 EUR at the tested position size, against a net result of 7,864 EUR.

Does it trade long, short or both?

It only takes long trades.

Related

Strategies like this one

Trend Surfer

Uses the same indicator.

1.04 PF · 10,813 trades

Heikin Ashi Color Flip

Best run on the same market, DAX 40.

1.12 PF · 3,692 trades

ATR Band

Also a mean reversion strategy.

10.31 PF · 53 trades

Want strategies that are already part of a live portfolio? Join the ProRealAlgos waitlist.

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