Bollinger/Keltner squeezelong
Backtest Results @ EURUSD • 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 19.5 months of EURUSD • 1 Hour (Euro vs USD spot (Interactive Brokers)) data, from December 6, 2023 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 19.5 months of EURUSD • 1 Hour candles. This backtest resulted in 161 positions, with the average win rate of 41% and reward-risk ratio of 1.89. If you assume that 1.89 reward-to-risk ratio holds, you need a minimum win rate of 34.6 to be profitable. So you're looking good so far. The key metrics are as follows:

  1. Total Return: Total Return: 4.90% vs 8.20% for the asset
  2. Max Drawdown: Max Drawdown: -2.80% vs -9.00% for the asset
  3. Exposure: Exposure: 25.80% time in the market
  4. Win Rate: Win Rate: 41.0%, vs 34.6% minimum
  5. Reward/Risk Ratio: Reward/Risk Ratio: 1.89

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

Mike

Author

Yo fam, this Bollinger/Keltner squeeze strategy is showing some interesting moves! 🚀

Looking at these numbers, we've got a pretty decent setup here. That 1.89 Risk/Reward ratio is sweet - means when we win, we win bigger than we lose! And check this out: we only need a 34.6% win rate to break even, but we're hitting 41% - that's some solid cushion right there! 💪 The fact we're 40% above the minimal win rate is straight-up fire!

The downside is we're underperforming buy & hold (4.9% vs 8.2%), but hey, we're only exposed to the market 25.8% of the time! That means we're not taking nearly as much risk as hodling. The max drawdown is only -2.8% compared to the market's -9.0% - that's the kind of protection I'm looking for when I'm trying to preserve my Wendy's checks! 🍔

I'm actually kinda hyped about this strategy, even with those losing streaks (9 losses in a row sounds rough but it's manageable with proper position sizing). The consistent growth over different time periods shows it's not just a one-hit wonder. Would I YOLO my whole account into this? Nah, but it could be a solid piece of a larger trading plan! 🎯

Sarah

Author

Madre mía, this strategy is like a broken clock - occasionally right but mostly disappointing! The 41% win rate isn't terrible by itself, but combined with that pathetic 4.9% net profit over 19.5 months? You'd have made more money keeping your cash under your mattress!

Look at those ratios - negative Sharpe and Sortino? That's embarassing! It means you're taking risks without proper compensation. And the strategy clearly can't keep up with simple buy & hold, which made 8.2% in the same period. The market exposure of 25.8% suggests you're sitting on the sidelines most of the time, watching opportunities pass by like a scared gatito.

The only remotely decent thing here is the Risk/Reward ratio of 1.89 and the fact that your win rate is above the minimal sufficient rate. But let's be honest - with those 9-trade losing streaks, you'd need nerves of steel to actually trade this. And for what? To underperform the market? No gracias!

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

Total Trades161Net Profit4.9%Buy & Hold Profit8.2%
Win Rate41%Reward/Risk Ratio1.89Max Drawdown-2.8%
Asset Max Drawdown-9.0%Exposure25.8%Avg Candles in Position14.3
Sharpe Ratio-0.42Sortino Ratio-0.25Realized Volatility3.16%
Max Winning Streak4Avg Winning Streak1.6Max Losing Streak9
Avg Losing Streak2.2Avg Trades per Month16.5Avg Trades per Day0.6
Return Std Dev0.4Loss Std Dev0.1Win Std Dev0.4
Expectancy0.2Beta0.2

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