RocketRSI by John Ehlers

RocketRSI by John Ehlers

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.


Share this

Risk disclosure:

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 : How to import ITF files into ProRealTime platform?

New! PRC is also now on YouTube, subscribe to our channel for exclusive content and tutorials

  1. criscolci • 291 days ago #

    Thanks a lot!

  2. Bard • 290 days ago #

    Cheers for doing Ehler’s latest indicator Despair, much appreciated.

  3. Etienne • 80 days ago #

    Hi, thanks for proving this code.
    I would like to contribute by adding a computation speedup. figures are unchanged, the indicator computes 5x faster.

  4. Etienne • 80 days ago #

    //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)

    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]
    CD = Filt[1] – Filt[0]

    RCU = summation[RSILength](CU)
    RCD = summation[RSILength](CD)

    if RCU + RCD 0 then
    MyRSI = ( RCU – RCD ) / ( RCU + RCD )

    //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 ) )

    return RocketRSI coloured(0,0,255) as “RocketRSI”

Register or


avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
mcha merci bien et félicitations pour la réactivité avec laquelle il a été mis dans la bibliothèq...
soulintact Great indicator Nicolas, thanks!
souf Bonjour Nicolas, J'ai tenté de créer un screener dans ProScreener, j'ai obtenu le message...
Nicolas Si ces variables ne sont pas utiles, il faut tout simplement les supprimer du programme.
souf Bonsoir Nicolas, Je te remercie d'avoir pris le temps de me répondre. J'ai essayé de s...
GraHal @discomusic have you thought about starting a Thread on the Forum below as this is the norm ...
fifi743 Hello, I made some changes attached here cordially
discomusic Hi GraHal! Thanks for the suggestion: I have just created this thread: https://www.prorealco...
PastaPesto Thank you for your reply jebus, 1. As I said, earlier years arent so good, could be a probl...
Paul Optimized the days in a week and it seemed that Tuesday and Friday are not good days to trad...
PastaPesto Thanks Paul for the tips about testing balance. I am actually struggeling with breakeven o...
Vicari0us Hi Nicolas, How do I incorporate this indicator into my strategy? I mean what do I call ...
Nicolas Use the CALL function: or use the 'fx' butto...
Vicari0us Perfect thanks! I got it
myhlo Super Nicolas !! Cet indicateur offre une nouvelle lecture du Rsi ! Ces bandes up & Dawn...
luxrun Good evening Nicholas, I can not see the colors on the line of the moving average, but only ...
Nicolas Yes, you must choose the oscillator that will color the moving average. Example: ONCE UseC...
marao the old version I have does not allow importing. It is very old, I think the version 2 of PRT.
bala Hi Nicolas, I have been extensively researching for lot of answers here. I found that you...
Nicolas Don't apply it on price, use the main "indicator and trading system" button found on the top...
5 months ago
Louis Winthorp III Hi Kosuda76, have you downloaded the rsi_revengineering.itf file? Then you can set any value...
Kosuda76 Thanks for your reply! But I do not really understand what the opposite of them the values ​...
AdriTrade Good job Louis!! How could do this for the Williams indicator? Thank you very much.
luxrun Thanks, bolsatrilera, for a very good and solid screener!
luxrun sorry... indicator!
Lily Rios Gracias por el indicador, tengo una pregunta necesito programar un screener de valores que e...
Nicolas Thanks again for all your valuable posts... and well formatted code! :)
Nicolas Thanks a lot for this new valuable addition to our library. I changed line 76 with "barindex...
Horance Thanks. I've noticed this leftover after submission, but it was too late for editing. BTW, I...
Etienne Thanks Horance for porting this code to PRT. I would like to bring some speedup to your cod...
cbeukes Very interesting indicator. Any advice on identifying the transition between ranging and tre...
Horance This is a good question. John Ehlers explains it in Rocket Science for Traders. You have to ...
cbeukes Much appreciated, I will give that a try. Also, is there any criteria that one could use to ...
Bebbo Grazie del prezioso contributo Nicolas, scusa la mia inesperienza, sono alle prime armi e s...
Nicolas To avoid recalculation, you should use the one from this post.
Bebbo Ok Grazie Nicolas.