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 5.7 years of GLD • 1 Hour (SPDR Gold Trust) data, from October 25, 2019 to July 11, 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 5.7 years of GLD • 1 Hour candles. This backtest resulted in 98 positions, with the average win rate of 42% and reward-risk ratio of 1.61. If you assume that 1.61 reward-to-risk ratio holds, you need a minimum win rate of 38.3 to be profitable. So you're looking good so far. However, 98 positions is a small sample size, so take the results with a huge grain of salt. The key metrics are as follows:
With that exposure in mind, you can tell that for 16% time-in-market, you get 5.27% of the asset upside potential, and 83.78% 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
The numbers look not convincing to me. The strategy shows significant underperformance compared to buy and hold, which delivered 117.6% while the strategy only made 6.2%. This is a red flag already.
The win rate of 42% combined with a risk/reward ratio of 1.61 mathematically makes sense - the minimal required win rate is 38.3% and we are above that. However, the maximum drawdown of 18.6% is quite high for such low returns. The negative Sharpe and Sortino ratios (-0.66 and -0.62) confirm that the risk-adjusted returns are poor. This suggests the strategy is taking too much risk for the returns it generates.
Looking at the longer timeframe performance, the strategy shows deteriorating results - from +7% over 2 years to -8.6% over 5 years. This pattern makes me worried about the robustness of the strategy. The low trading frequency (2.8 trades per month) also means we don't have enough statistical significance to make strong conclusions about the strategy's true characteristics. In my experience, we need at minimum 200-300 trades to have meaningful statistics.
This strategy is pure garbage, amigo. Let me tell you why, and please don't take it personal - I just hate seeing people waste their time on broken strategies.
First of all, your strategy is making only 6.2% over 5.7 years while the asset itself made 117.6%. That's embarrasingly bad - you would have made almost 20 times more money by simply buying and holding! Even my abuela could do better than that by throwing darts at a chart.
The win rate is pathetic at 42% - you're losing more often than winning. Si, si, I know you have a positive R/R ratio of 1.61, but with that market exposure of only 15.8%, you're basically sitting on your hands most of the time while the market runs away without you. Your Sharpe and Sortino ratios are negative (-0.66 and -0.62), which means you're not even being compensated for the risk you're taking.
The only slightly positive thing I see is the win rate leeway being above the minimal required win rate. But that's like saying "hey, at least my car that doesn't move has good tires!"
My honest advice? Throw this strategy in la basura and start over. You're trying to catch specific squeeze conditions but missing the bigger picture. The market is giving you clear signals that this approach doesn't work.
Total Trades | 98 | Net Profit | 6.2% | Buy & Hold Profit | 117.6% |
Win Rate | 42% | Reward/Risk Ratio | 1.61 | Max Drawdown | -18.6% |
Asset Max Drawdown | -22.2% | Exposure | 15.8% | Avg Candles in Position | 15.1 |
Sharpe Ratio | -0.66 | Sortino Ratio | -0.62 | Realized Volatility | 5.61% |
Max Winning Streak | 8 | Avg Winning Streak | 1.7 | Max Losing Streak | 6 |
Avg Losing Streak | 2.4 | Avg Trades per Month | 2.8 | Avg Trades per Day | 0.1 |
Return Std Dev | 1.4 | Loss Std Dev | 0.6 | Win Std Dev | 1.4 |
Expectancy | 0.1 | Beta | 0.18 |
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 |