Join today
Strategies / Momentum / RSI Momentum Thrust

RSI Momentum Thrust: trading RSI breakouts with the trend

Instead of fading overbought readings, this strategy buys when RSI(20) crosses above 70 with price over the 20 bar SMA and Momentum(12) rising for two bars. Shorts mirror it below 30. Trades close at a 40 point stop or target, or earlier when RSI falls back or the SMA turns.

MomentumLong & shortSwingSilver4 hours
1.33Profit factor
6,567Net profit USD
50.55%Win rate
273Trades
-1,524Max drawdown
24.05Avg trade

Best run of 8. Silver, 4 hours, spread 2, from run pf:2026-09-26-SILVER-4h.tsv:1.

Entry rules, long

  1. Members only
  2. Close is above the 20-bar SMA
  3. Momentum(12) has risen for two bars in a row

Entry rules, short

  1. Members only
  2. Close is below the 20-bar SMA
  3. Momentum(12) has fallen for two bars in a row

Exit rules

  1. Stop loss 40 points, profit target 40 points
  2. Members only
  3. Cover a short when RSI(20) crosses above 40 or the 20-bar SMA turns up

Test conditions

PeriodUp to 2026-09-27
InstrumentSilver, 4 hours
Spread2 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-27

Parameters

positionSize
Contracts per trade
1
rsiPeriod
RSI length
20
longEntryLevel
Buy when RSI crosses above this
70
longExitLevel
Sell when RSI crosses below this
60
shortEntryLevel
Short when RSI crosses below this
30
shortExitLevel
Cover when RSI crosses above this
40
trendPeriod
SMA used as trend filter and slope exit
20
momentumPeriod
Momentum length
12
stopLossPoints
Protective stop in points
40
takeProfitPoints
Profit target in points
40

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
SilverBest run4 hours1.33 27350.556,567 USD-1,524
USD/JPY1 hour1.15 1,11545.92248,920 JPY-58,630
USD/JPY15 minn/a 1,34038.5891,970 JPY-58,510
Dow JonesDailyn/a 9055.56615 EUR-174
US Crude OilDailyn/a 8856.82480 EUR-221
Gold30 minn/a 1,44035.42477 EUR-430
Brent CrudeDailyn/a 4163.41440 EUR-120
GoldDailyn/a 11143.24245 EUR-168

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-evenSilver · 4 hours1.33USD/JPY · 1 hour1.15

Net profit against max drawdown

Net profitMax drawdown
0-100K-50K125K250KUSD/JPY · 1 hourUSD/JPY · 15 minSilver · 4 hoursDow Jones · DailyUS Crude Oil · DailyGold · 30 minBrent Crude · DailyGold · 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 Momentum Thrust
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Momentum
// Direction: Long & short
// Timeframe tested: 4 hours
// ============================================================

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

// --- Parameters ---
positionSize = 1             // contracts per trade
rsiPeriod = 20               // RSI length
longEntryLevel = 70          // buy when RSI crosses above this
longExitLevel = 60           // sell when RSI crosses below this
shortEntryLevel = 30         // short when RSI crosses below this
shortExitLevel = 40          // cover when RSI crosses above this
trendPeriod = 20             // SMA used as trend filter and slope exit
momentumPeriod = 12          // momentum length
stopLossPoints = 40          // protective stop, points
takeProfitPoints = 40        // profit target, points

// --- Indicators ---
rsiValue = RSI[rsiPeriod](close)
trendMA = Average[trendPeriod](close)
momentumValue = Momentum[momentumPeriod](close)

momentumRising = momentumValue > momentumValue[1] AND momentumValue[1] > momentumValue[2]
momentumFalling = momentumValue < momentumValue[1] AND momentumValue[1] < momentumValue[2]

28 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • The best run had a profit factor of 1.33 and a win rate of 50.55%, a thin edge that higher costs could remove.
  • Only 273 trades on the best run, and Brent Crude Daily had just 41.
  • Several markets made very little: Gold Daily earned EUR 245.2 and Brent Crude Daily EUR 440.
  • The stop and target are both 40 points, which suits some instruments far better than others.

Indicators used

RSISMAMomentum

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 RSI Momentum Thrust run in ProOrder?

Yes. It uses RSI, SMA and Momentum with a fixed stop and target. The rewrite is not compile checked yet.

Which markets was it tested on?

Silver 4 hours was best. USD/JPY, Dow Jones, US Crude Oil, Brent Crude and Gold were also profitable, with USD/JPY 1 hour at a profit factor of 1.15.

What drawdown should I plan for at 1 contract?

On Silver 4 hours max drawdown was USD 1,523.5. USD/JPY 1 hour reached JPY 58,629.97.

Why 4 hour bars?

RSI(20) is slow, so crosses of 70 or 30 on 4 hour bars mark real multi day thrusts rather than brief spikes.

Related

Strategies like this one

Bollinger Squeeze

Uses the same indicator.

14.30 PF · 86 trades

Percent B Bollinger Trend

Best run on the same market, Silver.

5.43 PF · 3,202 trades

Asymmetric EMA Cross

A similar profit factor.

1.33 PF · 1,019 trades

Momentum breakout fans can join the ProRealAlgos community waitlist here.

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