Join today
Strategies / Mean reversion / RSI(2) Pullback MA Exit

RSI(2) Pullback With a Moving Average Exit

In an uptrend above the 200 SMA, a close under the 5 SMA with RSI(2) below 13 triggers a long. Shorts use the reverse, with RSI(2) above 83 below the 200 SMA. Longs close on a cross above the 9 SMA and shorts on a cross below the 5 SMA.

Mean reversionLong & shortSwingNasdaq 100Daily
1.99Profit factor
19,095Net profit EUR
66.35%Win rate
627Trades
-3,955Max drawdown
30.45Avg trade

Best run of 11. Nasdaq 100, Daily, spread 3, from run pf:2026-09-24-NAS100-D.tsv:1.

Entry rules, long

  1. Close above the 200-period SMA
  2. Close below the 5-period SMA
  3. Members only

Entry rules, short

  1. Close below the 200-period SMA
  2. Close above the 5-period SMA
  3. Members only

Exit rules

  1. Members only
  2. Close a short when price crosses below the 5-period SMA
  3. No stop loss or target

Test conditions

PeriodUp to 2026-09-24
InstrumentNasdaq 100, Daily
Spread3 points
Contracts1
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-09-24

Parameters

positionSize
Contracts per trade
1
trendPeriod
SMA trend filter length
200
fastPeriod
Short SMA for the pullback test and the short exit
5
exitPeriod
SMA whose upward cross closes a long
9
rsiPeriod
RSI length
2
oversoldLevel
Buy below this RSI
13
overboughtLevel
Short above this RSI
83

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
Nasdaq 100Best runDaily1.99 62766.3519,095 EUR-3,955
S&P 500Daily1.98 85563.395,527 EUR-729
USD/JPYDailyn/a 79067.59780,260 JPY-499,400
EUR/USD1 hourn/a 10,34964.6553,535 USD-13,600
EUR/USDDailyn/a 72864.7031,884 USD-25,885
Nikkei 225Dailyn/a 65266.8729,284 USD-14,725
EUR/USD4 hoursn/a 2,65763.7229,018 USD-17,428
Dow JonesDailyn/a 78464.2914,829 EUR-6,619
US Crude OilDailyn/a 65865.207,721 EUR-6,834
Dow Jones4 hoursn/a 57365.976,873 EUR-6,685
FTSE 100Dailyn/a 63966.824,588 EUR-2,993

Charts

Results by run

Profit factor by run

Above 1.0 made money, below 1.0 lost money.

0.00.51.01.52.01.0 = break-evenNasdaq 100 · Daily1.99S&P 500 · Daily1.98

Net profit against max drawdown

Net profitMax drawdown
0-500K-250K500K1.0MUSD/JPY · DailyEUR/USD · 1 hourEUR/USD · DailyNikkei 225 · DailyEUR/USD · 4 hoursNasdaq 100 · DailyDow Jones · DailyUS Crude Oil · DailyDow Jones · 4 hoursS&P 500 · DailyFTSE 100 · Daily

The code

ProBuilder, rewritten to house standard

Every file in the library uses the same header, the same section order and the same variable names. The numbers above were produced by the original version before the rewrite, and the rewrite has not yet been compiled in ProRealTime.

// ============================================================
// RSI(2) Pullback MA Exit
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long & short
// Timeframe tested: Daily
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = false

// --- Parameters ---
positionSize = 1          // contracts per trade
trendPeriod = 200         // SMA trend filter length
fastPeriod = 5            // short SMA for the pullback test and the short exit
exitPeriod = 9            // SMA whose upward cross closes a long
rsiPeriod = 2             // RSI length
oversoldLevel = 13        // buy below this RSI
overboughtLevel = 83      // short above this RSI

// --- Indicators ---
trendMA = Average[trendPeriod](close)
fastMA = Average[fastPeriod](close)
exitMA = Average[exitPeriod](close)
rsiValue = RSI[rsiPeriod](close)

25 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • No stop loss or target, so a pullback that turns into a crash stays open until price crosses the exit average.
  • Max drawdown on Nasdaq 100 Daily was EUR 3,955.3 against EUR 19,094.8 profit.
  • Several rows, like USD/JPY Daily with a JPY 499,400.0 drawdown, only have sweep data without a recorded profit factor.

Indicators used

RSISMA

How to load it

  1. Copy the code with the copy button above 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.

Questions

About this strategy

Can this RSI(2) system run in ProOrder?

Yes, it uses simple moving averages and RSI with market orders. The rewritten code is not compile-checked yet.

How did it do beyond the Nasdaq 100?

S&P 500 Daily had a profit factor of 1.98 and made EUR 5,527.46. EUR/USD 1 hour made USD 53,535.0 and FTSE 100 Daily EUR 4,588.1.

What drawdown with 1 contract?

The best run had a max drawdown of EUR 3,955.3 with 1 contract. S&P 500 Daily was milder at EUR 728.74.

Why Daily bars?

RSI(2) dips on Daily bars mark short pullbacks inside the 200 SMA trend. The Nasdaq 100 run produced 627 trades on that setting.

Related

Strategies like this one

Bollinger Squeeze

Uses the same indicator.

14.30 PF · 86 trades

Negated Hammer

Best run on the same market, Nasdaq 100.

3.20 PF · 372 trades

Little Turtle Breakout

A similar profit factor.

1.99 PF · 105 trades

Compare RSI pullback results with other members. Join the ProRealAlgos waitlist.

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