Some data vendors and researchers seems to be confusing RS and RPS with RoC and RSI. So maybe a naive question, what is Relative Strength exactly ? it's not a simple RoC as some would put it, and from I understand it is a ratio of Gains vs Losses or am I mistaken ? same with RSI, which is derived from RS. But how RS and RSI are different in terms of calculation and meaning ? they have the same meaning don't they ? simply a different formula base for interpretation ? anyway, if someone or a chartist could confirm and explain how RoC and RS are 2 different animals and that Relative Price Strength is simply a RoC and not RS or RSI, I would be grateful. Thanks,
My understanding of RS is it's simply ordering and ranking (100 to 1) constituents by performance for some given period, say 1 year. I've never associated RSI with RS. I thought RSI was a momentum oscillator / indicator. Nothing to do with RS. I have programmed RS, RSI and RoC. Three different things. Or at least that's my understanding. I'm not 100% certain, as I remember being slightly confused when I looked up their formulae / algorithms.
I started dabbling with IB API / Java this week, so may well need to ask you some questions sometime soon.
Ok I think I found the answers to my own questions: RS/RSI are Momentum factors, RS is defined as the average gains over the average losses and RSI is the standardized version of RS using a scale of 0 to 100 RoC or Rate of Change is also a Momentum factor, with the same signal function as RS/RSI but with less accuracy when it comes to "reversal" signals. Relative Price Strength is basically the RoC over a benchmark, and can be self-regressed if no Benchmark are used. For some reasons, some Vendors and Researchers are calling that RoC Relative Strength, when in fact they should mean Relative Price Strength. So this is where the confusion is coming from. Case Solved.
I agree. You're clearly not interested in the other RS - the performance ranking one. An extract from some old code: Code: avg_gain = (data.prev_avg_gain * (data.periods - 1) + current_gain) / data.periods; avg_loss = (data.prev_avg_loss * (data.periods - 1) + current_loss) / data.periods; rs = avg_gain / avg_loss; rsi = 100.0 - (100.0 / (1.0 + rs));