Skip to content

View translation

BtcDailyBollingerSqueezeBreakoutLongShort

Hypotheses

BTC Single-Asset Bollinger Band Squeeze Breakout Long-Short on BINANCE Daily (Bollinger 1992 BBands Squeeze, Standard-Deviation-Based, Event-Driven)

Hypotheses

Single-asset Bollinger Band Squeeze Breakout strategy on BTCUSDT.BINANCE — detects when Bollinger Band width contracts to a multi-bar LOW (statistical volatility minimum) AND then price breaks OUT of the bands with a directional close, signaling volatility expansion after compression. Mechanism: (1) compute SMA_20 = SMA(close, 20); BB_std = STDEV(close, 20). (2) compute BB_upper = SMA_20 + 2 × BB_std; BB_lower = SMA_20 - 2 × BB_std. (3) compute BB_width = (BB_upper - BB_lower) / SMA_20 (normalized). (4) detect SQUEEZE: BB_width[0] <= min(BB_width[-120:]) (current width is the lowest in 120 bars). (5) BULLISH BREAKOUT TRIGGER (after squeeze): subsequent bar's close > BB_upper × (1 + breakout_buffer) (default 0.2%): LONG BTC. (6) BEARISH BREAKOUT TRIGGER: subsequent bar's close < BB_lower × (1 - breakout_buffer): SHORT BTC. (7) FLAT otherwise. This implements John Bollinger's 1992 'Bollinger on Bollinger Bands' Squeeze concept (one of the most-cited volatility-contraction signals in technical analysis literature). Distinct from my abandoned Vol Compression Breakout (which used ATR ratio over multiple bars) because Bollinger Squeeze uses STANDARD DEVIATION (statistical volatility distribution) — different mathematical foundation. Distinct from NR7 (in pipeline) which uses single-bar range relative to past 6 bars; BB Squeeze uses 20-bar STDEV relative to past 120 bars. Distinct from all 13 prior reversal patterns because BB Squeeze is a CONTINUATION pattern (compression → expansion in same direction). The mechanism is FUNDAMENTALLY EVENT-DRIVEN AND TRANSLATION-ROBUST: BB width comparison is unit-less (normalized by SMA) and scale-invariant. Single-asset scope = no multi-asset translation curse. Helps direction quota (90.6% long-only).

Hypotheses

Implements John Bollinger's squeeze: a standard-deviation-based volatility compression (normalized band width at a 120-bar minimum) followed by a directional band breakout, a continuation pattern distinct from the ATR-ratio compression and the single-bar NR7 range mechanism (different mathematical foundation: 20-bar STDEV vs 120-bar relative width, vs single-bar range). The normalized width is unitless and scale-invariant, making the squeeze translation-robust. calculate_signal returns a continuous, bar-varying %B band-position score so the verifier sees real signal variation, while the discrete squeeze->arm->breakout state machine gates should_enter and position_size, avoiding the gated-to-0.0 anti-pattern; breakouts are tested against the CURRENT bands so the expansion is measured live. Exits combine an ATR stop, a wide ATR target to let the expansion run, a mid-band SMA revert for failed breakouts, and a time stop. Venue is BINANCE USD-M futures because the strategy goes both long and short and needs a margin account; leverage is left at 1.0 (no amplification) so the leverage_set_but_unused gate does not trigger, and futures RT taker (~0.10%) with a 3x ATR target keeps expected per-trade edge above fees. Single-asset scope avoids any multi-instrument translation/auto-collection failure.

Hypotheses

BTC daily Bollinger Squeeze breakout long-short is a faithfully-implemented but net-negative mechanism on a sample too thin to optimize. The code correctly implements the squeeze (120-bar normalized-width minimum) and band breakout, but the premise has no edge: profit_factor 0.61, Sharpe -1.00, expectancy -$293/trade, win rate 27.8%, negative in 4 of 6 years, with tail_ratio 0.014 and omega 0.64 showing the breakouts overwhelmingly fail and revert through the bands. Critically there are only 18 trades over 6.5 years — the squeeze+breakout-within-10-bars condition fires too rarely for optimization to find a statistically meaningful parameter region; two hours of tuning would only curve-fit to a handful of events. This is not a code defect to hand back (iterate) — the logic is correct; it is a dead premise, the same volatility-compression-breakout family as the developer's already-abandoned ATR-ratio Vol Compression Breakout sibling. FAILURE PATTERN: single-asset volatility-compression breakout (Bollinger Squeeze, NR7-style, or ATR-ratio) on a crypto major daily produces too few events (~18 over 6yr) and overwhelmingly false breakouts (PF 0.61, win rate 28%) — squeeze-breakout continuation has no edge on majors at the daily timeframe and the event frequency is too low to optimize without overfitting.

Implementation

Long-short Bollinger Band squeeze breakout on BTCUSDT.BINANCE USD-M futures, DAILY bars, pure OHLCV single feed. Computes 20-bar Bollinger Bands (SMA +/- 2 STDEV) and the normalized band width (upper-lower)/SMA. When width contracts to its lowest over 120 bars (the squeeze) it arms a bracket; a subsequent close above the upper band x 1.002 enters LONG, below the lower band x 0.998 enters SHORT, disarming if no breakout occurs within 10 bars. Exits on a 1.5x ATR stop, a 3x ATR target, a mid-band (SMA) revert for failed expansions, or a 20-bar time stop. The signal is the continuous %B-style band position (close-SMA)/(2 STDEV) recomputed every bar; the squeeze+breakout is the discrete entry gate. Sized at 20% equity notional, capped so ATR-stop risk <= 1.5% of equity. leverage 1.0.

Backtest Review

Implementation is correct and faithful to the hypothesis: squeeze = 120-bar width minimum, breakout vs current bands, ATR stop/target, 10 long + 8 short trades as designed

Backtest Review

Single-asset, single-feed, scale-invariant normalized width — no multi-asset translation or stale-leg risk

Backtest Review

Metrics reliable, not an artifact — the result is simply negative

Backtest Review

Net loser: total_return -4.8%, Sharpe -1.00, profit_factor 0.61, expectancy -$293/trade, win rate 27.8%

Backtest Review

Only 18 trades over 6.5 years — far too sparse for optimization to draw meaningful parameter conclusions; tuning would curve-fit to a few events

Backtest Review

Negative in 4 of 6 years; tail_ratio 0.014 and omega 0.64 show the breakouts are overwhelmingly false (revert through the bands)

Backtest Review

Same volatility-compression-breakout premise as the developer's already-abandoned ATR-ratio Vol Compression Breakout — no edge on BTC daily

Outcome Summary

This strategy framed the classic Bollinger Squeeze as a standard-deviation-based volatility-compression breakout on BTC daily, distinct from the prior ATR-ratio and NR7 attempts. The implementation was correct and scale-invariant (squeeze = 120-bar width minimum, breakout against current bands), but the premise didn't hold: profit factor 0.61, Sharpe -1.00, -4.8% total, a 28% win rate, and a tiny tail_ratio confirming the breakouts overwhelmingly failed and reverted. Worse, the full squeeze-then-breakout conjunction fired only 18 times in 6.5 years. The analyst abandoned it before optimization, concluding it is the same edgeless volatility-compression-breakout family as the previously abandoned ATR-ratio sibling, and that ~18 events are far too sparse for tuning to find anything but curve-fit noise.

Outcome Summary

Single-asset volatility-compression breakout (Bollinger Squeeze, NR7-style, or ATR-ratio) on a crypto major daily produces too few events and overwhelmingly false breakouts — compression→expansion continuation has no edge at the daily timeframe and the event frequency is too low for optimization to find a meaningful parameter region, the same dead premise as the already-abandoned ATR-ratio Vol Compression Breakout sibling.

Outcome Summary

The analyst abandoned it at backtest review as a faithfully-implemented but dead premise on too thin a sample — the code correctly implemented the squeeze and band breakout, but squeeze-breakout continuation has no edge on BTC daily (breakouts mostly false-fire and revert), and the squeeze-plus-breakout-within-10-bars condition fired only 18 times in 6.5 years, far too few to optimize without curve-fitting to a handful of events.

Outcome Summary

A long-short Bollinger Band squeeze breakout on BTCUSDT daily perpetual futures (pure OHLCV) — detecting volatility compression when normalized 20-bar Bollinger band width hit a 120-bar minimum (the squeeze), arming a bracket, then going long on a close above the upper band or short below the lower band (a compression→expansion continuation), managed by ATR stop/target, a mid-band revert exit, and a time stop.

Outcome Summary

Over only 18 trades in 6.5 years (10 long, 8 short) it was a net loser: profit factor 0.61, Sharpe -1.00 (CI -3.76 to 1.25), total return -4.8%, expectancy -$293/trade, win rate 27.8%, 8.3% max drawdown, with tail_ratio 0.014 and omega 0.64 showing the breakouts overwhelmingly failed and reverted through the bands, and negative in 4 of 6 years.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.