Klinger Oscillator

A Fast EMA minus a Slow EMA of volume force: each bar’s volume, signed by whether its high, low and close summed higher than the bar before, and scaled by how its range compares with the running range of the current direction.

Oscillator · klinger

What it computes

A Fast EMA minus a Slow EMA of volume force: each bar’s volume, signed by whether its high, low and close summed higher than the bar before, and scaled by how its range compares with the running range of the current direction.

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

  • Fast · default 34
  • Slow · default 55

Reads open, high, low, close and volume from the loaded bars. It produces nothing until at least 56 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.
  • Each bar carries a volume field. A feed that reports no volume produces no line at all rather than an invented one.
  • 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.

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 the bar’s total. Which side of the book it traded on is not in the data.

Rendered from the registry entry klinger in src/lib/indicators.ts. If the entry changes, this page changes with it.