Estimating the JdK RS-Ratio with Relative Strength and Normalization
Summary
The document discusses ways to approximate the JdK RS-Ratio for comparing country equity funds against a benchmark such as the S&P 500. One proposed workflow divides each fund's closing price by the benchmark and scales the result, smooths the relative-strength series with a moving average, then standardizes readings across the funds. The response also associates RS-Momentum with the rate of change in the relative-strength measure.
Several answers offer conflicting details: suggested smoothing windows differ, and commenters disagree over the normalization formula. Other replies describe the indicator as resembling a pair of simple moving averages or suggest rescaling the range to a baseline. These are tentative interpretations drawn from charting references and observed behavior, not a definitive specification from the indicator's originator. The document provides no validation results, and its alternative formulas should not be assumed to reproduce the proprietary JdK calculation exactly.
Key ideas
- Relative strength can be expressed as a fund price divided by its benchmark price and scaled.
- A moving average of relative strength is proposed as an approximation to the RS-Ratio.
- RS-Momentum is described as the rate of change of the relative-strength measure.
- The answers disagree about normalization and smoothing choices, so the formulas are not definitive.
Tags
Full text
# How to calculate the JdK RS-Ratio
# How to calculate the JdK RS-Ratio
Anyone have a clue how to calculate the JdK RS-Ratio?
Let's say I want to compare the Relative strength for these:
- EWA iShares MSCI Australia Index Fund
- EWC iShares MSCI Canada Index Fund
- EWD iShares MSCI Sweden Index Fund
- EWG iShares MSCI Germany Index Fund
- EWH iShares MSCI Hong Kong Index Fund
- EWI iShares MSCI Italy Index Fund
- EWJ iShares MSCI Japan Index Fund
- EWK iShares MSCI Belgium Index Fund
- EWL iShares MSCI Switzerland Index Fund
- EWM iShares MSCI Malaysia Index Fund
- EWN iShares MSCI Netherlands Index Fund
- EWO iShares MSCI Austria Index Fund
- EWP iShares MSCI Spain Index Fund
- EWQ iShares MSCI France Index Fund
- EWS iShares MSCI Singapore Index Fund
- EWU iShares MSCI United Kingdom Index Fund
- EWW iShares MSCI Mexico Index Fund
- EWT iShares MSCI Taiwan Index Fund
- EWY iShares MSCI South Korea Index Fund
- EWZ iShares MSCI Brazil Index Fund
- EZA iShares MSCI South Africa Index Fund
Each of them should be compared to the SP500 (SPY index). Calculate the relative strength of each of them to SPY and have it normalized (I think it is the only solution)
More info on the concept. http://www.mta.org/eweb/docs/pdfs/11symp-dekempanaer.pdf
## Answer by Paul (score 7, accepted)
https://quant.stackexchange.com/a/19132
Reading what I have, I can only offer a guess.
1: Let's say you're looking at 9 sectors compared to \$SPX on a daily chart. Foreach sector, compute relative closing price: 100 * Sector/\$SPX
2: It looks like the RS-Ratio is averaged over 14 periods. I say 14 because stockcharts.com shows RS-Ratio peaking after a lag (2-3wks), despite price peaking 2-3 weeks earlier. I use 14 because that's a common number in TA.
3: RS-Momentum looks like it's simply the rate-of-change of the calculation in #1. Indeed, stockcharts.com says exactly this: "RS-Momentum is an indicator that measures the momentum (rate-of-change) of RS-Ratio."
4: When they talk about normalizing, compute the mean & stddev of the 9 calculations in #1, then normalize as ... 100 * ((value-mean)/stddev + 1). I would guess that these values are "normalized" per day. I would guess that a separate normalization would be required for the values from #3 as well.
That's how I would approach the problem.
I consulted: http://stockcharts.com/school/doku.php?st=rrg&id=chart_school:technical_indicators:rrg_relative_strength in formulating my response, and I've had a few months to sleep on it.
## Answer by Amateur (score 6)
https://quant.stackexchange.com/a/42330
I think the normalisation step is incorrect. Since we would like have 100 as our baseline, it should be 100 + ((value-mean)/stddev + 1). Then we get fairly realistic results. See the following Python function (code review welcome):
```
def rs_ratio(prices_df, benchmark, window=10):
from numpy import mean, std
for series in prices_df:
rs = (prices_df[series].divide(benchmark)) * 100
rs_ratio = rs.rolling(window).mean()
rel_ratio = 100 + ((rs_ratio - rs_ratio.mean()) / rs_ratio.std() + 1)
prices_df[series] = rel_ratio
prices_df.dropna(axis=0, how='all', inplace=True)
return prices_df
```
## Answer by user41616 (score 1)
https://quant.stackexchange.com/a/46362
It looks just like a 10 period and 30 period simple moving average crossover (ie PPO using simple moving averages)
## Answer by Sundar (score 0)
https://quant.stackexchange.com/a/78024
from the school.stockcharts.com I understand the following: factor = (highest RS_ratio - Lowest RS_ratio)/100 use the factor to multiply each individual RS_ratio to map in the scale of 100. You can play with it to change scale accordingly.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.