2003issue C111-5
Constructing a confirmed zigzag trend filter
A standard zigzag can rewrite its last swing until a reversal threshold is met. This archive article shows how to rebuild that filter so it reports only confirmed direction on prices or another plotted series.
- A standard zigzag can rewrite its last swing if a reversal never reaches the user-set threshold, so last-leg direction is not a stable input for mechanical tests.
- Once price reaches or exceeds the reversal threshold, that swing is no longer revisable, and a confirmation-only zigzag trend returns 1 or -1 while rejecting unconfirmed swings.
- The filter is defined by the series under study, the reversal amount, and a percent or points method, and the same confirmation logic can sit on prices or on another plotted series.
- The confirmation overlay cannot print a value until the first pair of swing points is confirmed, so it starts later than an unconfirmed zigzag line.
The last swing is not a stable input
A standard zigzag filter can rewrite its last swing if a reversal never reaches the user-set threshold, so that last-leg direction is not a stable input for mechanical tests. That still-open swing is the dynamic last leg of a noise filter, which can be rewritten if price never reaches the reversal threshold.
A moving average is an ordered-series smoother used here as a contrast: a revisable last-leg swing line versus a confirmation-only directional state.
A swing becomes fixed only after the threshold
Once price reaches or exceeds the reversal threshold, that zigzag swing is no longer revisable under the same construction rules. The reversal amount is the user-chosen percent or point threshold a move must travel before a swing is treated as a true reversal.
A trend filter in this construction is a quantitative gate that withholds a directional reading until a user-set reversal threshold is actually reached.
Why the confirmation reading stays valid
The source comparison table treats the confirmation filter as suitable for backtests because both present and past readings stay valid, unlike a last-leg-only validity check. The zigzag trend is a binary confirmation layer that returns a valid uptrend or downtrend and rejects unconfirmed swings.
Three construction inputs
The filter is defined by three construction inputs: the series being examined, the reversal amount, and a percent or points calculation method.
The percent method supplies one reversal rule across price levels but treats up and down moves asymmetrically, because a given percentage rise from a lower price is easier to reach than the same percentage fall from a higher price. The points method is the preferred construction when up and down moves should be compared linearly, or when the series can include zero or negative values, as with oscillators.
Where the overlay can sit, and when it can start
The same confirmation logic can be applied to an open, high, low, or close series, or dropped onto another plotted series such as a relative-strength oscillator.
The confirmation overlay cannot print a value until the first pair of swing points is confirmed, so it starts later than an unconfirmed zigzag line.
Daily Boeing prices the zigzag-trend filter is read against, 2000–2002

No printed price table exists in the unit. Y values are raster readings, not official prints. The article’s Boeing example uses zigzag trend on the close with a 15 percent reversal; that parameter is not reprinted on this pane.
All readings on this track · 33 readings
- 1988Opening-range brackets, a two-bar trend filter, and bounded stops
- 1990Bezier-curve price trend filter
- 1992Constructing a damping-index trend filter
- 1992Building a random walk index trend filter
- 1992Phase diagrams for moving-average trend filters
- 1993Volume-weighted change smoothing and trend ranking
- 1993Concurrent highest-low filter with a largest-low-fall trigger
- 1994Unit-invariant trend filters and the c-test
- 1995Constructing cup and cap entries with a three-bar net line
- 1997Why a daily timing evaluation depends on interval, lookbacks, and the fitting objective
- 2001A volume budget clock for trend-segment construction
- 2001Keep three jobs separate when you test a composite score
- 2002Evaluating the weekly four-percent close filter as a market-state procedure
- 2003Constructing a confirmed zigzag trend filter
- 2004Decompose high, low, and close into separate forecast streams
- 2005Three-state moving-average breakout bar coloring
- 2005Constructing a volume and move-adjusted trend filter
- 2005A fifty-day average breakout as a trend permission filter
- 2005Current-bar inclusion can mute a stochastic channel break
- 2006A stochastic oscillator gated by a long-term exponential average
- 2010A construction test for a modified volume-price trend filter
- 2011Constructing a Spearman rank trend filter
- 2013Constructing a repeated-median slope as a resistant trend filter
- 2014Combining a relative-strength index and trend filters for oversold setups
- 2014Price-rooted lookbacks for a relative strength index, a moving average, and a trend filter
- 2015Evaluating next-session intermarket range forecasts
- 2018Read the intermarket weight matrix first, then the predicted moving-average filter
- 2018Constructing the stiffness trend filter from moving-average holds
- 2018The averaging kernel and the lagged trend gate are separate specifications
- 2019A trend filter is not ready to compare until portfolio constraints are written down
- 2019Lookback, threshold, and position-capacity for a stiffness trend-filter
- 2020Combining a trend filter with a moving average and a stochastic oscillator
- 2020Constructing a relative-strength oscillator with a rank-agreement trend filter