Bollinger bands pierce (long)long
Backtest Results @ SPY • 1 Hour

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.

Equity Curve

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.

Equity Curve
Strategy
Asset
Strategy Drawdown
Asset Drawdown

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:

  1. Total Return: Total Return: 31.90% vs 106.70% for the asset
  2. Max Drawdown: Max Drawdown: -11.20% vs -35.10% for the asset
  3. Exposure: Exposure: 35.90% time in the market
  4. Win Rate: Win Rate: 46.0%, vs 38.2% minimum
  5. Reward/Risk Ratio: Reward/Risk Ratio: 1.62

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.

Bollinger bands pierce (long): enter a position when

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

Bollinger bands pierce (long): exit a position when

All of the following: # Oscar
  60min Chart(close) < 60min Bollinger Bands ® (20, 2, 2, 0, close), Middle

Bollinger bands pierce (long) @ SPY • 1 Hour (31.9%) backtest results explained by Mike

Mike

Author

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! 🚗

Tabular metrics of Bollinger bands pierce (long) backtested on SPY • 1 Hour

Total Trades184Net Profit31.9%Buy & Hold Profit106.7%
Win Rate46%Reward/Risk Ratio1.62Max Drawdown-11.2%
Asset Max Drawdown-35.1%Exposure35.9%Avg Candles in Position18.5
Sharpe Ratio0.40Sortino Ratio0.53Realized Volatility7.32%
Max Winning Streak4Avg Winning Streak1.7Max Losing Streak8
Avg Losing Streak2.0Avg Trades per Month5.3Avg Trades per Day0.2
Return Std Dev1.4Loss Std Dev0.7Win Std Dev1.2
Expectancy0.2Beta0.18

All backtests for Bollinger bands pierce (long)

backtestexposurepeformance vs assetdrawdown vs assetwin%reward/risk
BTCUSDT • 1 Minute
24%(6.4%/8.9%) 0.72x(-2.3%/-1.9%) 1.21x452.9
EURUSD • 1 Minute
28%(0.2%/-0.9%) -0.22x(-0.6%/-1.2%) 0.50x342.1
GLD • 1 Minute
30%(2.6%/0.0%) Infinityx(-1.9%/-5.5%) 0.35x402.1
NVDA • 1 Minute
29%(10.9%/16.7%) 0.65x(-2.1%/-4.4%) 0.48x422.5
SPY • 1 Minute
30%(1.2%/4.6%) 0.26x(-1.9%/-2.1%) 0.90x342.2
TSLA • 1 Minute
31%(-15.1%/-10.3%) 1.47x(-16.7%/-21.4%) 0.78x311.5
WMT • 1 Minute
26%(-3.3%/-5.4%) 0.61x(-4.0%/-6.4%) 0.63x321.6
BTCUSDT • 10 Minutes
27%(7.2%/26.3%) 0.27x(-4.8%/-12.1%) 0.40x382.1
EURUSD • 10 Minutes
32%(2.3%/6.8%) 0.34x(-2.7%/-4.3%) 0.63x362.1
GLD • 10 Minutes
38%(6.0%/43.7%) 0.14x(-9.8%/-8.3%) 1.18x431.6
NVDA • 10 Minutes
33%(8.1%/32.9%) 0.25x(-26.2%/-42.8%) 0.61x441.4
SPY • 10 Minutes
33%(3.6%/14.3%) 0.25x(-7.7%/-20.7%) 0.37x421.6
TSLA • 10 Minutes
31%(4.5%/59.0%) 0.08x(-37.6%/-55.3%) 0.68x391.7
WMT • 10 Minutes
34%(25.4%/40.1%) 0.63x(-6.8%/-23.8%) 0.29x432.1
BTCUSDT • 1 Hour
30%(9.3%/71.3%) 0.13x(-17.2%/-30.6%) 0.56x381.8
EURUSD • 1 Hour
32%(6.5%/8.4%) 0.77x(-4.2%/-9.0%) 0.47x401.9
GLD • 1 Hour
35%(21.0%/117.6%) 0.18x(-28.2%/-22.2%) 1.27x411.8
NVDA • 1 Hour
36%(521.6%/3126.3%) 0.17x(-36.1%/-68.0%) 0.53x472.3
SPY • 1 Hour
36%(31.9%/106.7%) 0.30x(-11.2%/-35.1%) 0.32x461.6
TSLA • 1 Hour
34%(2572.3%/1395.5%) 1.84x(-29.3%/-75.1%) 0.39x463.1
WMT • 1 Hour
34%(62.8%/138.2%) 0.45x(-14.6%/-26.9%) 0.54x432.1
BTCUSDT • Daily
36%(320.8%/1335.5%) 0.24x(-61.6%/-76.6%) 0.80x403.2
EURUSD • Daily
29%(3.2%/10.8%) 0.30x(-10.2%/-23.3%) 0.44x302.7
GLD • Daily
33%(106.4%/595.1%) 0.18x(-23.8%/-45.3%) 0.53x452.1
NVDA • Daily
39%(9137.3%/373678.5%) 0.02x(-67.9%/-90.0%) 0.75x502.5
SPY • Daily
32%(32.3%/1316.3%) 0.02x(-33.3%/-56.7%) 0.59x421.7
TSLA • Daily
35%(8915.3%/24185.2%) 0.37x(-40.7%/-75.0%) 0.54x455.0
WMT • Daily
34%(-20.9%/9978.0%) -0.00x(-65.4%/-50.6%) 1.29x371.7