Skip to main content
Track Finite Impulse Response Filter
9 / 10
Library

2019issue C0848-56

Constructing the Voss line from a bandpass and a short FIR sum

A two-pole bandpass isolates a chosen cycle from closes. A short FIR sum of lagged Voss values then advances that cycle into a second trace. The lead is a designed group-delay property, and the overlay cannot see future prices.

  • The first stage is a two-pole bandpass on closes. Cosine terms in Period and a fixed 0.25 bandwidth set the recursive coefficients F1, G1, and S1.
  • After the fifth bar, the bandpass update uses the two-bar close difference and prior bandpass values. The result, filt, is the unadvanced cycle baseline.
  • The second stage is an FIR sum: each of Order lagged Voss values is weighted by its index over Order, then subtracted from a scaled current bandpass value to form the Voss line.
  • The paired traces are a cycle-timing overlay. A negative group delay can turn earlier than a conventional oscillator, but the construction cannot see future prices.
Entries in this reading3 entries

A two-trace cycle overlay

The construction is a two-trace cycle overlay rather than a single oscillator. The paired plots are the bandpass line and the Voss line. Used together, those traces are a trend filter: a cycle-timing overlay, not a standalone oscillator.

Voss line leading the two-pole bandpass on daily SPY

The jagged Voss trace reaches each cycle peak and trough a few bars before the smoother bandpass, which is the designed group-delay lead from the short FIR sum rather than a look-ahead on prices. Points were read from the thinkorswim VossPredictiveFilter pane on daily SPY (period 20, predict 3, bandwidth 0.25) from January 2018 through 18 June 2019. The last printed readings are 2.07 for Voss and 0.36 for the bandpass.
The jagged Voss trace reaches each cycle peak and trough a few bars before the smoother bandpass, which is the designed group-delay lead from the short FIR sum rather than a look-ahead on prices. Points were read from the thinkorswim VossPredictiveFilter pane on daily SPY (period 20, predict 3, bandwidth 0.25) from January 2018 through 18 June 2019. The last printed readings are 2.07 for Voss and 0.36 for the bandpass.SPY · Daily · 2018-01-01T00:00:00.000Z to 2019-06-18T00:00:00.000Z

Period 20, predict 3, bandwidth 0.25 as fixed on the study. Dates are placed from the monthly axis ticks and visible turning points, so they are approximate. Vertical readings are to the nearest half oscillator unit except the final printed pair.

A two-pole bandpass on closes

The construction begins with a two-pole bandpass on closes, using cosine terms in Period and a fixed 0.25 bandwidth to set the recursive coefficients F1, G1, and S1. Period is the intended cycle length in bars. Bandwidth is the relative width of the bandpass, and it is fixed at 0.25 in the supplied implementations.

After the fifth bar, the bandpass update is one-half of one minus S1 times the two-bar close difference, plus F1 times one plus S1 times the prior bandpass value, minus S1 times the bandpass value from two bars earlier. The bandpass output, filt, is the unadvanced cycle baseline.

An FIR advance to the Voss line

The second stage is a finite-impulse-response sum. Each of Order lagged Voss values is weighted by its index over Order. That linearly weighted sum, sumc, is subtracted from a scaled current bandpass value to produce the advanced Voss line.

Default inputs used across the supplied implementations are Period 20 and Predict 3, with Order set to three times Predict. Predict is the intended lead in bars. Order is the FIR length.

A coded crossing rule

One coded rule treats a Voss cross above the bandpass as a next-bar buy and a Voss cross below the bandpass as a next-bar sell. That rule is an implementation choice, not a validated edge.

A portable recipe

Independent ports keep the same coefficient algebra and default inputs, confirming that the method is a portable recipe rather than a vendor-specific indicator.

Educational research material, not investment advice. Historical source context does not establish present-day performance.
9 of 10 in the Finite Impulse Response Filter track
202048-56 pp.Next on Finite Impulse Response FilterTruncated bandpass construction as a finite-length trend filterThe untruncated bandpass is computed from the two-bar close difference plus two lagged filter terms whose coefficients come from the period and bandwidth cosines.
All readings on this track · 10 readings
  1. 1982An odd-length smoother from a cycle cutoff
  2. 1989Smoothing filters, cutoff, poles, and sample delay
  3. 1992Constructing a cycle-aware finite impulse response detrender
  4. 2002Rebuild a smoother by writing the lag into the coefficients
  5. 2002Timing market cycles with finite impulse response filters and FFT
  6. 2002Constructing the relative strength index with an even-order finite-impulse-response prefilter
  7. 2003Recursive and cascaded moving-average construction
  8. 2006One second-order transfer function, a family of trend filters
  9. 2019Constructing the Voss line from a bandpass and a short FIR sum
  10. 2020Truncated bandpass construction as a finite-length trend filter
All 14 readings tagged Finite Impulse Response Filter
Also on Finite Impulse Response Filter5 readings