Ehler's Stochastic Indicator (Roofing Filter+Universal Oscillator(SuperSmoother)

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #15815 quote
    BardBard
    Participant
    Master

    Thanks very much for posting this Ehler’s code and also the MESA indicators. It has been quite a revelation learning about his custom filters/oscillators and how superior they are to normal filters like the EMA and Stochastic Oscillator.

    I found a pdf called Ehler’s Predictive Indicator: http://www.stockspotter.com/files/PredictiveIndicators.pdf

    It combines the Optimal Tacking Filter and the Universal Oscillator (Supersmoother) which he simply calls “My Oscillator.” Both those indicators have been converted here at prorealcode:
    http://www.prorealcode.com/prorealtime-indicators/john-ehlers-optimal-tracking-filter/ &
    http://www.prorealcode.com/prorealtime-indicators/universal-oscillator-john-ehlers/

    I was wondering how to combine the above two PRT indicators code together and how to add the bold part of Ehler’s code below to get it to create his oscillator?:

    Ehler’s “My Stochastic Indicator” = Roofing Filter+Universal Oscillator (SuperSmoother)

    The original EasyLanguage Code to Compute “My Stochastic Indicator” is:

    //My Stochastic Indicator © 2013 John F. Ehlers//

    Inputs: Length(20);

    Vars: alpha1(0),HP(0),a1(0),b1(0),c1(0),c2(0),c3(0),Filt(0), HighestC(0), LowestC(0), count(0), Stoc(0), MyStochastic(0);

    //Highpass Filter cyclic components whose periods are shorter than 48 bars

    alpha1 = (Cosine(.707*360 / 48) + Sine (.707*360 / 48) – 1) / Cosine(.707*360 / 48); HP = (1 – alpha1 / 2)*(1 – alpha1 / 2)*(Close – 2*Close[1] + Close[2]) + 2*(1 – alpha1)*HP[1] – (1 – alpha1)*(1 – alpha1)*HP[2];

    //Smooth with a Super Smoother Filter

    a1 = expvalue(-1.414*3.14159 / 10); b1 = 2*a1*Cosine(1.414*180 / 10); c2 = b1;

    c3 = -a1*a1;

    c1 = 1 – c2 – c3;

    Filt = c1*(HP + HP[1]) / 2 + c2*Filt[1] + c3*Filt[2];

    HighestC = Filt;
    LowestC = Filt;
    For count = 0 to Length – 1 Begin

    If Filt[count] > HighestC then HighestC = Filt[count];

    If Filt[count] < LowestC then LowestC = Filt[count]; End;

    Stoc = (Filt – LowestC) / (HighestC – LowestC);
    MyStochastic = c1*(Stoc + Stoc[1]) / 2 + c2*MyStochastic[1] + c3*MyStochastic[2];

    Plot1(MyStochastic); Plot2(.8);
    Plot6(.2);

    Any help would be greatly appreciated, some of the early back tests using just his indicators (with a trend filter to determine trade direction) have shown high percentage winners and high gain/loss ratios without any optimisation. I will post a system here after they have been bug checked by PRT/IG Index (currently a work in progress). If I don’t please remind me. (-;

    Cheers,
    Brad

    #15940 quote
    NicolasNicolas
    Keymaster
    Legend

    I have successfully converted the MESA stochastic for prorealtime. I’m now awaiting for your trading strategy explanation to see how well it would perform 🙂

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Ehler's Stochastic Indicator (Roofing Filter+Universal Oscillator(SuperSmoother)


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
Bard @brad Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by NicolasNicolas
9 years, 10 months ago.

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 11/01/2016
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...