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 5.7 years of SPY • 1 Hour (SPDR S&P 500) data, from October 25, 2019 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 5.7 years of SPY • 1 Hour candles. This backtest resulted in 184 positions, with the average win rate of 46% and reward-risk ratio of 1.62. If you assume that 1.62 reward-to-risk ratio holds, you need a minimum win rate of 38.2 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 36% time-in-market, you get 29.90% of the asset upside potential, and 31.91% of the asset downside potential.
All of the following: # Echo 60min Chart(close) (1 candles ago) < 60min Bollinger Bands ® (20, 2, 2, 0, close), Up (1 candles ago) 60min Chart(close) > 60min Bollinger Bands ® (20, 2, 2, 0, close), Up
All of the following: # Oscar 60min Chart(close) < 60min Bollinger Bands ® (20, 2, 2, 0, close), Middle
Yo fam, looking at these Bollinger Band results and I'm actually kinda vibing with it! 🚀 Not gonna lie, that 46% win rate with a 1.62 risk/reward ratio is pretty sweet - means we're letting winners run and cutting losses quick like a true degenerate (in a good way)!
The strategy is giving us some decent cushion with that 45% win rate leeway above the minimum needed, which means we're not walking on a tightrope here. Love to see that kind of safety net when I'm YOLOing my Wendy's checks 💎🙌. The max drawdown at -11.2% is way better than the market's -35.1%, so we're not getting absolutely rekt during the bad times.
Here's the thing though apes - while the 31.9% total gain is nice, buy & hold crushed us with 106.7%. But hear me out - we're only exposed to the market 35.9% of the time, meaning we can use that free capital for other plays! Plus those Sharpe/Sortino ratios aren't complete trash, showing we're getting decent returns for the risk we're taking. This isn't exactly a moonshot strategy 🌕, but it's solid enough that I wouldn't mind throwing some tendies at it as part of a larger portfolio. Just don't expect this to be your ticket to a Lambo! 🚗
Total Trades | 184 | Net Profit | 31.9% | Buy & Hold Profit | 106.7% |
Win Rate | 46% | Reward/Risk Ratio | 1.62 | Max Drawdown | -11.2% |
Asset Max Drawdown | -35.1% | Exposure | 35.9% | Avg Candles in Position | 18.5 |
Sharpe Ratio | 0.40 | Sortino Ratio | 0.53 | Realized Volatility | 7.32% |
Max Winning Streak | 4 | Avg Winning Streak | 1.7 | Max Losing Streak | 8 |
Avg Losing Streak | 2.0 | Avg Trades per Month | 5.3 | Avg Trades per Day | 0.2 |
Return Std Dev | 1.4 | Loss Std Dev | 0.7 | Win Std Dev | 1.2 |
Expectancy | 0.2 | Beta | 0.18 |
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 |