Bollinger/Keltner squeezelong
Backtest Results @ SPY • 1 Hour

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 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/Keltner squeeze on 5.7 years of SPY • 1 Hour candles. This backtest resulted in 128 positions, with the average win rate of 41% and reward-risk ratio of 1.71. If you assume that 1.71 reward-to-risk ratio holds, you need a minimum win rate of 36.9 to be profitable. So you're looking good so far. The key metrics are as follows:

  1. Total Return: Total Return: 8.90% vs 106.70% for the asset
  2. Max Drawdown: Max Drawdown: -12.40% vs -35.10% for the asset
  3. Exposure: Exposure: 22.10% time in the market
  4. Win Rate: Win Rate: 41.0%, vs 36.9% minimum
  5. Reward/Risk Ratio: Reward/Risk Ratio: 1.71

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

Bollinger/Keltner squeeze: enter a position when

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

Bollinger/Keltner squeeze: exit a position when

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

Bollinger/Keltner squeeze @ SPY • 1 Hour (8.9%) backtest results explained by Alex C, Mike, Sarah

Alex C

Author

The strategy looks mathematically valid but not particularly impressive. The win rate of 41% combined with a risk/reward ratio of 1.71 gives us positive expectancy of 0.1, which is technically profitable but quite weak. The good news is that the actual win rate is 4% above the minimal required win rate - this provides some safety margin.

However, the performance metrics are concerning. A Sharpe ratio of -0.39 and Sortino of -0.11 indicate poor risk-adjusted returns. The strategy's net profit of 8.9% over 5.7 years significantly underperforms buy & hold at 106.7%. With market exposure of only 22.1%, one could argue the strategy is too conservative, but then the max drawdown of -12.4% is still quite high for such limited exposure.

I notice the average trade frequency is quite low at 3.7 trades per month. This makes the statistical significance questionable despite having 128 total trades. The strategy also shows concerning streaks - maximum losing streak of 8 trades versus maximum winning streak of 4 trades. This asymmetry suggests the strategy might not be robust enough for real trading conditions. I would recommend either adjusting the entry/exit parameters or exploring other approaches entirely.

Mike

Author

Yo fam, let me break down this Bollinger/Keltner squeeze strategy for you! 🚀

The stats are showing some interesting potential here. With a 41% win rate and a solid 1.71 risk/reward ratio, we're actually running 4063% above the minimal required win rate - that's pretty fire! 🔥 The average winner brings in 1.26% while average losses are contained at -0.74%, which isn't too shabby for a system trading SPY on the hourly.

But here's where it gets real - the strategy's total return of 8.9% over 5.7 years is kinda weak sauce compared to buy & hold's 106.7%. 😬 The market exposure is only 22.1% though, which means we're not taking on full market risk. This could be clutch during bear markets! Plus, with only 3.7 trades per month, we're not getting killed on commissions at Wendy's paycheck levels.

Listen up though - those 8-trade losing streaks can be rough on the mental game. You gotta have diamond hands 💎🙌 to stick with it through the drawdowns. But if you can handle the volatility and use proper position sizing, this could be a decent piece of a larger trading strategy. Just don't YOLO your whole account on this one system! Keep it real and trade safe, fam! 🚀

Sarah

Author

Madre mía, this strategy is absolute garbage! The numbers are screaming "stay away" louder than my abuela when she catches someone touching her paella pan.

Look at that pathetic 8.9% total return over 5.7 years while the market gave 106.7%! You would have made more money putting your cash under your mattress, por dios! The win rate of 41% is technically above the minimal required 36.9%, but that's like being proud of passing an exam with D-. And that -12.4% drawdown? Absolutamente terrible for such mediocre returns!

The market exposure is only 22.1%, which means you're sitting out most of the time like a scared gatito, and when you do trade, you're doing it wrong. The negative Sharpe and Sortino ratios are just embarassing - it means you're taking stupid risks for subpar returns. This is like trying to make tortilla española without eggs!

If you're actually considering trading this strategy, you should probably also consider buying lottery tickets - at least those are more entertaining ways to lose money. The only positive thing I can say is that with only 3.7 trades per month, you won't lose your money very quickly.

Tabular metrics of Bollinger/Keltner squeeze backtested on SPY • 1 Hour

Total Trades128Net Profit8.9%Buy & Hold Profit106.7%
Win Rate41%Reward/Risk Ratio1.71Max Drawdown-12.4%
Asset Max Drawdown-35.1%Exposure22.1%Avg Candles in Position16.3
Sharpe Ratio-0.39Sortino Ratio-0.11Realized Volatility5.22%
Max Winning Streak4Avg Winning Streak1.7Max Losing Streak8
Avg Losing Streak2.5Avg Trades per Month3.7Avg Trades per Day0.1
Return Std Dev1.4Loss Std Dev0.7Win Std Dev1.2
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