Back to Learn

Volatility Squeeze Breakout

Pro

Low Volatility → Explosive Expansion

5m Entry
15m Setup
Any Regime
Volatility Based
BB/KC Squeeze

📊At a Glance

Best For

Any regime — works when volatility compresses to extremes

Timeframes

15m squeeze detection / 5m trigger

Typical Hold

30 min - 3 hours

Primary Targets

  • Squeeze range width (1R)
  • 2R extension
  • 1.5-2x ATR move

Common Failure Mode

Fakeout — breakout reverses quickly

When to Avoid

  • Major news about to release
  • Off-hours/low liquidity
  • Opposite side already broke

The Concept

The Volatility Squeeze occurs when Bollinger Bands contract inside Keltner Channels — a sign that volatility is compressing to extreme lows. Like a coiled spring, this low-volatility state eventually explodes into a directional move.

Key Insight: This is one of the most reliable setups because volatility is mean-reverting. Periods of extreme low volatility are almost always followed by expansion. The trick is catching the direction of the breakout.

Multi-Timeframe Approach (15m + 5m)

Enhanced Detection: We detect the squeeze condition on the 15-minute timeframe for reliability, then trigger entries on the 5-minute timeframe for precision timing.

15m: Squeeze Detection

  • • BB inside KC condition checked on 15m
  • • More significant/reliable squeezes
  • • Filters out noise from 5m micro-squeezes
  • • +2 score bonus when detected on 15m

5m: Breakout Trigger

  • • Entry timing on 5m chart
  • • Volume expansion confirmation
  • • Precise entry zone calculation
  • • Tighter stop placement

Understanding the Squeeze

Bollinger Bands (BB)

BB(20, 2) — 20-period SMA ± 2 standard deviations

Measures price volatility. Bands narrow when volatility decreases.

Keltner Channels (KC)

KC(20, 1.5) — 20-period EMA ± 1.5× ATR

Measures average volatility. More stable than Bollinger Bands.

Squeeze ON: When BB upper < KC upper AND BB lower > KC lower, volatility is extremely compressed. The squeeze "fires" when BB expands back outside KC.

Long Squeeze Breakout

Squeeze Fires Up — Volatility Expansion Long

After 6 candles of tight compression (BB inside KC), volatility explodes upward. Entry on close above BB upper with expansion confirmed.

BB Upper / KC UpperBB Lower / KC LowerStop LossSQUEEZE FIRES← Compression (BB inside KC) →

Short Squeeze Breakout

Squeeze Fires Down — Volatility Expansion Short

After compression, volatility explodes downward. Entry on close below BB lower with expansion confirmed.

BB Upper / KC UpperBB Lower / KC LowerStop LossSQUEEZE FIRES

Safety Features

Advanced filters to reduce fakeouts and improve signal quality:

Session Filter

Avoids triggering during off-hours and FX rollover (21:00-22:00 UTC) when liquidity is thin and fakeouts are common. Crypto is exempt (24/7 markets).

Spread Percentile Check

Rejects signals when spread is above the P90 threshold. Wide spreads eat into profits and indicate poor execution conditions.

Opposite Break Detection

If the opposite side of the squeeze broke recently (within 6 bars), the signal is rejected. This filters out choppy conditions and "failed breakout reversal" traps.

Duration Requirements

Requires 10+ bars in squeeze (configurable). Longer squeezes produce more powerful breakouts. Short squeezes (3-5 bars) receive lower scores.

Squeeze Detection

BB_upper < KC_upper AND BB_lower > KC_lower

When Bollinger Bands contract inside Keltner Channels, volatility is at extreme lows.

Expansion Confirmation

volExpansion = current_range / ATR(14) > 1.2

The breakout candle should show expanding volatility (range > 1.2× ATR) to confirm the squeeze is firing.

Setup Detection

  • Squeeze ONBB(20,2) inside KC(20,1.5) on 15m
  • BB widthBottom 15% of recent history
  • Build time10+ candles ideal (min 3)
  • SessionGood session (not off-hours/rollover)
  • SpreadBelow P90 percentile

Trigger & Targets

  • Long trigger5m close > squeeze high + buffer
  • Short trigger5m close < squeeze low - buffer
  • ExpansionvolExpansion > 1.2x (configurable)
  • Target 1Squeeze range width (1R)
  • Target 22R or 1.5-2× ATR extension

Configurable Parameters

Customize the strategy in Settings → Strategies. Hover over the info icon for detailed explanations.

ParameterDefaultRangeDescription
Min Squeeze Bars103-20Minimum bars in squeeze before breakout
Vol Expansion Threshold1.2x0.8-2.0xRequired volume expansion ratio
Breakout ATR Multiple0.50.3-1.0Buffer beyond squeeze boundary
Min Setup Score4020-70Minimum quality score for alerts
Max Spread Percentile
Pro
9050-100Reject if spread above this percentile
Require Good SessionYesFilter off-hours/rollover periods
Check Opposite BreakYesCancel if opposite side broke recently
Prefer 15m Squeeze
Pro
YesUse 15m for squeeze detection

When It Works

Any market regime — the squeeze is regime-agnostic. Works especially well when squeeze aligns with higher timeframe trend direction.

Watch Out For

False breakouts that quickly reverse. The expansion confirmation and opposite break check help filter weak moves.

Avoid When

Major news events about to release. Also avoid during low-liquidity sessions (session filter handles this automatically).

Trend Alignment (Score Booster)

While the squeeze works in any regime, aligning with the higher timeframe trend significantly improves the probability:

Long Squeeze Breakout

  • Best: 1h trend = UP (+20 score)
  • Okay: 1h trend = RANGE (+12 score)
  • Risky: 1h trend = DOWN (+6 score)

Short Squeeze Breakout

  • Best: 1h trend = DOWN (+20 score)
  • Okay: 1h trend = RANGE (+12 score)
  • Risky: 1h trend = UP (+6 score)

Squeeze States Explained

🔸 Squeeze ON (Building)

BB inside KC. Volatility compressed. Watch and wait — the longer it builds (10+ bars), the more powerful the breakout.

🔹 Squeeze FIRES (Entry)

BB expands outside KC with a strong directional candle. This is the entry signal. Must have volExpansion > 1.2 confirmation.

⚪ Squeeze OFF (Normal)

BB outside KC. Normal volatility. No setup — wait for next squeeze to form.

See an Example Signal

Here's what a real Volatility Squeeze signal looks like in the app:

Sample Signal
USDCAD
Volatility Squeeze
SHORT
5M
BB squeeze for 8 bars, broke lower band
Why this signal was detected
Entry Zone
1.3580-1.3590
1
Stop Loss
1.3625
2
Targets
1.3520 / 1.3480
3
R:R
1:1.6 / 1:2.6
4
Quality: 69
(Medium)
ATR compression: 0.6xMomentum shift downNY session
Each signal includes:Entry zone,Stop loss,Take profit targets, andRisk:Reward ratio
1
Entry Zone
Optimal price range for entry
2
Stop Loss
Invalidation level to exit if wrong
3
Take Profit
Target levels for profit taking
4
R:R Ratio
Risk-to-reward calculation
Score: 69 (Medium)

Quality score is calculated from regime alignment, structure quality, timing, and technical confluence. Higher scores indicate stronger setups.

Best Practices

Do

  • Wait for 10+ bar squeezes for highest conviction
  • Check BB width percentile (bottom 10-15% ideal)
  • Trade with 1h trend for higher probability
  • Use 15m squeeze detection (more reliable)
  • Keep session filter ON for FX/Equity

Don't

  • Force trades during very short squeezes (3-5 bars)
  • Trade against strong 1h trends (lower score for reason)
  • Enter when spreads are abnormally wide (P90+)
  • Trade just before high-impact news releases
  • Enter after opposite side already broke (trap)

Invalidation & Risk

Stop Loss Placement

  • Long: Below squeeze range low - buffer
  • Short: Above squeeze range high + buffer

The squeeze range (high/low during squeeze ON) is your reference for stops.

Target Calculation

  • T1: Entry ± squeeze_range_width (1R)
  • T2: Entry ± 2R or 1.5-2× ATR(14)
  • Trail: Move stop to break-even after T1