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.
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.
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:
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.
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)
Any of the following: # Papa 60min Chart(close) < 60min Bollinger Bands ® (20, 2, 2, 0, close), Middle
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! 🎯
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!
Total Trades | 161 | Net Profit | 4.9% | Buy & Hold Profit | 8.2% |
Win Rate | 41% | Reward/Risk Ratio | 1.89 | Max Drawdown | -2.8% |
Asset Max Drawdown | -9.0% | Exposure | 25.8% | Avg Candles in Position | 14.3 |
Sharpe Ratio | -0.42 | Sortino Ratio | -0.25 | Realized Volatility | 3.16% |
Max Winning Streak | 4 | Avg Winning Streak | 1.6 | Max Losing Streak | 9 |
Avg Losing Streak | 2.2 | Avg Trades per Month | 16.5 | Avg Trades per Day | 0.6 |
Return Std Dev | 0.4 | Loss Std Dev | 0.1 | Win Std Dev | 0.4 |
Expectancy | 0.2 | Beta | 0.2 |
backtest | exposure | peformance vs asset | drawdown vs asset | win% | reward/risk |
---|---|---|---|---|---|
BTCUSD • 1 Minute | 13% | (0.2%/9.8%) 0.02x | (-0.4%/-1.6%) 0.25x | 49 | 1.2 |
EURUSD • 1 Minute | 17% | (-0.1%/-0.9%) 0.11x | (-0.5%/-1.2%) 0.42x | 28 | 2.4 |
GLD • 1 Minute | 18% | (3.6%/0.0%) Infinityx | (-1.0%/-5.5%) 0.18x | 35 | 4.0 |
NVDA • 1 Minute | 24% | (8.1%/16.7%) 0.49x | (-1.8%/-4.4%) 0.41x | 43 | 2.4 |
SPY • 1 Minute | 23% | (1.0%/4.6%) 0.22x | (-1.6%/-2.1%) 0.76x | 33 | 2.4 |
TSLA • 1 Minute | 23% | (-14.5%/-10.3%) 1.41x | (-15.5%/-21.4%) 0.72x | 28 | 1.3 |
WMT • 1 Minute | 18% | (-3.8%/-5.4%) 0.70x | (-3.9%/-6.4%) 0.61x | 31 | 1.4 |
BTCUSD • 10 Minutes | 19% | (1.0%/27.2%) 0.04x | (-6.3%/-12.1%) 0.52x | 35 | 1.9 |
EURUSD • 10 Minutes | 24% | (-0.3%/6.5%) -0.05x | (-4.3%/-4.3%) 1.00x | 30 | 2.3 |
GLD • 10 Minutes | 19% | (-4.0%/43.7%) -0.09x | (-8.0%/-8.3%) 0.96x | 37 | 1.4 |
NVDA • 10 Minutes | 25% | (-12.1%/32.9%) -0.37x | (-24.9%/-42.8%) 0.58x | 36 | 1.6 |
SPY • 10 Minutes | 26% | (-0.3%/14.3%) -0.02x | (-5.6%/-20.7%) 0.27x | 38 | 1.6 |
TSLA • 10 Minutes | 24% | (4.7%/59.0%) 0.08x | (-32.8%/-55.3%) 0.59x | 40 | 1.6 |
WMT • 10 Minutes | 27% | (17.3%/40.1%) 0.43x | (-6.2%/-23.8%) 0.26x | 44 | 1.9 |
BTCUSD • 1 Hour | 25% | (19.1%/71.4%) 0.27x | (-21.5%/-31.0%) 0.69x | 42 | 1.7 |
EURUSD • 1 Hour | 26% | (4.9%/8.2%) 0.60x | (-2.8%/-9.0%) 0.31x | 41 | 1.9 |
GLD • 1 Hour | 16% | (6.2%/117.6%) 0.05x | (-18.6%/-22.2%) 0.84x | 42 | 1.6 |
NVDA • 1 Hour | 26% | (364.4%/3126.3%) 0.12x | (-34.2%/-68.0%) 0.50x | 49 | 2.5 |
SPY • 1 Hour | 22% | (8.9%/106.7%) 0.08x | (-12.4%/-35.1%) 0.35x | 41 | 1.7 |
TSLA • 1 Hour | 21% | (505.6%/1395.5%) 0.36x | (-34.5%/-75.1%) 0.46x | 43 | 3.1 |
WMT • 1 Hour | 25% | (25.8%/138.2%) 0.19x | (-9.3%/-26.9%) 0.35x | 46 | 1.6 |
BTCUSD • Daily | 28% | (2515.4%/67440.2%) 0.04x | (-51.5%/-83.8%) 0.61x | 45 | 4.2 |
EURUSD • Daily | 25% | (5.2%/10.8%) 0.48x | (-9.1%/-23.3%) 0.39x | 39 | 1.9 |
GLD • Daily | 17% | (13.2%/595.1%) 0.02x | (-21.1%/-45.3%) 0.47x | 39 | 1.9 |
NVDA • Daily | 26% | (577.6%/373678.5%) 0.00x | (-51.4%/-90.0%) 0.57x | 43 | 2.5 |
SPY • Daily | 22% | (14.1%/1316.3%) 0.01x | (-39.4%/-56.7%) 0.69x | 39 | 1.9 |
TSLA • Daily | 24% | (1451.6%/24185.2%) 0.06x | (-38.8%/-75.0%) 0.52x | 47 | 3.9 |
WMT • Daily | 26% | (-44.0%/9978.0%) -0.00x | (-74.7%/-50.6%) 1.48x | 36 | 1.6 |