Join waitlist
Strategies / Mean reversion / Regime Filtered RSI Dip

Regime Filtered RSI Dip

The strategy buys when price is below the 60-period and 120-period EMAs, minus DI is above its average, and RSI is not falling, within one of four trend regimes. It sells on exhaustion signals, with a 50% stop and a 100% target.

Mean reversionLong onlySwingS&P 5004 hours
3.57Profit factor
3,461Net profit EUR
79.00%Win rate
100Trades
-757Max drawdown
34.61Avg trade

Best run of 25. S&P 500, 4 hours, spread 1, from run pf:2026-10-05-USA500-4h.tsv:4.

Entry rules, long

  1. The close is below both the 60-period EMA and the 120-period EMA
  2. The 14-period minus DI is above its 25-period EMA
  3. The 5-period RSI is not lower than its previous bar value
  4. No exit condition is true on the same bar
  5. No long position is currently open

Exit rules

  1. The close is above the 120-period EMA, with the 5-period RSI EMA at or above 75 or the close above the 240-period SMA
  2. The close is above the 120-period EMA, ADX is above 30, and the 5-period RSI EMA is at or above 80, in an uptrend regime
  3. The 240-period SMA is not rising and its slope is slowing, with the 5-period RSI EMA at or above 75
  4. The minus DI is below plus DI while the close is above the 60-period EMA
  5. A stop loss sits 50% below and a profit target 100% above the entry price

Test conditions

PeriodUp to 2026-10-05
InstrumentS&P 500, 4 hours
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
S&P 500Best run4 hours3.57 10079.003,461 EUR-757
Nasdaq 1001 hour1.89 36566.8511,891 EUR-1,594
USD/JPY4 hoursn/a 9966.67326,500 USD-163,190
Nikkei 2251 hourn/a 26261.8314,730 USD-6,267
Silver4 hoursn/a 10263.7314,599 USD-11,675
Dow Jones4 hoursn/a 3871.0514,376 EUR-5,000
Silver5 minn/a 39266.0714,276 USD-7,901
Nikkei 225Dailyn/a 1866.6713,220 USD-10,836
Dow Jones1 hourn/a 10363.1111,099 EUR-4,937
Dow JonesDailyn/a 2171.4310,041 EUR-8,615
Silver3 minn/a 39165.739,113 USD-7,295
DAX 401 hourn/a 31064.849,001 EUR-2,604
Nasdaq 10030 minn/a 45161.867,136 EUR-3,050
EUR/USD10 minn/a 37164.966,658 USD-5,079
DAX 40Dailyn/a 2157.145,544 EUR-3,520
Nasdaq 100Dailyn/a 1866.675,518 EUR-3,611
Dow Jones30 minn/a 20965.075,176 EUR-4,700
FTSE 100Dailyn/a 2483.334,273 EUR-2,081
EUR/USD5 minn/a 37462.834,165 USD-3,423
Brent Crude2 minn/a 41962.773,029 EUR-956
Dow Jones2 minn/a 35764.712,847 EUR-1,825
Brent Crude10 minn/a 44461.942,309 EUR-1,869
S&P 5001 hourn/a 34662.722,076 EUR-545
S&P 50030 minn/a 45159.201,113 EUR-944
Gold2 minn/a 34065.00709 EUR-333

Charts

Results by run

Top 10 of 25 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

// ==============================================================
// Regime Filtered RSI Dip
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long only
// Timeframe tested: 4 hours
// ==============================================================

DEFPARAM CumulateOrders = false

myRsi = RSI[5](close)
emarsi = ExponentialAverage[5](myRsi)
myAdx = ADX[14]
minusdi = DIminus[14](close)
plusdi = DIplus[14](close)
minusdiema = ExponentialAverage[25](minusdi)
lowsma = ExponentialAverage[60](close)
highsma = ExponentialAverage[120](close)
fastsma = Average[120](close)
slowsma = Average[240](close)

35 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

RSIEMAADXDMISMA
Longer historyRe-run on up to 1,000,000 barsS&P 500 · 4 hours · older data 0.00 EUR

S&P 500 had no history beyond the standard run, so both runs used 28,000 bars.

S&P 500 · 4 hours

Bars available28,000
Net, standard 200,000-bar run3,460.68 EUR
Net, long run3,460.68 EUR
Net on the older data alone0.00 EUR
Read this firstKnown weaknesses2 points
  • Results include the spread only. Commissions and overnight financing are not included.
  • The code is published as it was backtested and has not been compiled again since.

Questions

About this strategy

Can I run Regime Filtered RSI Dip 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 25 market and timeframe combinations. The best run was S&P 500, 4 hours, with a profit factor of 3.57 over 100 trades.

How large was the drawdown?

The best run had a maximum drawdown of 757 EUR at the tested position size, against a net result of 3,461 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

CCI Sign With EMA Alignment

Best run on the same market, S&P 500.

1.23 PF · 1,253 trades

Regime RSI Dip With 25% Stop

Also a mean reversion strategy.

3.57 PF · 100 trades

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

Copy trading on US indices is available to ProRealAlgos members as spots open.

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