2020issue C1248-53
Constructing a relative-strength oscillator with a rank-agreement trend filter
Form a relative-strength reading from signed close-to-close changes, then apply a rank-agreement trend filter in place of smoothing. Published constructions keep a matching lookback on both stages and chart the unfiltered series beside the filtered series.
- The first stage forms a relative-strength oscillator from accumulated close-to-close advances and declines over a stated lookback.
- The second stage applies a rank-agreement trend filter so oscillator noise can be reduced without a smoothing filter that would delay the reading.
- Published constructions use a matching 14-observation lookback on both stages and display the unfiltered series, the filtered series, and a zero line.
- Threshold selection sits outside the core construction. The same rank-agreement step can be applied to other series, including the close.
Form the relative-strength oscillator
The first stage forms a relative-strength reading from signed close-to-close changes. That oscillator is the normalized difference of accumulated up and down close-to-close changes over a fixed lookback.
The oscillator accumulates close-to-close advances and declines over a stated lookback and, when their sum is nonzero, equals the difference of those sums divided by their total.
Published constructions use a 14-observation lookback for this oscillator.
Replace smoothing with rank agreement
The trend filter is a rank-agreement overlay that scores how closely an input series follows a positively sloped reference over a second lookback.
The filter tallies pairwise sign comparisons of the oscillator against a rising-time reference and divides that count by half the lookback times one less than the lookback.
Published constructions use a matching 14-observation lookback for the trend filter.
The rank-agreement step is built to suppress oscillator noise without a smoothing filter that would delay the reading. The trend-filter output is constrained to the interval from -1 to +1, so it denoises oscillators rather than producing a smoothed price path.
What the charts show
Charted constructions display the unfiltered relative-strength series, the filtered series, and a zero line together.
What stays outside the core construction
Threshold selection for the filtered oscillator was left outside the core construction. Demonstration add-ons used a 5-bar exponential signal line or long-period bands, including a 200-bar illustration.
The same rank-agreement construction can be applied to series other than the relative-strength oscillator, including the close, where the result can resemble the unfiltered oscillator.
Daily SPY: 14-bar MyRSI beside the matching rank-agreement NET filter

Published defaults RSILength = 14 and NETLength = 14. Turning points are placed to about 0.1 on the −1 to +1 scale. Dates between the labeled months are anchored to visible price landmarks (February peak, 23 March crash, September break). Endpoints 0.66 and 0.09 are the last values printed on the study axis.
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