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 69 days of BTCUSD • 10 Minutes (Bitcoin vs USD, Coinbase Pro (GDAX)) data, from May 5, 2025 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 69 days of BTCUSD • 10 Minutes candles. This backtest resulted in 165 positions, with the average win rate of 35% and reward-risk ratio of 1.94. If you assume that 1.94 reward-to-risk ratio holds, you need a minimum win rate of 34.0 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 19% time-in-market, you get 3.68% of the asset upside potential, and 52.07% of the asset downside potential.
All of the following: # Whiskey 10min Chart(close) (2 candles ago) < 10min Bollinger Bands ® (20, 2, 2, 0, close), Up (2 candles ago) 10min Chart(close) (1 candles ago) > 10min Bollinger Bands ® (20, 2, 2, 0, close), Up (1 candles ago) 10min Bollinger Bands ® (20, 2, 2, 0, close), Up (1 candles ago) < 10min Keltner Channel (20, SMA, 10, 2, 0, close), Up (1 candles ago) 10min BB (20, 2, 2, 0, close) (1 candles ago) > 10min Keltner (20, SMA, 10, 2, 0, close) (1 candles ago)
Any of the following: # Papa 10min Chart(close) < 10min Bollinger Bands ® (20, 2, 2, 0, close), Middle
Yo fam, let me break down this squeeze play for you! 🚀
This strategy is giving me mixed vibes tbh. The Win/Loss ratio looks pretty decent at 1.94 (meaning winners are almost twice as big as losers), and we're running at 35% win rate which is actually above the minimal required 34% - that's technically profitable! 💪 The fact we're getting 4-5 trades per day is sweet too, lots of action to work with.
But here's where it gets a bit sus my dudes - we're only up 1% total while BTC itself pumped 27.2% in the same period. That's leaving a lot of gains on the table. The market exposure is pretty low at 18.6%, which means we're missing out on a lot of the action. Those drawdowns aren't too scary (-6.3% max), but those negative Sharpe and Sortino ratios are giving me pause. 📉
Overall, I'd say this strategy has potential as a base but needs some tweaking. Maybe we could adjust those Bollinger/Keltner parameters to catch more of the trend? I'm still stacking my Wendy's checks to trade this kind of setup, but I'd probably paper trade it for a bit first before going full send. Remember, small accounts need careful position sizing! 🎯
Total Trades | 165 | Net Profit | 1.0% | Buy & Hold Profit | 27.2% |
Win Rate | 35% | Reward/Risk Ratio | 1.94 | Max Drawdown | -6.3% |
Asset Max Drawdown | -12.1% | Exposure | 18.6% | Avg Candles in Position | 10.2 |
Sharpe Ratio | -0.56 | Sortino Ratio | -1.02 | Realized Volatility | 14.18% |
Max Winning Streak | 5 | Avg Winning Streak | 1.4 | Max Losing Streak | 8 |
Avg Losing Streak | 2.7 | Avg Trades per Month | 143.5 | Avg Trades per Day | 4.8 |
Return Std Dev | 0.4 | Loss Std Dev | 0.2 | Win Std Dev | 0.5 |
Expectancy | 0.0 | Beta | 0.17 |
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 |