Oscillator · squeeze
What it computes
1 on a bar where both Bollinger Bands (Length, StdDev) sit strictly inside the Keltner Channels (a Length EMA of closes with KC Mult average true ranges either side), else 0.
It describes bars that have already printed. QuantZ does not claim this indicator has predictive value, and it is not a recommendation to do anything.
Inputs and lookback
- Length · default 20
- StdDev · default 2
- KC Mult · default 1.5
- ATR · default 20
Reads open, high, low and close from the loaded bars. It produces nothing until at least 20 bars are loaded, a settling period no parameter shows.
What it assumes about the series
- Bars arrive oldest to newest at one interval, each with a finite open, high, low and close. The input is the chart’s loaded series, whatever its length.
- The function is given bars, not sessions: it does not know the timeframe, where a session opens, or that a gap in the tape is a gap.
- Warm-up bars are omitted rather than padded. The first value appears once the arithmetic has enough history, and nothing is drawn before it.
- The newest bar is the forming bar. Its value uses the live close and settles when the bar closes.
- A recursive average: it is seeded from the first loaded bars, so the earliest drawn values reflect the seed more than the tape, and loading more history changes them. The dependence fades as more bars arrive.
- The bands are this registry’s own Bollinger Bands (an SMA with population standard deviations) and Keltner Channels (an EMA with a Wilder-smoothed ATR); platforms that build the channel on an SMA or a simple-averaged range mark somewhat different bars.
- A window with no range at all gives both widths zero, which is not strictly inside, so it reads 0.
Whether a drawn value can change
forming-bar · Moves only on the forming bar. The newest bar’s value moves with its live close until that bar closes. A closed bar’s value is final and is not redrawn when later bars arrive.
This class is read from the registry entry and checked by a test against the function itself: for a class that says closed bars are final, appending a bar must leave every earlier point unchanged, and for a class that says they are not, it must not.
Outside its inputs
- Nothing outside the loaded bars: no longer history than the chart has loaded, and no other interval.
- Nothing inside a bar: no individual trades, no order book, no bid or ask.
- No other symbol, no benchmark, no news, no fundamentals, no earnings dates.
- Volume is not read at all.