Strategy Detail

Squeeze Break

Waits for Bollinger Bands to compress inside Keltner Channels, then trades the breakout when the squeeze releases. A direct expression of the volatility-contraction-then-expansion idea.

What It Does

Squeeze Break runs on a single contract at daily bars. On every session close it computes two volatility envelopes around price: a Bollinger Band over closes (period and standard-deviation multiplier configurable) and a Keltner Channel over highs/lows/closes (period and ATR multiplier configurable). A bar is called “squeezed” when the Bollinger Band sits entirely inside the Keltner Channel.

The strategy tracks a running count of consecutive squeezed bars. When two things line up on a single close, it enters:

  • The count of consecutive squeezed bars before this bar was at or above the minimum squeeze length.
  • This bar is no longer squeezed (the compression just released).

The direction of the trade comes from where the close finished relative to the Keltner Channel:

  • Close above the Keltner upper band and side allows long: enter long at the close.
  • Close below the Keltner lower band and side allows short: enter short at the close.
  • Close finished inside the Keltner Channel: skip. The squeeze released without a clean directional break.

Exits are time-based. The position is held for a configured number of bars and then flattened at the close. There are no stops, no targets, no trailing logic.

Why Compression Matters

Volatility clusters. Long stretches of low realized volatility tend to be followed by sharper moves, and Bollinger Bands inside Keltner Channels is one of the better-known proxies for the low-volatility state because it captures the relationship between dispersion (BB, which is standard deviation of closes) and range (KC, which is ATR-based). When dispersion compresses below range, traders have stopped voting and price is coiling.

The squeeze itself is not a trade signal. The release is. Most squeezes resolve with a directional push that runs for a few bars before the next regime takes over, which is why a fixed time-based exit makes sense as a starting point. Whether the average release in your market is big enough to pay for the false breaks is exactly what the backtest is for.

Presets

Five presets ship out of the box:

  • Classic Squeeze Both Sides: standard 20/2 Bollinger and 20/1.5 Keltner with a six-bar squeeze, five-bar hold. The textbook TTM-style setup.
  • Tight Squeeze Long Only: narrower Bollinger and a stricter ten-bar compression filter. Long-only.
  • Long Hold Both Sides: same squeeze rule as classic but holds for fifteen bars. Sits through more of the move at the cost of giving back more when it fails.
  • Short Squeeze Only: classic settings, short side only. Useful as a reality check on a side that equity-index futures have historically punished.
  • Wide Squeeze: looser Bollinger and Keltner with a shorter four-bar filter. Fires more often on milder compressions.

Use the form to set your own periods, multipliers, squeeze length, side, and hold length.

Best In

  • Markets with regime changes between calm and volatile periods. Equity-index futures (NQ, ES) and commodities like gold (GC) all show enough compression-then-expansion behavior to be worth a backtest.
  • Daily-timeframe research. Bollinger and Keltner both behave more cleanly on session bars than on intraday data, and the time-based exit reads naturally in calendar days.
  • Studies that want a clean volatility-compression baseline before adding directional or regime filters.

Where It Struggles

  • Persistent low-volatility grinds. A market that quietly drifts higher without ever firmly expanding produces few squeeze releases, most of which are mild. The strategy waits for compression that may not pay.
  • Sharp gaps that bypass the squeeze entirely. If price moves enough overnight to skip the “BB inside KC” state, the setup never arms.
  • Whipsaws. A squeeze that releases into a one-bar fakeout and then reverses is a clean loser under a fixed-hold exit, with no stop to cut it short.

Possible Uses

  • A control strategy for any other compression-then-expansion idea. If a more sophisticated breakout setup does not beat the bare squeeze release, the complexity is not earning its keep.
  • A regime input. The “squeeze count” itself is a useful feature for filtering other strategies; this family is the simplest direct expression of trading off it.
  • A starting point for layered work. The squeeze release can be combined with a trend filter, a volume filter, or a wider exit rule to test whether the basic edge survives the additions.

What It Does Not Do

  • No stops, no targets, no trailing exits. The fixed-bar hold is the only exit path.
  • No re-entry inside the hold window. Once a trade is open, additional releases are ignored until the position closes.
  • No awareness of session boundaries beyond the daily-bar close. The same rule fires on Mondays after holidays as on midweek closes.
  • No volatility-scaled position sizing. Contracts per trade is a fixed integer.

Test this strategy

Run it on your contracts, timeframes, and parameters.