Bollinger/Keltner squeezelong
Backtest Results @ EURUSD • 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 9.6 years of EURUSD • Daily (Euro vs USD spot (Interactive Brokers)) data, from December 2, 2015 to July 10, 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 9.6 years of EURUSD • Daily candles. This backtest resulted in 38 positions, with the average win rate of 39% and reward-risk ratio of 1.93. If you assume that 1.93 reward-to-risk ratio holds, you need a minimum win rate of 34.1 to be profitable. So you're looking good so far. However, 38 positions is a small sample size, so take the results with a huge grain of salt. The key metrics are as follows:

  1. Total Return: Total Return: 5.20% vs 10.80% for the asset
  2. Max Drawdown: Max Drawdown: -9.10% vs -23.30% for the asset
  3. Exposure: Exposure: 25.10% time in the market
  4. Win Rate: Win Rate: 39.0%, vs 34.1% minimum
  5. Reward/Risk Ratio: Reward/Risk Ratio: 1.93

With that exposure in mind, you can tell that for 25% time-in-market, you get 48.15% of the asset upside potential, and 39.06% 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 @ EURUSD • Daily (5.2%) backtest results explained by Mike, Sarah

Mike

Author

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

The strategy is giving some interesting vibes with that 39% win rate and a solid 1.93 risk/reward ratio. What's really catching my eye is that win rate leeway - we're crushing the minimal required win rate by like 3800%! That's some serious breathing room right there 💪 The average winner is pulling in 1.92% while average losses are contained at -0.99%, which isn't too shabby for forex.

However, keeping it real, that 25% market exposure and only 38 trades over 9.6 years is pretty low-key - we're talking less than one trade per month 😴 The max drawdown of -9.1% isn't terrible for forex, but that -1.27 Sharpe ratio is giving me some pause. Also worth noting that buy & hold actually outperformed this strategy (10.8% vs 5.2%).

Listen up though - this could be a decent base to build on! The risk management looks solid, and those winning trades are nearly double the size of losing ones. Maybe we could juice it up by finding more trade opportunities or combining it with other indicators? Just remember, this is Wendy's money we're playing with, so always gotta keep that risk in check! 🍔💎🙌

Sarah

Author

This strategy is absolute garbage and anyone suggesting to trade it should be ashamed. Let me tell you why.

First, 38 trades in 9.6 years? That's not even 4 trades per year! You're basically sitting on your hands doing nothing most of the time. And when you finally do trade, you lose 61% of the time. Brilliant plan to lose money slowly!

The strategy underperforms buy & hold by more than 50% (5.2% vs 10.8%). Why would anyone waste their time with this? And look at those pathetic ratios - Sharpe at -1.27 and Sortino at -1.12. These are not just bad, they're embarrassingly bad.

The only remotely positive thing is the Risk/Reward ratio of 1.93, but what good is that when you're losing most trades and barely trading at all? The 8-trade losing streak is particularly concerning - imagine explaining that to your boss or clients.

My honest advice? Delete this strategy and start over. This is not even worth trying to fix. It's like trying to save the Titanic with a bucket - pointless and waste of time.

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

Total Trades38Net Profit5.2%Buy & Hold Profit10.8%
Win Rate39%Reward/Risk Ratio1.93Max Drawdown-9.1%
Asset Max Drawdown-23.3%Exposure25.1%Avg Candles in Position14.5
Sharpe Ratio-1.27Sortino Ratio-1.12Realized Volatility3.09%
Max Winning Streak5Avg Winning Streak1.9Max Losing Streak8
Avg Losing Streak2.9Avg Trades per Month0.6Avg Trades per Day0.0
Return Std Dev2.1Loss Std Dev0.7Win Std Dev2.4
Expectancy0.2Beta0.24

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