Universal Oscillator John Ehlers

Universal Oscillator John Ehlers

The Universal Oscillator made by John Ehlers is based on article “Whiter is Brighter” wrote in TASC magazine in January 2015.

This oscillator is an evolution of John Ehlers previous indicator “SuperSmoother filter” which was introduced in his January 2014 article “Pedictive and Succeful indicators”.

This indicator reflects short term variations of price within the “bandedge” parameter as a  frequency. Of course, the lesser this parameter is, the less lag is the oscillator, it is setted at 20 periods by default. Returned values oscillate between -1 and 1.

Basic rules would be to sell short when the curve crosses below 0 and go long when it crosses above 0.

 

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?

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

  1. Wing • 04/21/2016 #

    I really like this indicator. It has had good edge in recent market.

  2. Brad • 04/21/2016 #

    Hi Nicholas, hope you are well,
    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.” Now that both those indicators have been converted here at prorealcode. I was wondering how to combine the two PRT indicators code together and add the bold part of Ehler’s code below to get it to work?:
    Ehler’s Stochastic Indicator = Roofing Filter+Universal Oscillator (SuperSmoother)
    The EasyLanguage Code to Compute My Stochastic 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,Cheers,BestBrad

    • Nicolas • 04/21/2016 #

      I’m currently on leave, please add your request in forums. I’ll take a look later. Thanks

  3. nglpx1 • 04/21/2016 #

    Hi.
    someone may explain to me, please, how expressions like:
    filt= c1 * (whitenoise + whitenoise[1])/2 + c2*filt[1] + c3*filt[1]
    or
    if ABS(filt1)>pk[1] then …
    are calculated? I am attempting to replicate the filter in different language but I don’t understand those recursive terms:
    in the first expression filt[1] is not defined, so in the second expression pk[1]. How can the platform calculate them?

  4. Bard • 04/21/2016 #

    This is a such a great filter, but you know what happens when the bandedge value is incorrect…
    What if it was coded to self optimise much in the same way that Cynthia Kase’s Peak Oscillator did — https://www.prorealcode.com/prorealtime-indicators/kase-peak-oscillator-v2/
    — is that even possible @nicolas?

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
Nicolas
10 years ago
Coppock curve
Coppock curve
1
Indicators
caspita Thanks!
Nicolas
10 years ago
Kase Dev Stop
Kase Dev Stop
11
Indicators
Nicolas Yes Brad, do it. Post your other request on the dedicated indicator post. Thanks. I'll upda...
ooples Can anyone explain to me what Low[2] and Close[2] mean exactly?
Suzu Yuk The above-mentioned Kase’s research white paper link was broken and not working. http://www...
Nicolas
10 years ago
Jean-Claude REGIS ok merci pour la rapidité de la réponse  cordialement    vu ça fonctionne me reste q...
Balian Merci pour l'indicateur J'ai l'impression qu'un truc cloche. Les triggers sont systémtiqeme...
Balian Tout va bien. J'avais mal lu
Nicolas
10 years ago
XBKZ Bonjour, Je trouve votre indicateur très intéressant. J'ai essayé de créer un autre indicat...
Nicolas Pour visualiser une variable, il suffit de l'ajouter dans la fonction RETURN et la plateform...
cruxtrader Hello Nicolas, Is this script Ninjatrader Compatible ?
Yantra "i believe this indicator could help any trend followers in trading decision. " I'm wonderin...
Nicolas
10 years ago
Nicolas
10 years ago
Petrus Hi Nicolas.I found this indicator very interesting and wanted to code it in form of histogra...
Nicolas
10 years ago
cedwimmer Hab es schon gefunden vielen Dank!:)
guidocir Hello Nicolas, I imported your code, but it doesn't draw many boxes, but just a single one...
Nicolas It depends of your settings. Try to reduce the box size or to expand the units displayed.
Nicolas
10 years ago
Percentage from MA
Percentage from MA
2
Indicators
gabri Great job. If you divide the numerator by xEMA and not Close you obtain the Disparity Index ...
AnamaTrader ah, great, was just looking for something similar. will try this. I have also been consideri...
Sofitech Bonjour. J'aimerais savoir s'il est possible de "truquer" un peu l'indicateur pour qu'il don...
Maz I actually like this very simple idea. It can also be useful for market micro-structure syst...
Nicolas Thanks Maz, I'll have a look tomorrow.
Nicolas Why not, but a stock screener for what conditions?
Dimi.A Whenever the yellow CCI line goes "outside" the bands. Which will alert us of possible rever...
Nicolas ok why not, please add a request in the appropriate forum section, many thanks.
lolo
10 years ago
Know Sure Thing
Know Sure Thing
0
Indicators
lolo
10 years ago
PD-Retrace
PD-Retrace
0
Indicators
lolo
10 years ago
Donchian
Donchian
0
Indicators
lolo
10 years ago
PriceDistance
PriceDistance
0
Indicators
lolo
10 years ago
lolo
10 years ago
Fisher Transform
Fisher Transform
15
Indicators
Derek In line 10 there is a value missing for the calculation. You can cross check it here on page...
Coldtrade Hello. I'm new to programming and don't understand the algebraic meaning of the formula: Va...
Derek You are right, There is something odd with this line of code. It should be A = B + n * A[1...

Top