Does Combining RSI and Bollinger Bands Help? 720 Backtests
RSI below 30 plus a touch of the lower Bollinger band, tested on USD/JPY over two years against the only fair control: throwing away the same number of bars at random.
"Buy when RSI is below 30 and price touches the lower Bollinger band." Stacking two indicators like this is the most common way to build a rule out of two.
What the operation does is not in doubt. Combining creates no signals. It takes the bars where RSI is below 30 and discards the ones that did not touch the band.
On the hourly chart in 2025, RSI closed below 30 on 356 bars. 216 of them, 60.67%, also touched the lower band at two standard deviations. The other 40% are thrown away, and that is what "filtering" means here.
Throwing bars away moves the win rate on its own, because a smaller sample sits further from its own average. So "the win rate went up when I combined them" only means something if it went up more than discarding the same number of bars at random would have.
That is the measurement. Of 108 pairings, 21 fall outside the 95% range of random discards, and 19 of those 21 fall below it.
Settings for RSI and the Bollinger band
RSI runs between 0 and 100 in a pane under the chart. The Bollinger band draws a moving average with lines a multiple of the standard deviation above and below it, over the price itself.
| Condition | Field | Default | What it means |
|---|---|---|---|
| RSI | period | 14 | how many bars the calculation reads |
| RSI | level and comparator | 30, below | below 30 buys; above 70 sells |
| Bollinger band | period | 20 | bars in the average and the deviation |
| Bollinger band | deviation | 2 | how many standard deviations out the lines sit |
| Bollinger band | trigger | touch | a low reaching the lower line buys, a high reaching the upper line sells |
Both are states rather than events. RSI below 30 holds for as long as it holds; it does not fire once.
Using both at once
Switch both on and set the logic to require all conditions. Only bars where both point the same way remain. RSI below 30 and a lower-band touch both produce long signals only, so the pairing is long-only; the short pairing is built from RSI above 70 and an upper-band touch.
How this was measured
| Item | Value |
|---|---|
| Pair | USD/JPY |
| Timeframes | 15-minute, hourly, 4-hour |
| Period | 1 January 2024 to 31 December 2025 |
| RSI levels | below 25, 30, 35 for longs; above 75, 70, 65 for shorts |
| Band deviations | 1.5, 2, 2.5 |
| Control | 1,000 random draws of the same size from the same RSI pool |
| Horizon | the close 1, 5, 10 and 20 bars after the signal bar |
| Exit | the close 10 bars later, for all three |
| Conditions | RSI alone 3, band alone 3, combined 9, per side |
| Runs | 15 x 2 sides x 3 timeframes x 4 windows x with and without cost = 720 |
| Spread | 0.3 pips, fixed |
| Lot | 0.1 |
| Fill | at the close |
All three use the same ten-bar exit. The comparison is between three entries, and different exits would turn it into a comparison of exits.
The random range is built like this: if 356 bars are below the RSI level and 216 of them also touch the band, then 216 bars are drawn from the 356 at random, a thousand times, and the resulting win rates are sorted to take the 2.5th and 97.5th percentiles. The generator runs from a fixed seed, so the published range is reproducible.
Against the same number of bars picked at random
Hourly, long side. The pool is bars below the RSI level; the pairing is the subset that also touched the band.
| Year | RSI | Deviation | Pool | Kept | Kept % | Pool rate | Pairing rate | Random range |
|---|---|---|---|---|---|---|---|---|
| 2025 | below 25 | 1.5σ | 112 | 106 | 94.64% | 61.61% | 59.43% | 59.43-63.21% |
| 2025 | below 25 | 2σ | 112 | 79 | 70.54% | 61.61% | 59.49% | 55.70-67.09% |
| 2025 | below 25 | 2.5σ | 112 | 42 | 37.50% | 61.61% | 59.52% | 50.00-71.43% |
| 2025 | below 30 | 1.5σ | 356 | 327 | 91.85% | 55.90% | 55.66% | 54.43-57.49% |
| 2025 | below 30 | 2σ | 356 | 216 | 60.67% | 55.90% | 56.48% | 51.85-60.19% |
| 2025 | below 30 | 2.5σ | 356 | 117 | 32.87% | 55.90% | 54.70% | 48.72-64.10% |
| 2025 | below 35 | 1.5σ | 772 | 617 | 79.92% | 54.53% | 53.32% | 52.84-56.24% |
| 2025 | below 35 | 2σ | 772 | 395 | 51.17% | 54.53% | 52.41% | 51.14-57.72% |
| 2025 | below 35 | 2.5σ | 772 | 216 | 27.98% | 54.53% | 55.09% | 49.07-60.19% |
| 2024 | below 25 | 1.5σ | 132 | 123 | 93.18% | 50.76% | 47.97% | 48.78-52.85% |
| 2024 | below 25 | 2σ | 132 | 84 | 63.64% | 50.76% | 40.48% | 44.05-57.14% |
| 2024 | below 25 | 2.5σ | 132 | 46 | 34.85% | 50.76% | 41.30% | 39.13-63.04% |
| 2024 | below 30 | 1.5σ | 309 | 277 | 89.64% | 50.16% | 48.74% | 48.38-51.99% |
| 2024 | below 30 | 2σ | 309 | 185 | 59.87% | 50.16% | 45.41% | 45.95-55.14% |
| 2024 | below 30 | 2.5σ | 309 | 98 | 31.72% | 50.16% | 52.04% | 42.86-58.16% |
| 2024 | below 35 | 1.5σ | 617 | 499 | 80.88% | 48.78% | 49.90% | 46.89-50.70% |
| 2024 | below 35 | 2σ | 617 | 321 | 52.03% | 48.78% | 47.35% | 45.17-52.65% |
| 2024 | below 35 | 2.5σ | 617 | 175 | 28.36% | 48.78% | 51.43% | 42.86-54.86% |
All nine 2025 pairings land inside the range. Three of the 2024 pairings land outside it, and all three land below (47.97% against 48.78-52.85%, 40.48% against 44.05-57.14%, 45.41% against 45.95-55.14%).
Notice how the range widens. Keeping 94.64% of the pool gives a range 3.78 points wide; keeping 37.50% gives one 21.43 points wide. The harder the filter, the more the win rate is expected to move on its own.
Across three timeframes and both sides there are 108 pairings. 21 land outside the range: 19 below and 2 above. Requiring the same timeframe, side and setting to land outside in the same direction in both years leaves 4 of 54, all of them on the hourly short side and all of them below.
What the band condition selects
If the pairing lands low, the band must be selecting a particular kind of bar. Splitting the RSI pool by whether the bar touched the band:
| Timeframe | Year | Side | Touched | Run-up | Bar size | Mean RSI | Missed | Run-up | Bar size | Mean RSI |
|---|---|---|---|---|---|---|---|---|---|---|
| 15-minute | 2025 | long | 780 | 3.07 ATR | 1.56 ATR | 25.04 | 569 | 1.31 ATR | 0.93 ATR | 24.97 |
| 15-minute | 2025 | short | 739 | 2.93 ATR | 1.39 ATR | 75.12 | 713 | 1.24 ATR | 0.86 ATR | 74.92 |
| Hourly | 2025 | long | 216 | 3.05 ATR | 1.46 ATR | 25.48 | 140 | 1.42 ATR | 0.97 ATR | 26.25 |
| Hourly | 2025 | short | 185 | 3.13 ATR | 1.36 ATR | 76.16 | 219 | 1.11 ATR | 0.84 ATR | 75.78 |
| Hourly | 2024 | long | 185 | 3.17 ATR | 1.80 ATR | 24.20 | 124 | 1.22 ATR | 0.92 ATR | 25.25 |
| Hourly | 2024 | short | 291 | 2.87 ATR | 1.50 ATR | 76.41 | 307 | 1.11 ATR | 0.82 ATR | 75.40 |
| 4-hour | 2025 | short | 60 | 3.29 ATR | 1.26 ATR | 74.93 | 58 | 1.26 ATR | 0.88 ATR | 75.61 |
| 4-hour | 2024 | short | 106 | 2.70 ATR | 1.40 ATR | 77.88 | 74 | 1.28 ATR | 0.88 ATR | 76.38 |
Run-up is how far price had already travelled into the signal over five bars, in ATR: for a long, how far it had already fallen.
The touched half had run 1.80 to 2.82 times as far, on bars 1.43 to 2.03 times as large. The mean RSI of the two halves differs by less than 2.1 points.
So the band is not selecting bars that are more oversold. At the same RSI reading, it selects the ones falling faster. In 8 of the 12 cells the touched half had the lower rate ten bars on. On the hourly chart in 2025 the short side reads 32.97% against 54.79%, a gap of 21.82 points.
The 4-hour long pool in 2025 is left out of the table: only 11 bars there did not touch.
Did the win rate rise?
Hourly, the RSI level alone against the pairing:
| Side | RSI | Deviation | Alone | Paired | Kept % | Alone win rate | Paired win rate | Delta |
|---|---|---|---|---|---|---|---|---|
| long | below 25 | 1.5σ | 41 | 39 | 95.1% | 70.73% | 69.23% | -1.50 |
| long | below 25 | 2σ | 41 | 36 | 87.8% | 70.73% | 69.44% | -1.29 |
| long | below 25 | 2.5σ | 41 | 23 | 56.1% | 70.73% | 65.22% | -5.51 |
| long | below 30 | 1.5σ | 85 | 82 | 96.5% | 50.59% | 50.00% | -0.59 |
| long | below 30 | 2σ | 85 | 74 | 87.1% | 50.59% | 52.70% | +2.11 |
| long | below 30 | 2.5σ | 85 | 56 | 65.9% | 50.59% | 51.79% | +1.20 |
| long | below 35 | 1.5σ | 145 | 130 | 89.7% | 46.90% | 46.92% | +0.02 |
| long | below 35 | 2σ | 145 | 113 | 77.9% | 46.90% | 47.79% | +0.89 |
| long | below 35 | 2.5σ | 145 | 87 | 60.0% | 46.90% | 50.57% | +3.67 |
| short | above 75 | 1.5σ | 35 | 32 | 91.4% | 37.14% | 31.25% | -5.89 |
| short | above 75 | 2σ | 35 | 29 | 82.9% | 37.14% | 34.48% | -2.66 |
| short | above 75 | 2.5σ | 35 | 19 | 54.3% | 37.14% | 31.58% | -5.56 |
| short | above 70 | 1.5σ | 73 | 63 | 86.3% | 42.47% | 38.10% | -4.37 |
| short | above 70 | 2σ | 73 | 53 | 72.6% | 42.47% | 32.08% | -10.39 |
| short | above 70 | 2.5σ | 73 | 40 | 54.8% | 42.47% | 32.50% | -9.97 |
| short | above 65 | 1.5σ | 146 | 127 | 87.0% | 53.42% | 51.97% | -1.45 |
| short | above 65 | 2σ | 146 | 106 | 72.6% | 53.42% | 50.00% | -3.42 |
| short | above 65 | 2.5σ | 146 | 78 | 53.4% | 53.42% | 47.44% | -5.98 |
Five of the 18 improved, by between 0.02 and 3.67 points, and all five are long. All nine short pairings fell, the largest by 10.39 points.
How much was discarded does not predict the change. Keeping 95.1% gives -1.50; keeping 53.4% gives -5.98.
Trading all 720 runs
Entering at the close and exiting ten bars later, hourly long side:
| Condition | 2025 trades | 2025 win rate | 2025 net pips | 2024 trades | 2024 win rate | 2024 net pips |
|---|---|---|---|---|---|---|
| RSI below 25 alone | 41 | 70.73% | +695.9 | 34 | 52.94% | -113.3 |
| RSI below 30 alone | 85 | 50.59% | +316.4 | 73 | 54.79% | +164.5 |
| RSI below 35 alone | 145 | 46.90% | +210.1 | 113 | 48.67% | -529.9 |
| 1.5σ touch alone | 284 | 50.00% | -745.5 | 260 | 54.23% | -391.5 |
| 2σ touch alone | 214 | 49.53% | +194.1 | 202 | 52.97% | -194.4 |
| 2.5σ touch alone | 160 | 50.00% | +446.4 | 151 | 53.64% | +194.6 |
| RSI 25 + 1.5σ | 39 | 69.23% | +629.3 | 32 | 50.00% | -381.1 |
| RSI 25 + 2σ | 36 | 69.44% | +545.1 | 29 | 51.72% | -163.0 |
| RSI 25 + 2.5σ | 23 | 65.22% | +254.7 | 21 | 42.86% | -356.3 |
| RSI 30 + 1.5σ | 82 | 50.00% | +439.7 | 71 | 54.93% | +138.8 |
| RSI 30 + 2σ | 74 | 52.70% | +385.6 | 62 | 51.61% | +106.5 |
| RSI 30 + 2.5σ | 56 | 51.79% | +337.9 | 49 | 51.02% | +63.5 |
| RSI 35 + 1.5σ | 130 | 46.92% | -101.6 | 108 | 52.78% | +208.4 |
| RSI 35 + 2σ | 113 | 47.79% | +244.8 | 92 | 51.09% | +269.6 |
| RSI 35 + 2.5σ | 87 | 50.57% | +335.6 | 80 | 51.25% | +287.4 |
Seven of the 15 cleared both years. The rest of the grid:
| Timeframe | Side | Cleared both years, of 15 |
|---|---|---|
| 15-minute | long | 0 |
| Hourly | long | 7 |
| 4-hour | long | 0 |
| 15-minute | short | 0 |
| Hourly | short | 0 |
| 4-hour | short | 2 |
Only the hourly long side and the 4-hour short side produced anything. In the other four cells nothing survived, alone or paired.
The two cases where combining rescued a losing level
Five of the seven survivors were already profitable in both years using the RSI level alone. Only two turned a level that lost a year into one that did not.
| Condition | RSI alone, 2024 | Paired, 2024 | RSI alone, 2025 | Paired, 2025 |
|---|---|---|---|---|
| Hourly, RSI 35 + 2σ | -529.9 | +269.6 | +210.1 | +244.8 |
| Hourly, RSI 35 + 2.5σ | -529.9 | +287.4 | +210.1 | +335.6 |
Read alone, that looks like the filter earning its place. But both sit inside the random range: the 2024 pool below RSI 35 won 48.78%, the 321 bars kept at 2σ won 47.35%, and the random range is 45.17 to 52.65%. Discarding the same number of bars at random reaches the same place.
The short fade does not get fixed by combining
The short side lost almost everywhere, alone and paired. On the hourly chart in 2025 all 15 finished negative, the shallowest being RSI above 65 at -324.6 pips.
This series has measured the short fade breaking in a rising market several times, and 2024 rose from 140.87 to 157.20. But 2025 opened at 157.23 and closed at 156.67, and the short side still lost in all 15 hourly runs. Direction alone does not account for it.
Combining does not soften it either. Hourly 2025, RSI above 70 alone returns -1,040.3 pips; adding the 2σ touch gives -1,158.0, and the win rate falls from 42.47% to 32.08%.
Cost
Spread paid matched trade count times 0.3 pips in all 18 hourly runs.
| Side | Condition | Trades | Spread paid | Trades x 0.3 |
|---|---|---|---|---|
| long | RSI 30 + 1.5σ | 82 | 24.5 | 24.6 |
| long | RSI 30 + 2σ | 74 | 22.1 | 22.2 |
| long | RSI 35 + 1.5σ | 130 | 38.9 | 39.0 |
| short | RSI 70 + 2σ | 53 | 15.8 | 15.9 |
| short | RSI 65 + 1.5σ | 127 | 38.0 | 38.1 |
Combining does cut the bill. RSI below 35 takes 145 trades and pays 43.5 pips; adding the 2.5σ touch takes 87 and pays 26.1. The 17.4 pips saved cost 58 trades.
Related articles
- Is buying RSI below 30 profitable?: the pool used here, tested on its own across 330 settings
- Bollinger Bands: mean reversion or breakout?: the band on its own, across 315 settings
- Candlestick pattern win rates: another case where the answer only appears once a control is placed beside it
- Is the engulfing candle profitable?: filters added to an entry, measured the same way
- Do Trend Filters Remove False Signals? 1,596 Backtests: the random range built here, applied across all 38 published settings
Notes
The data is USD/JPY from 1 January 2024 to 31 December 2025. Fills are at the close, the spread is fixed at 0.3 pips, and the lot is 0.1. RSI uses a period of 14 and the band a period of 20. The random range comes from drawing the pairing's own number of bars out of the pool a thousand times and taking the 2.5th and 97.5th percentiles of the resulting win rates; the generator uses a fixed seed. Where the pairing keeps the whole pool there is nothing to draw, so the pool's own rate is used. Because the horizons run out to 20 bars, that many bars at the end of each year are excluded from the counts.
Questions people ask
- Does combining RSI with Bollinger Bands raise the win rate?
- It did not here. Comparing 18 pairings on the hourly chart (two sides, three RSI levels, three band deviations) with the RSI level on its own, the win rate rose in five. All five were on the long side; every one of the nine short pairings fell, by as much as 10.39 points.
- Is the combination really filtering anything?
- Not compared with throwing bars away at random. Drawing the same number of bars from the same RSI pool a thousand times gives a 95% range for the win rate. Of 108 pairings, 21 land outside that range, but 19 of them land below it and only 2 above.
- What kind of bars does the band condition keep?
- Faster ones, at the same RSI reading. Splitting the RSI pool by whether the bar touched the band, the five-bar run-up into the signal is 1.80 to 2.82 times larger in ATR, and the bar itself is 1.43 to 2.03 times larger, while the mean RSI of the two halves differs by less than 2.1 points.
- Are there settings where the combination works?
- Seven of 15 on the hourly long side cleared both 2024 and 2025. Five of those seven were already profitable in both years using the RSI level alone. Only two combinations turned a level that lost a year into one that did not, and both sit inside the random range.
- Can I test combinations in Formiq?
- Yes. Switch on RSI and the Bollinger band together in the backtest condition list and set the logic to require all conditions, and only bars where both point the same way remain. The 720 runs here were built that way.
Formiq is a free browser-based FX terminal with replay practice and no-code backtesting. Open the chart or see what the free plan includes.