Bollinger/Keltner squeezelong
Backtest Results @ BTCUSD • 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 13.9 months of BTCUSD • 1 Hour (Bitcoin vs USD, Coinbase Pro (GDAX)) data, from May 23, 2024 to July 13, 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 13.9 months of BTCUSD • 1 Hour candles. This backtest resulted in 161 positions, with the average win rate of 42% and reward-risk ratio of 1.72. If you assume that 1.72 reward-to-risk ratio holds, you need a minimum win rate of 36.8 to be profitable. So you're looking good so far. The key metrics are as follows:

  1. Total Return: Total Return: 19.10% vs 71.40% for the asset
  2. Max Drawdown: Max Drawdown: -21.50% vs -31.00% for the asset
  3. Exposure: Exposure: 24.60% time in the market
  4. Win Rate: Win Rate: 42.0%, vs 36.8% minimum
  5. Reward/Risk Ratio: Reward/Risk Ratio: 1.72

With that exposure in mind, you can tell that for 25% time-in-market, you get 26.75% of the asset upside potential, and 69.35% 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 @ BTCUSD • 1 Hour (19.1%) backtest results explained by Mike, Sarah

Mike

Author

Yo fam, this squeeze strategy is looking pretty interesting! 🚀 The numbers are giving us some mixed signals but there's definitely potential here.

Looking at the core stats, we're working with a decent sample size of 161 trades over 13.9 months, which is solid for getting reliable data. The 42% win rate might look a bit low at first, but check this out - our R/R ratio is 1.72 which means we're actually making more on our winners than we're losing on our losers! That's why we're still profitable despite fewer winning trades. Plus, we've got a healthy 41.63% cushion above the minimum required win rate, which is straight fire! 🔥

The downside is we're underperforming buy & hold (19.1% vs 71.4%), but hey, we're only exposed to the market 24.6% of the time, which means way less risk and stress. That -21.5% max drawdown is a bit scary though - might need to tighten up those stop losses. The monthly trade frequency of 23.2 trades seems pretty sweet for us part-time traders juggling Wendy's shifts! 💪

All in all, I'd say this strategy has potential but might need some tweaking. Maybe we could work on reducing that drawdown while keeping the solid R/R ratio. Not financial advice though, just a fellow degen sharing thoughts! 🍗📈

Sarah

Author

Madre mía, this strategy is a complete disaster! The only reason it shows any profit at all is because we're in a bull market - just look at that pathetic 19.1% return when buy & hold gave 71.4%! You're basically throwing money away.

The win rate is absolutely terrible - 42%? Are you kidding me? Even with a decent risk/reward ratio of 1.72, you're still underperforming the market by a massive margin. And that drawdown of -21.5% is just waiting to wipe out your account. The Sharpe and Sortino ratios are embarassing - basically telling you there's no skill here, just random luck.

Look at those streaks - 8 losses in a row! ¡Dios mío! You would need nerves of steel to trade this garbage, and for what? To make less money than if you just bought and held? The market exposure of 24.6% shows you're missing most of the upward moves while still managing to catch the downturns. ¡Qué desastre!

I suggest you either completely rebuild this strategy from scratch or save yourself the trouble and just buy and hold. This is not a strategy - it's a recipe for frustration and lost money.

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

Total Trades161Net Profit19.1%Buy & Hold Profit71.4%
Win Rate42%Reward/Risk Ratio1.72Max Drawdown-21.5%
Asset Max Drawdown-31.0%Exposure24.6%Avg Candles in Position14.3
Sharpe Ratio0.20Sortino Ratio-0.19Realized Volatility22.75%
Max Winning Streak6Avg Winning Streak1.8Max Losing Streak8
Avg Losing Streak2.5Avg Trades per Month23.2Avg Trades per Day0.8
Return Std Dev1.8Loss Std Dev0.9Win Std Dev1.7
Expectancy0.1Beta0.19

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