Skip to content

Range Compression

Indicators · Proprietary

Range Compression node on the canvas

Detects the calm-before-storm bars that precede breakouts. Outputs a continuous compression score (>1 = current bar tighter than recent average — rising = intensifying) plus two discrete signals (NR4 / NR7) for the canonical narrow-range setups. Wire into AND-gates as a pre-breakout filter.

Range Compression detects the calm before the storm — the tight, quiet bars that so often precede an explosive breakout. Markets tend to coil before they expand, and this block measures that coiling, giving you both a continuous "how compressed are we?" score and the two canonical narrow-range setups that breakout traders have used for decades. Wire it in as a pre-breakout filter so your breakout entries only fire when the market is actually wound up.

How it works

The block produces two layers. The continuous Compression score compares the current bar's range to its recent average: above 1.0 means compressing (the current bar is tighter than the recent norm), below 1.0 means expanding, and a rising score means compression is intensifying. (It blends several compression measures into that score; the exact weighting is part of the platform's calibration.) Alongside it are two discrete, classic signals: NR4 (the current bar has the narrowest range of the last 4 bars) and NR7 (narrowest of the last 7) — Toby Crabel's well-known narrow-range breakout setups, which need no tuning. The Lookback sets the score's baseline window and Sensitivity its smoothing.

When to use it

Use Range Compression as a pre-breakout arming filter, never as a directional signal — it tells you a breakout is likely, not which way. Two ways to use it: wire the continuous Compression score into a Greater Than ("compression > 1.5 = wound up") and And it with your breakout trigger; or wire NR4/NR7 directly into an And gate to arm entries only on a classic narrow-range bar. Either way it filters out breakout attempts that happen from already-extended, non-compressed conditions — the ones most likely to fail.

Example

Range Compression on the EURUSD H1 chart

Range Compression on EURUSD · H1

Arm a breakout from compression: wire bars into Range Compression and require NR7 (a narrow-range-7 bar) alongside your Donchian Channels breakout trigger through an And gate into a Buy Signal — so you only take breakouts that fire out of a coil. Backtest with and without the filter in the Tester.

Tips & gotchas

  • A pre-breakout filter, not a direction — it says "likely to break," not which way; combine with a directional trigger.
  • Score > 1 = compressing, rising = intensifying — wire it into a comparator.
  • NR4/NR7 are absolute (no tuning) — classic narrow-range setups, ready to AND into entries.
  • Sensitivity tunes the score's smoothing — higher is faster/noisier, lower is stabler.

Inputs

Socket Type What to wire in
Bars bars Price bars

Outputs

Output Type Plots as Description
Compression series Line · sub-pane Continuous score; >1 = compressing, <1 = expanding
NR4 signal Signal arrows True on bars with the smallest range of the last 4
NR7 signal Signal arrows True on bars with the smallest range of the last 7

Parameters

Parameter Type Default What it does
Lookback number · 5–200 20 Window for the compression baseline.
Sensitivity number · 0.5–2.0 1.0 Higher = more responsive (noisier); lower = stabler (laggier). Affects the continuous score's smoothing.
Compression line color colour #fb8c00

Reference auto-generated from the block catalog · category Indicators.