In “RocketRSI—A Solid Propellant For Your Rocket Science Trading” in the may 2018 issue of Traders tips, author John Ehlers introduces a new take on the classic RSI indicator originally developed by J. Welles Wilder. Ehlers begins by introducing a new version of the RSI based on a simple accumulation of up and down closes rather than averages. To this he applies a Fisher transform. He tells us that the resultant output is statistically significant spikes that indicate cyclic turning points with precision.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
SmoothLength=10 RSILength=10 OBOSLevel=2 //Compute Super Smoother coefficients once if barindex = 1 then a1 = exp( -1.414 * 3.14159/ ( SmoothLength ) ) b1 = 2 * a1 * Cos( 1.414 * 180/ ( SmoothLength ) ) c2 = b1 c3 = -square(a1) c1 = 1 - c2 - c3 endif if barindex > RSILength then //Create half dominant cycle Momentum Mom = Close - Close[RSILength - 1] //SuperSmoother Filter Filt = c1 * ( Mom + Mom[1] ) / 2 + c2 * Filt[1] + c3 * Filt[2] //Accumulate "Closes Up" and "Closes Down" CU = 0 CD = 0 for count = 0 to RSILength -1 do if Filt[count] - Filt[count + 1] > 0 then CU = CU + Filt[count] - Filt[count + 1] endif if Filt[count] - Filt[count + 1] < 0 then CD = CD + Filt[count + 1] - Filt[count] endif next if CU + CD <> 0 then MyRSI = ( CU - CD ) / ( CU + CD ) endif //Limit RocketRSI output to //+/- 3 Standard Deviations MyRSI = min(max(MyRSI,-.999),.999) //Apply Fisher Transform to establish //Gaussian Probability Distribution RocketRSI = .5 * Log( ( 1 + MyRSI ) / ( 1 - MyRSI ) ) endif return RocketRSI coloured(0,0,255) as "RocketRSI", 0 as "Zero Line", OBOSLevel coloured(255,0,0) as "OverBought", -OBOSLevel coloured(255,0,0) as "OverSold" |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
Thanks a lot!
Cheers for doing Ehler’s latest indicator Despair, much appreciated.
Hi, thanks for proving this code.
I would like to contribute by adding a computation speedup. figures are unchanged, the indicator computes 5x faster.
Thanks a lot!
//Compute Super Smoother coefficients once
if barindex = 1 then
a1 = exp( -1.414 * 3.14159/ ( SmoothLength ) )
b1 = 2 * a1 * Cos( 1.414 * 180/ ( SmoothLength ) )
c2 = b1
c3 = -square(a1)
c1 = 1 – c2 – c3
drawhline (0)
drawhline (OBOSLevel) coloured(255,0,0)
drawhline (-OBOSLevel) coloured(255,0,0)
endif
if barindex > RSILength then
//Create half dominant cycle Momentum
Mom = Close – Close[RSILength – 1]
//SuperSmoother Filter
Filt = c1 * ( Mom + Mom[1] ) / 2 + c2 * Filt[1] + c3 * Filt[2]
//Accumulate “Closes Up” and “Closes Down”
CD = 0
CU = 0
if Filt[0] > Filt[1] then
CU = Filt[0] – Filt[1]
else
CD = Filt[1] – Filt[0]
endif
RCU = summation[RSILength](CU)
RCD = summation[RSILength](CD)
if RCU + RCD 0 then
MyRSI = ( RCU – RCD ) / ( RCU + RCD )
endif
//Limit RocketRSI output to
//+/- 3 Standard Deviations
MyRSI = min(max(MyRSI,-.999),.999)
//Apply Fisher Transform to establish
//Gaussian Probability Distribution
RocketRSI = .5 * Log( ( 1 + MyRSI ) / ( 1 – MyRSI ) )
endif
return RocketRSI coloured(0,0,255) as “RocketRSI”