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
9 years ago
Wave Trend oscillator
Wave Trend oscillator
5
Indicators
Johan Yes. I made a call function and change that indicator so it included dynamic variables for c...
slamdunk Hi, is there an MT4 version of this indicator available? Thanks
Nicolas This website is dedicated to prorealtime trading platform. But you can ask others platforms...
Nicolas
9 years ago
Ergodic oscillator SMI
Ergodic oscillator SMI
2
Indicators
Regisnew Bonjour, merci pour cet indicateur, serait il possible de construire un screener qui ramène ...
Nicolas Oui c'est possible, merci de formuler votre demande dans le forum des screeners, en respecta...
DerPat Like your zero lag indicators.
David Thanks for the explanation Nicolas.
freecat1899 Hello, I wanted to create a percent ADR based on this indicator, so I wrote this code that I...
revstrat At first glance, I see this mistake. You shouldn't average the highs and the lows. You shoul...
sagittario75 Good morning, You might have a change to this code so that you change the time settings dir...
sandfred can this indicator be both converted into .mq4. i couldnt use it as .itf
Nicolas For any customized code, you can ask the programming services: https://www.prorealcode.com/t...
Nicolas
9 years ago
Choppiness index
Choppiness index
0
Indicators
eisi If i switch between different Markets, the Backgroundcolour will appear where it should not...
datageek How can I get alerts on colour change?
NAMBO40 Hello, I would like to add a 25 period SMA moving average. It's possible?
supertiti
9 years ago
Gian65 Hi I downloaded your indicator, and checked the pattern engulfing, but I think you should ch...
swapping ce n'est pas le bon endroit mais je n'ai pas eue de difficulté pour ajouter une image extern...
Bruno Carnazzi Moyenne mobile intéressante, dommage qu'elle soit si gourmande en puissance de calcul. Les v...
PeP2016 Hi, simple and nice idea. One question though: I read it removes small price fluctuations ...
Lior Green Doesn't work for me. Set values “compra” and “venta” to be shown as HISTOGRAM
Nicolas
9 years ago
thomas2004ch Hi Nicolas, >>This indicator code is not the one of the MACD divergence indicator a...
thomas2004ch I think I've found it. My questions: 1. Do you have the source code? 2. The following ...
Nicolas Hi, I'm not the author of this indicator. The MACD divergence source code of the one embedd...
s00071609 Hi, could you please suggest, what this codes gives, lowest[b](rsi[a]) -- just trying to us...
Nicolas lowest[b](rsi[a]) returns the lowest values of the RSI of "a" periods, over the last "b" per...
s00071609 Hi, what would be the code to get the price for last bullish DTOSC cross over. I am looking ...
xel @DerPat - I don't see any question regarding the indicator.  Anyway, I think I give enough l...
diegofe_2000 Xel, tu eres el creador de este indicador? Bueno te  cuento que es muy bueno para hacer est...
xel Buen día @diegofe_2000 -  Claro, mandalo y por aquí lo probamos en otros instrumentos y si g...
Doctrading I forgot to write at the beginning :  a = 50 b = 50 These are intermediate levels Sorry
DerPat Thank you. This one could be an aid in my current research on stochastics.
Pelayo it is possible that in line 12 we should put seuilinf=-b, thaks for all
Nicolas Thank you Pere!
M.Nicolas 81 Hola Nicolas. ¿Existe la posibilidad de que este indicador se muestre también en el históri...
Nicolas That would be possible to be coded using MTF indicator in PRT v11.
Nicolas
9 years ago
Bill Williams Fractals
Bill Williams Fractals
61
Indicators
stevzor Hi - bit of an old post but hopefully you see my comment lol. I'm trying to add this Wil...
Nicolas Add it on the price by using the wrench on the left upper side of the price chart.
withoutwings Hi All, I've made some fixes & upgrades so that this single script can either used as...
Nicolas
9 years ago
Pivot points intraday
Pivot points intraday
5
Indicators
Nicolas Why are you asking this question there? (and in other places in the forums that don't have a...
Brisvegas Nice code Nicholas and well done on writing it but in my opinion and mine only pivot points ...
Nicolas Thanks for the input and your opinion, but IMO, the pivot points are ones of the best suppor...
Nicolas
9 years ago
ATR percentile rank
ATR percentile rank
4
Indicators
Nicolas This indicator rank the actual ATR to its recent statistical values. So you can have a bette...
Brisvegas Thanks Nicolas , very handy tool , I have added variables to look back period and ATR perio...
rufus.round How easy is it to remove the overnight intraday bars from the calculation?
supertiti
9 years ago
CCI Magic DID V1
v10.3
CCI Magic DID V1
11
Indicators
supertiti Hola Angel Las funciones backgroundcolor etc etc no funcionan con la version 10.2. Para sa...
Lotech123 It may be a little late in the day, but having only just discovered this utility, I have mes...

Top