Join today
Strategies / Momentum / RSI Volatility Momentum

RSI Volatility Momentum

Instead of fading extremes, this system follows them. It goes long when RSI(8) is above 70 and short when it is below 30, but only if ATR(16) is more than 0.15% of the close. Each trade has a 200 point target and a 150 point stop.

MomentumLong & shortIntradayGold2 min
1.36Profit factor
2,486Net profit EUR
41.34%Win rate
283Trades
-1,177Max drawdown
8.78Avg trade

Best run of 14. Gold, 2 min, spread 0.6, from run pf:2026-09-15-GOLD-2m.tsv:2.

Entry rules, long

  1. Members only
  2. ATR(16) is more than 0.15% of the close

Entry rules, short

  1. Members only
  2. ATR(16) is more than 0.15% of the close

Exit rules

  1. Members only
  2. Stop loss of 150 points

Test conditions

PeriodUp to 2026-09-15
InstrumentGold, 2 minutes
Spread0.6 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-15

Parameters

positionSize
Contracts per trade
1
rsiPeriod
RSI length
8
atrPeriod
ATR length for the volatility filter
16
oversoldLevel
RSI below this triggers a short; above 100 minus this triggers a long
30
minVolatilityPct
ATR must exceed this percent of price
0.15
takeProfitPoints
Target in points
200
stopLossPoints
Protective stop in points
150

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
GoldBest run2 min1.36 28341.342,486 EUR-1,177
Gold4 hours1.23 77038.832,945 EUR-769
GoldDaily1.17 34238.301,384 EUR-807
Gold3 min1.15 38440.621,421 EUR-760
Silver4 hours1.13 99038.1830,194 USD-9,053
USD/JPYDaily1.12 1,17845.421,174,010 JPY-651,790
Gold1 hour1.09 2,52136.302,144 EUR-904
USD/JPY1 hour1.08 2,07639.07673,590 JPY-257,760
EUR/USDDaily1.07 89343.9048,386 USD-24,374
GBP/USDDaily1.07 1,24844.557,395 USD-2,886
DAX 401 hour1.06 3,81939.6713,580 EUR-4,961
Dow Jones4 hours1.06 1,24044.356,146 EUR-4,495
FTSE 1003 minn/a 6240.32803 EUR-679
FTSE 1002 minn/a 560.00357 EUR-317

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-evenGold · 2 min1.36Gold · 4 hours1.23Gold · Daily1.17Gold · 3 min1.15Silver · 4 hours1.13USD/JPY · Daily1.12Gold · 1 hour1.09USD/JPY · 1 hour1.08EUR/USD · Daily1.07GBP/USD · Daily1.07DAX 40 · 1 hour1.06Dow Jones · 4 hours1.06

Net profit against max drawdown

Net profitMax drawdown
0-1.0M-500K1.0M2.0MUSD/JPY · DailyUSD/JPY · 1 hourEUR/USD · DailySilver · 4 hoursDAX 40 · 1 hourGBP/USD · DailyDow Jones · 4 hoursGold · 4 hoursGold · 2 minGold · 1 hourGold · 3 minGold · DailyFTSE 100 · 3 minFTSE 100 · 2 min

Longer history

Re-run on up to 1,000,000 bars

With the full 1,000,000 bars available on Gold 2 minutes, net profit fell to EUR 2,085 from EUR 2,485.9 in the standard run, because the older data alone lost EUR 400.9.

Gold · 2 min

Bars available1,000,000
Net, standard 200,000-bar run2,485.90 EUR
Net, long run2,085.00 EUR
Net on the older data alone-400.90 EUR

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 Volatility Momentum
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Momentum
// Direction: Long & short
// Timeframe tested: 2 minutes
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = false
DEFPARAM PreloadBars = 1000

// --- Parameters ---
positionSize = 1          // contracts per trade
rsiPeriod = 8             // RSI length
atrPeriod = 16            // ATR length for the volatility filter
oversoldLevel = 30        // RSI below this triggers a short; above 100 minus this triggers a long
minVolatilityPct = 0.15   // ATR must exceed this percent of price
takeProfitPoints = 200    // target in points
stopLossPoints = 150      // protective stop in points

// --- Indicators ---
rsiValue = RSI[rsiPeriod](close)
volatilityPct = (AverageTrueRange[atrPeriod](close) / close) * 100
overboughtLevel = 100 - oversoldLevel

16 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • Profit factors are modest across the board: 1.36 on the best Gold 2 minute run and 1.06 on DAX 40 1 hour and Dow Jones 4 hours.
  • On the 1,000,000 bar rerun the Gold 2 minute result fell to EUR 2,085, and the older data alone came to EUR -400.9.
  • Fixed 200 and 150 point levels mean very different risk per trade on Gold, Silver, indices and currency pairs.
  • Some rows rest on very few trades, such as FTSE 100 2 minutes with only 5 trades.

Indicators used

RSIATR

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 run live in ProOrder?

Yes, it is fully automated with point-based stop and target. The code was rewritten after testing and not compile-checked, so check it in ProBacktest first.

Which markets were tested?

Gold, Silver, DAX 40, Dow Jones, FTSE 100 and the major currency pairs, and every listed run made money. USD/JPY daily made JPY 1,174,010 with a profit factor of 1.12.

What drawdown did the best run have?

At 1 contract the Gold 2 minute run had a max drawdown of EUR 1,177.1 against EUR 2,485.9 net profit over 283 trades.

Why such a short timeframe on Gold?

The 2 minute chart gave the best recorded profit factor. The ATR filter keeps it out of quiet periods where small bars would not reach the target.

Related

Strategies like this one

ATR Band

Uses the same indicator.

10.31 PF · 53 trades

Triple Band Market Model

Best run on the same market, Gold.

2.27 PF · 203 trades

Dual MA Long Trend

A similar profit factor.

1.39 PF · 241 trades

Momentum filters like this one are part of how we build portfolios. Join the ProRealAlgos waitlist to follow along.

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