The Bollinger Band Bounce, Backtested
The Bollinger Band bounce buys a stock that closes below its lower Bollinger Band while it trades above its 200-day average, then sells when price closes back above the middle line. In a TradingView backtest on seven large US stocks, 72.1% of trades closed higher, yet it lost to buy-and-hold on all seven.
The Bollinger Band bounce is a dip-buying rule: buy a close below the lower Bollinger Band in an uptrend, sell on a close back above the middle line. This page tests one exact version on seven large stocks over more than eleven years.
How it works
The version tested here, on daily bars, with nothing left out:
- Bands: a 20-day simple average (the middle line) with a lower line two standard deviations of the last 20 closes below it.
- Trend filter: the close is above its 200-day average.
- Signal: the close is below the lower line.
- Entry: the next day’s open.
- Exit: the first close above the 20-day average, sold at the following open.
There is no stop and no fixed profit goal. One position at a time, the whole account in each trade, 0.05% commission each way and one tick of slippage. It ran in TradingView’s Strategy Tester in August 2026 as rule 03 of a ten-rule script, with the same code and costs as the RSI(2) strategy and the other rules in that set. Nothing was tuned for these seven stocks; the settings are the standard 20 days and two deviations.
Why the exit keeps moving
The exit is not a fixed price. It is the 20-day average, and that average is still falling while the stock falls. So a trade that starts badly does not need to recover to its entry price to close. It only needs one close above a middle line that has been dragging lower behind it.
That design is why the share of winners looks so high. In an ordinary dip the stock recovers a little, crosses the middle line within a few weeks (the average hold was 11 to 15 sessions), and the trade books a small gain. In a real decline the middle line comes down to meet price, and the trade closes at a loss well below where it began. Small, frequent gains and fewer but larger losses is the usual shape of mean reversion, and this rule has it in pure form because nothing cuts a loser early.
The lower line is also measured in the stock’s own swings. On Apple on 5 January 2026 it sat 2.2% under the 20-day average; on Tesla on 7 February 2025 it sat 8.5% under. The rule treats both the same, which is part of why results differ so much from one ticker to the next.
A worked example
The TradingView trade list was not saved, only the totals. So this example comes from a separate re-run of the same rule in Python on Yahoo Finance daily prices, which lets every step be redone by hand. It is shown to explain the arithmetic, not as one of the 136 trades counted below.
Apple, 9 June 2026. The 20-day average of the close was $304.56 and the standard deviation of those 20 closes was $6.58. The lower line is $304.56 minus 2 x $6.58, which is $291.40 on the rounded figures. Apple closed at $290.55, under that line, while its 200-day average sat at $265.90. Both conditions were met.
The buy filled at the 10 June open, $290.74. Price then drifted up. On 2 July Apple closed at $308.63, above a 20-day average of $294.80, so the exit fired, and the sale filled at the next session’s open on 6 July at $307.36. After the commission and slippage above, the trade made 5.60% in 16 sessions.
A hypothetical $10,000 account would have bought about 34.4 shares at $290.75 including slippage. Sold at $307.35, that is roughly $571 before commission and about $560 after it.
The original data
Read this first: the headline figures come from one TradingView run that could not be reproduced. The rule ran in TradingView’s Strategy Tester in August 2026 on seven stocks, AAPL, MSFT, GOOGL, AMZN, NVDA, META and TSLA, from January 2015 to 10 August 2026. Only each stock’s summary row was saved, not the list of trades. A later re-run of the same rule in Python on Yahoo Finance prices found 193 trades, not 136, and 77.7% of them closed higher, not 72.1%. That gap was never explained. Every per-stock figure below is TradingView’s as recorded, so treat it as one run of the rule, not a checked result.
Pooled, the TradingView rows show 136 trades, and 98 closed higher, which is 72.1%. The median profit factor across the seven stocks was 2.86, with a range from 1.15 on Apple to 24.15 on Nvidia. Those three figures recompute exactly from the seven summary rows.
Now set 72.1% against a base rate. On the same seven stocks and the same window, take every day the close was above its 200-day average, buy the next open, and sell a fixed number of sessions later, matching each stock’s average hold of 11 to 15 sessions. Before costs, 9,216 of those 15,189 holds closed higher, which is 60.7%. The rule’s lead over simply buying on any of those uptrend days was about 11 points on TradingView’s count, or about 17 on the re-run’s. In TradingView’s figures Amazon fell short: 55.6% of its trades closed higher, against 62.7% for any hold of the same length. The re-run put Amazon above that line, so even this one result depends on which run you trust.
The sample is the real problem. The test set three bars before a result could count: at least 60% of trades closing higher, a profit factor of at least 1.3, and at least 30 trades. The rule produced between 13 and 26 trades per stock in more than eleven years, so it failed the last bar on all seven. Nvidia’s 94.12%, 16 winners out of 17, is the best-looking row and the least reliable one. Remove it and the other six stocks give 82 of 119 trades closing higher, 68.9%.
Holding the shares did far better on every stock. From the 2 January 2015 close to the 10 August 2026 close, price only and without dividends, the returns were:
| Stock | Rule, net | Buy-and-hold, price only |
|---|---|---|
| AAPL | +6.14% | +1,027.81% |
| MSFT | +48.29% | +982.25% |
| GOOGL | +78.33% | +1,250.28% |
| AMZN | +9.20% | +1,702.74% |
| NVDA | +175.71% | +43,129.01% |
| META | +65.57% | +658.34% |
| TSLA | +82.31% | +2,163.10% |
The rule sat in cash most of the time. Trades multiplied by average hold come to roughly 6% to 12% of the 2,917 sessions in the window, so most of each stock’s rise happened while the rule was out. That is the trade the rule offers: less time exposed, and far less of the gain.
The re-run agrees on the big picture and not on the details. Its 193 trades include 150 with a gain after costs. It still lost to buy-and-hold on all seven stocks, and its average loss was bigger than its average win on five of the seven. But its counts differ on every stock, and only Nvidia reached 30 trades. No single later start date explains the gap, so the page quotes TradingView’s numbers and uses the re-run only for the worked examples and this check. Both files are published: the per-stock summary with the base rates and the Python re-run, trade by trade. These are simulated past results on seven stocks chosen after they had already risen, and none of them is a forecast.
Demand for the topic is real. In a study of 24,971 trading videos, 45 have “Bollinger Band” or “Bollinger Bands” followed by “strategy” or “trading” in the title, from 40 channels, with a median of 11,393 views against 10,684 for the whole study.
Winning often against winning big
The profit factor is total dollars won divided by total dollars lost. From each stock’s profit factor, trade count and average trade, the average win and average loss can be worked out exactly. On four of the seven stocks the average winning trade was smaller than the average losing one, or level with it:
- AAPL: average win $289, average loss $573. That is why 69.6% winners left a net gain of 6.14%.
- META: average win $740, average loss $908.
- TSLA: average win $1,265, average loss $1,474.
- AMZN: average win $464, average loss $465.
In TradingView’s figures, only Microsoft, Alphabet and Nvidia had wins larger than losses. Microsoft’s average win was $433 against an average loss of $134, which is where its 7.02 profit factor comes from. The re-run, measured in percent per trade, had Alphabet’s average loss larger than its average win as well. Dollar sizes grow as each account grows, because every trade uses the whole balance, so compare them within one stock, not across stocks. The expectancy page shows how these two halves combine into the money a rule makes per trade.
When it fails
It fails in a slide, because the exit follows price down. In the Python re-run, Tesla closed at $361.62 on 7 February 2025, under its lower line of $365.86 and above its 200-day average of $267.80. The buy filled at $356.21. Tesla kept falling, and by 24 March the 20-day average had dropped from $400.02 to $259.22. The close of $278.39 finally crossed it, and the sale at $283.60 lost 20.47% after costs in 30 sessions. It takes about eight gains of 3% in a row to make that back.
It fails through drawdown even when it wins. Apple’s worst peak-to-trough fall on this rule was 43.59%, and Tesla’s 38.31%, on a rule that held a position in only about 6% to 12% of sessions.
It fails on a gap. With no stop, a stock bought after a close under the band can open far lower the next morning, and the rule holds until the middle line comes back to price.
It fails the tests it was never given. This rule was not rerun on stocks that went sideways or down. Three sister rules from the same script were, and they went from passing almost everywhere on these seven winners to passing once in fifteen runs; the survivorship bias page has that retest. It was never tested out of sample either: no split of the window into a build half and a check half, which the out-of-sample testing page explains.
And it fails as a reason to pick a stock after the fact. Nvidia’s 16 of 17 is what TradingView recorded, but it was measured on a stock that rose more than 400-fold in the window. Choosing Nvidia because of this table repeats the same error.
Related
Bollinger Bands explains the bands themselves and why a touch of one is not a signal on its own, and how to use Bollinger Bands covers reading their width. Mean reversion is the idea this rule bets on. The win rate page covers why 72% alone says little, and buy-and-hold is the benchmark this rule lost to on every stock tested.
Count the trades before you read the win rate. A bounce rule that shows 94% on 17 trades tells you less than a plain 60% on 200, and I would test it on the stock I actually trade before putting money behind it.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money.