Bollinger/Keltner squeezelong
Backtest Results @ SPY • Daily

This strategy buys whenever Bollinger Bands is squeezed into Kelther Channel. This normally indicates that the market is going sideways. This strategy then sells whenever price goes below the Bollinger Bands middle line. The idea is to buy during the obviously sideways market, hoping for it to burst.

Equity Curve

Backtest covers 32.5 years of SPY • Daily (SPDR S&P 500) data, from January 29, 1993 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/Keltner squeeze on 32.5 years of SPY • Daily candles. This backtest resulted in 108 positions, with the average win rate of 39% and reward-risk ratio of 1.86. If you assume that 1.86 reward-to-risk ratio holds, you need a minimum win rate of 35.0 to be profitable. So you're looking good so far. The key metrics are as follows:

  1. Total Return: Total Return: 14.10% vs 1316.30% for the asset
  2. Max Drawdown: Max Drawdown: -39.40% vs -56.70% for the asset
  3. Exposure: Exposure: 22.40% time in the market
  4. Win Rate: Win Rate: 39.0%, vs 35.0% minimum
  5. Reward/Risk Ratio: Reward/Risk Ratio: 1.86

With that exposure in mind, you can tell that for 22% time-in-market, you get 1.07% of the asset upside potential, and 69.49% of the asset downside potential.

Bollinger/Keltner squeeze: enter a position when

All of the following: # Whiskey
  D Chart(close) (2 candles ago) < D Bollinger Bands ® (20, 2, 2, 0, close), Up (2 candles ago)
  D Chart(close) (1 candles ago) > D Bollinger Bands ® (20, 2, 2, 0, close), Up (1 candles ago)
  D Bollinger Bands ® (20, 2, 2, 0, close), Up (1 candles ago) < D Keltner Channel (20, SMA, 10, 2, 0, close), Up (1 candles ago)
  D BB (20, 2, 2, 0, close) (1 candles ago) > D Keltner (20, SMA, 10, 2, 0, close) (1 candles ago)

Bollinger/Keltner squeeze: exit a position when

Any of the following: # Papa
  D Chart(close) < D Bollinger Bands ® (20, 2, 2, 0, close), Middle

Bollinger/Keltner squeeze @ SPY • Daily (14.1%) backtest results explained by Mike, Sarah

Mike

Author

Yo fam, this squeeze play looks kinda sus tbh 🤔 The win rate's only 39% which ain't great, but check this out - when it wins, it wins BIG with 2.62% average gains vs 1.41% losses. That's some thicc risk/reward ratio right there! 💪

The strategy's only got us in the market 22.4% of the time which is pretty conservative, and it's only doing like 0.5 trades per month. That's not exactly YOLO material my dudes, but maybe that's not so bad considering the market's been acting crazier than my Wendy's manager lately 😅 The max drawdown of -39.4% is kinda scary though ngl, that's some serious diamond hands territory. 💎🙌

Overall, this strategy's giving me more red flags than my ex's Instagram. The total return of 14.1% over 32 years vs buy & hold's 1316.3% is straight up depressing fam. But hey, if you're looking for a super selective strategy with decent R/R when it hits, this might be worth paper trading. Just don't bet your entire Wendy's paycheck on it! 🍔 DYOR and maybe consider some modifications to boost that win rate. Not financial advice, just a fellow degen's thoughts! 🚀

Sarah

Author

Madre mía, this strategy is complete garbage! Only an idiota would consider trading this. Let me tell you why I'm being so harsh.

First, look at that pathetic 14.1% total return over 32.5 years when buy & hold gave 1316.3%! You would have done better putting your money under your mattress, coño! The strategy shows negative Sharpe and Sortino ratios - it's literally worse than doing nothing. And that 39.4% maximum drawdown? Absolutamente terrible!

The only slightly positive thing I see is the Risk/Reward ratio of 1.86 and the fact that the win rate is above the minimal sufficient rate. But mira, with only 108 trades over 32 years (that's like 3 trades per year!), these numbers are barely meaningful. You're basically sitting out most of the market moves like a scared gatito.

My professional advice? Throw this strategy in la basura where it belongs. It's clear whoever designed this doesn't understand basic market mechanics. The entry conditions are overly complicated for such poor results. Go back to the drawing board and stop wasting time with such mediocre strategies.

Tabular metrics of Bollinger/Keltner squeeze backtested on SPY • Daily

Total Trades108Net Profit14.1%Buy & Hold Profit1316.3%
Win Rate39%Reward/Risk Ratio1.86Max Drawdown-39.4%
Asset Max Drawdown-56.7%Exposure22.4%Avg Candles in Position15.9
Sharpe Ratio-0.59Sortino Ratio-0.53Realized Volatility4.60%
Max Winning Streak6Avg Winning Streak1.6Max Losing Streak7
Avg Losing Streak2.5Avg Trades per Month0.5Avg Trades per Day0.0
Return Std Dev2.7Loss Std Dev1.0Win Std Dev2.8
Expectancy0.1Beta0.1

All backtests for Bollinger/Keltner squeeze

backtestexposurepeformance vs assetdrawdown vs assetwin%reward/risk
BTCUSD • 1 Minute
13%(0.2%/9.8%) 0.02x(-0.4%/-1.6%) 0.25x491.2
EURUSD • 1 Minute
17%(-0.1%/-0.9%) 0.11x(-0.5%/-1.2%) 0.42x282.4
GLD • 1 Minute
18%(3.6%/0.0%) Infinityx(-1.0%/-5.5%) 0.18x354.0
NVDA • 1 Minute
24%(8.1%/16.7%) 0.49x(-1.8%/-4.4%) 0.41x432.4
SPY • 1 Minute
23%(1.0%/4.6%) 0.22x(-1.6%/-2.1%) 0.76x332.4
TSLA • 1 Minute
23%(-14.5%/-10.3%) 1.41x(-15.5%/-21.4%) 0.72x281.3
WMT • 1 Minute
18%(-3.8%/-5.4%) 0.70x(-3.9%/-6.4%) 0.61x311.4
BTCUSD • 10 Minutes
19%(1.0%/27.2%) 0.04x(-6.3%/-12.1%) 0.52x351.9
EURUSD • 10 Minutes
24%(-0.3%/6.5%) -0.05x(-4.3%/-4.3%) 1.00x302.3
GLD • 10 Minutes
19%(-4.0%/43.7%) -0.09x(-8.0%/-8.3%) 0.96x371.4
NVDA • 10 Minutes
25%(-12.1%/32.9%) -0.37x(-24.9%/-42.8%) 0.58x361.6
SPY • 10 Minutes
26%(-0.3%/14.3%) -0.02x(-5.6%/-20.7%) 0.27x381.6
TSLA • 10 Minutes
24%(4.7%/59.0%) 0.08x(-32.8%/-55.3%) 0.59x401.6
WMT • 10 Minutes
27%(17.3%/40.1%) 0.43x(-6.2%/-23.8%) 0.26x441.9
BTCUSD • 1 Hour
25%(19.1%/71.4%) 0.27x(-21.5%/-31.0%) 0.69x421.7
EURUSD • 1 Hour
26%(4.9%/8.2%) 0.60x(-2.8%/-9.0%) 0.31x411.9
GLD • 1 Hour
16%(6.2%/117.6%) 0.05x(-18.6%/-22.2%) 0.84x421.6
NVDA • 1 Hour
26%(364.4%/3126.3%) 0.12x(-34.2%/-68.0%) 0.50x492.5
SPY • 1 Hour
22%(8.9%/106.7%) 0.08x(-12.4%/-35.1%) 0.35x411.7
TSLA • 1 Hour
21%(505.6%/1395.5%) 0.36x(-34.5%/-75.1%) 0.46x433.1
WMT • 1 Hour
25%(25.8%/138.2%) 0.19x(-9.3%/-26.9%) 0.35x461.6
BTCUSD • Daily
28%(2515.4%/67440.2%) 0.04x(-51.5%/-83.8%) 0.61x454.2
EURUSD • Daily
25%(5.2%/10.8%) 0.48x(-9.1%/-23.3%) 0.39x391.9
GLD • Daily
17%(13.2%/595.1%) 0.02x(-21.1%/-45.3%) 0.47x391.9
NVDA • Daily
26%(577.6%/373678.5%) 0.00x(-51.4%/-90.0%) 0.57x432.5
SPY • Daily
22%(14.1%/1316.3%) 0.01x(-39.4%/-56.7%) 0.69x391.9
TSLA • Daily
24%(1451.6%/24185.2%) 0.06x(-38.8%/-75.0%) 0.52x473.9
WMT • Daily
26%(-44.0%/9978.0%) -0.00x(-74.7%/-50.6%) 1.48x361.6