2018issue C1110-15
Constructing the stiffness trend filter from moving-average holds
Stiffness is a 0-100 persistence score: count how often closes hold a volatility-adjusted moving-average band, scale that count, then attach a market-direction condition and a two-part exit so entry, abstention, and a time cap can be tested as one procedure.
- Stiffness counts how many recent closes held above a long moving average after a small volatility buffer is subtracted, then scales that count to a 0-100 score.
- A reading of 100 means every close in the window stayed above the reduced average or pierced it by less than the buffer.
- The score is a trend filter for already-established uplegs, not a rule for buying correction lows.
- The documented procedure required a high-threshold stiffness cross, a non-declining index average, a mid-level exit cross, and a fixed-bar time-cap exit.
Count holds against a reduced average
Stiffness starts as a persistence count against a long moving average of closes. Lower that average by a fixed fraction of recent standard deviation. The lowered line is the volatility-adjusted band, so tiny dips are not counted as breaks.
The documented default used a 100-session moving average reduced by 0.2 standard deviations, then counted how many closes in a 60-session window stayed above that band.
Bound the count as a 0-100 score
Scale the hold count so the result is a stiffness reading between 0 and 100. Stiffness equals 100 times the count of closes above that reduced average, divided by the 60-session window.
A reading of 100 means every close in the window stayed above that reduced average or pierced it by less than 0.2 standard deviations. Lower readings mean more closes lost the band.
Keep the score a trend filter, then add a market-direction condition
The score is used as a trend filter for already-established uplegs, not as a rule for buying correction lows. A high stiffness reading accepts only already-established, lightly interrupted uptrends and stands aside otherwise.
A second filter, the market-direction condition, blocks new longs when a long exponential average of a broad large-cap index proxy is sloping down. The documented long-entry rule required stiffness to cross above 90 while a 100-session exponential average of a large-cap index proxy was not declining. Both parts had to be true before a long was taken. That joint test is the rule-based entry.
Close on a mid-level cross or a time cap
The documented exit closed the long when stiffness crossed below 50 or when 84 bars (four months) had elapsed, whichever came first. The fixed-bar close is the time-cap exit. It forces an end so a lagging stiffness decline cannot leave a position open indefinitely.
The published computation smoothed raw stiffness with a 3-session exponential average before the entry and exit crosses were evaluated. The crosses are read on that smoothed series, not on the raw count.
Vary the lookbacks and keep fills explicit
A published parameter grid varied the moving-average length from 50 to 120 sessions and the stiffness window from 30 to 80 sessions. Those two lookbacks define the persistence count.
Test fills were specified as the next session open, with a fixed 10000 notional size and a 0.01-per-share commission. Those execution rules sit in the same procedure as the entry, abstention, and time-cap tests.
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