This stragegy buys when price breaks up from the Bollinger Bands upper band. This is believed to indicate the beginning of a big upmove. It then sells whenever price goes below the Bollinger Bands middle line. See whether buying the Bollinger Bands breakout is a good idea! We've backtested it.
Backtest covers 26.5 years of NVDA • Daily (NVIDIA Corporation) data, from January 22, 1999 to July 11, 2025.
Equity curve is the strategy's performance over time. You should compare it to the asset's Buy & Hold performance. In general, you want the blue area to be well above the gray area.
Drawdown is how much losses (realized or unrealized) the strategy has had if compared to the highest equity peak. Compare this to the asset's drawdown to see whether your strategy does a decent job of isolating you from downside volatility. In general, the red area must be well within the gray area.
So, we have backtested Bollinger bands pierce (long) on 26.5 years of NVDA • Daily candles. This backtest resulted in 133 positions, with the average win rate of 50% and reward-risk ratio of 2.45. If you assume that 2.45 reward-to-risk ratio holds, you need a minimum win rate of 29.0 to be profitable. So you're looking good so far. The key metrics are as follows:
With that exposure in mind, you can tell that for 39% time-in-market, you get 2.45% of the asset upside potential, and 75.44% of the asset downside potential.
All of the following: # Echo D Chart(close) (1 candles ago) < D Bollinger Bands ® (20, 2, 2, 0, close), Up (1 candles ago) D Chart(close) > D Bollinger Bands ® (20, 2, 2, 0, close), Up
All of the following: # Oscar D Chart(close) < D Bollinger Bands ® (20, 2, 2, 0, close), Middle
The results look quite interesting, but I see some major red flags here. First thing that catches my attention is that this strategy heavily underperforms buy & hold - 9137% vs 373678% over 26.5 years. That's a significant difference which makes me question the strategy's effectiveness.
The win rate of 50% combined with a risk/reward ratio of 2.45 looks actually quite decent on paper. This gives us positive expectancy of 0.7, which is not bad at all. However, the max drawdown of 67.9% is extremely concerning - this would be very difficult to handle psychologically and could wipe out accounts using too much leverage. The relatively low market exposure of 39.1% suggests this is quite a selective strategy, which I typically like, but in this case it seems to be missing out on major moves.
I am especially skeptical about the recent performance metrics - those astronomical CAGR numbers in the shorter timeframes are mathematically impossible and suggest there might be issues with the backtest implementation. Also, having only 0.8 trades per month on average means the sample size of 133 trades over 26.5 years is quite small for making statistically significant conclusions. I would need to see more trades to have higher confidence in these metrics.
Total Trades | 133 | Net Profit | 9137.3% | Buy & Hold Profit | 373678.5% |
Win Rate | 50% | Reward/Risk Ratio | 2.45 | Max Drawdown | -67.9% |
Asset Max Drawdown | -90.0% | Exposure | 39.1% | Avg Candles in Position | 18.6 |
Sharpe Ratio | 0.32 | Sortino Ratio | 0.94 | Realized Volatility | 29.66% |
Max Winning Streak | 6 | Avg Winning Streak | 2.0 | Max Losing Streak | 6 |
Avg Losing Streak | 1.9 | Avg Trades per Month | 0.8 | Avg Trades per Day | 0.0 |
Return Std Dev | 16.5 | Loss Std Dev | 4.7 | Win Std Dev | 17.2 |
Expectancy | 0.7 | Beta | 0.31 |
backtest | exposure | peformance vs asset | drawdown vs asset | win% | reward/risk |
---|---|---|---|---|---|
BTCUSDT • 1 Minute | 24% | (6.4%/8.9%) 0.72x | (-2.3%/-1.9%) 1.21x | 45 | 2.9 |
EURUSD • 1 Minute | 28% | (0.2%/-0.9%) -0.22x | (-0.6%/-1.2%) 0.50x | 34 | 2.1 |
GLD • 1 Minute | 30% | (2.6%/0.0%) Infinityx | (-1.9%/-5.5%) 0.35x | 40 | 2.1 |
NVDA • 1 Minute | 29% | (10.9%/16.7%) 0.65x | (-2.1%/-4.4%) 0.48x | 42 | 2.5 |
SPY • 1 Minute | 30% | (1.2%/4.6%) 0.26x | (-1.9%/-2.1%) 0.90x | 34 | 2.2 |
TSLA • 1 Minute | 31% | (-15.1%/-10.3%) 1.47x | (-16.7%/-21.4%) 0.78x | 31 | 1.5 |
WMT • 1 Minute | 26% | (-3.3%/-5.4%) 0.61x | (-4.0%/-6.4%) 0.63x | 32 | 1.6 |
BTCUSDT • 10 Minutes | 27% | (7.2%/26.3%) 0.27x | (-4.8%/-12.1%) 0.40x | 38 | 2.1 |
EURUSD • 10 Minutes | 32% | (2.3%/6.8%) 0.34x | (-2.7%/-4.3%) 0.63x | 36 | 2.1 |
GLD • 10 Minutes | 38% | (6.0%/43.7%) 0.14x | (-9.8%/-8.3%) 1.18x | 43 | 1.6 |
NVDA • 10 Minutes | 33% | (8.1%/32.9%) 0.25x | (-26.2%/-42.8%) 0.61x | 44 | 1.4 |
SPY • 10 Minutes | 33% | (3.6%/14.3%) 0.25x | (-7.7%/-20.7%) 0.37x | 42 | 1.6 |
TSLA • 10 Minutes | 31% | (4.5%/59.0%) 0.08x | (-37.6%/-55.3%) 0.68x | 39 | 1.7 |
WMT • 10 Minutes | 34% | (25.4%/40.1%) 0.63x | (-6.8%/-23.8%) 0.29x | 43 | 2.1 |
BTCUSDT • 1 Hour | 30% | (9.3%/71.3%) 0.13x | (-17.2%/-30.6%) 0.56x | 38 | 1.8 |
EURUSD • 1 Hour | 32% | (6.5%/8.4%) 0.77x | (-4.2%/-9.0%) 0.47x | 40 | 1.9 |
GLD • 1 Hour | 35% | (21.0%/117.6%) 0.18x | (-28.2%/-22.2%) 1.27x | 41 | 1.8 |
NVDA • 1 Hour | 36% | (521.6%/3126.3%) 0.17x | (-36.1%/-68.0%) 0.53x | 47 | 2.3 |
SPY • 1 Hour | 36% | (31.9%/106.7%) 0.30x | (-11.2%/-35.1%) 0.32x | 46 | 1.6 |
TSLA • 1 Hour | 34% | (2572.3%/1395.5%) 1.84x | (-29.3%/-75.1%) 0.39x | 46 | 3.1 |
WMT • 1 Hour | 34% | (62.8%/138.2%) 0.45x | (-14.6%/-26.9%) 0.54x | 43 | 2.1 |
BTCUSDT • Daily | 36% | (320.8%/1335.5%) 0.24x | (-61.6%/-76.6%) 0.80x | 40 | 3.2 |
EURUSD • Daily | 29% | (3.2%/10.8%) 0.30x | (-10.2%/-23.3%) 0.44x | 30 | 2.7 |
GLD • Daily | 33% | (106.4%/595.1%) 0.18x | (-23.8%/-45.3%) 0.53x | 45 | 2.1 |
NVDA • Daily | 39% | (9137.3%/373678.5%) 0.02x | (-67.9%/-90.0%) 0.75x | 50 | 2.5 |
SPY • Daily | 32% | (32.3%/1316.3%) 0.02x | (-33.3%/-56.7%) 0.59x | 42 | 1.7 |
TSLA • Daily | 35% | (8915.3%/24185.2%) 0.37x | (-40.7%/-75.0%) 0.54x | 45 | 5.0 |
WMT • Daily | 34% | (-20.9%/9978.0%) -0.00x | (-65.4%/-50.6%) 1.29x | 37 | 1.7 |