Ehlers Simple Decycler

Ehlers Simple Decycler

This indicator was originally developed by John F. Ehlers (Stocks & Commodities , V.33:10 (September, 2015): “Decyclers”).

Mr. Ehlers suggested a way to improve trend identification using high-pass filters. The basic smoothers like SMA , low-pass filters, have considerable lag in their display. Mr. Ehlers applied the high-pass filter and subtracted the high-pass filter output from the time series input. Doing these steps he removed high-frequency short-wavelength components (the ones causing the wiggles) from the time series.

As a result he got a special series of the low-frequency components with virtually no lag – the Decycler.

The Decycler is plotted with two additional lines (the percent-shifts of Decycler) and together they form a hysteresis band.

If the prices are above the upper hysteresis line, then the market is in an uptrend. If the prices are below the low hysteresis line, then the market is in a downtrend. Prices within the hysteresis band are trend-neutral.

(description found on the web, indicator converted from Pinescript language following multiple requests on the forums).


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. Vinks_o_7 • 04/08/2020 #

    Thanks !

  2. ggolfet • 04/08/2020 #

    I tried to apply the indicator on a daily and weekly chart, but there’s something wrong. Probably I made an error. The indicator does not “follow” the chart. It’s plotted above or under the chart (it depends on the stock you plot). I used the itf file. Have you got any suggestion. The indicator seems very useful.

    • Nicolas • 04/08/2020 #

      Try to adapt the “highpassLength”

    • ggolfet • 04/08/2020 #

      Thank you very much, on a daily / weekly chart it works with highpass lenght near 3-4.

    • avatar
      thebigdeal • 04/08/2020 #

      Ehlers Simple Decycler, bjr nicolas, je trouve cet indicateur assez démentiel, ?…. prometteur pour une stratégie avec levier à mettre en place … , pensez vous que celà en vaut la peine ? et si ou sur quelle indicateur etf ou cfd d’après vous ? en daily ? merci YJ

  3. Bard • 04/08/2020 #

    Cheers, a great addition Nicolas!

  4. jacob78692110 • 04/08/2020 #

    hi, i have past the code and the indicator is not in the graphique. he’s down like RSI

    • Nicolas • 04/08/2020 #

      Apply it on the price in the price settings window

  5. Bewater • 04/08/2020 #


  6. eva.g.forsgren • 04/08/2020 #

    I cant make it work in anyway.

    • Nicolas • 04/08/2020 #

      Play with the “highpassLength” settings and add more units displayed on your chart.

  7. MrEastwood • 04/08/2020 #

    Interesting indicator! Can anyone get it working for longer “highpasslengths”? I’ve been testing lengths of 80-100 on a 1 min chart, but the result just looks strange…

  8. fj_pastor • 04/08/2020 #

    Hello Nicolas,
    Really thank you for your work.
    I am trying to use this indicator on a 1 minute price time frame chart, but the indicator should be calculated on a 1 hour time frame.
    When I use the TIMEFRAME(1 hour, Updateonclose) on the 1 minute price chart I never arrive to the same values as in a 1 hour price chart.
    I work on the DAX IG future.
    I have extensively tested the issue and it starts to deviate at the market opening (01:00 and 02:00).
    If I try to remove those hours from the calculation, it does not work.
    Do you have a suggestion where is the problem ?
    Thanks in advance.

    You can try it by adding the TIMEFRAME (1 hour, Updateonclose) on the code and test it on a 1 minute and 1 hour chart.
    Due to the different barindex measurement, you have to use a 80.000 minute chart vs a 10.000 hour chart to get similar time span.

    • Nicolas • 04/08/2020 #

      Check your custom trading hours and use the default market ones.

  9. fj_pastor • 04/08/2020 #

    Hello Nicolas,
    Thanks again for all your support.
    Finally I debugged the problem.
    The simple code attached at 01:59 in DAX and NQ (did not test in other indexes) gives a different value in DEMO mode IG platform.
    Retested in the Premium and it works OK ???
    Same date -> different values ???

    Two day of testing …

    Kind regards

    The releases for Demo and Premium are different ?

  10. kallistos • 04/08/2020 #

    Hi Nicolas,

    Thank you very much indeed for this indicator (and all the others you are providing)!

    I am using the Ehler’s Simple Decycler as well as the Ehler’s Decycler Oszillator for automatic trading.

    Both work very well but share one unfavourable characteristic:

    The variable HP forms an arch as an artifact at the entry of calculated values before reaching the actual price level. This artifact invalidates the indicator for the concerned periods.

    (HP is being subtracted from the price value to obtain the indicator value: decycler = src – hp.)

    The arc’s extend depends on the parameter value of HIGHPASSLENGTH. With larger values it becomes quite significant.

    These are some period numbers at which the indicator first touches the actual price range and becomes valid that I have measured when applying different values of HIGHPASSLENGTH:

    100: ~2.500
    200: ~10.000
    300: ~18.000
    400: ~38.000
    500: ~55.000

    This effect does not seem to be dependent on the underlying instrument or time frame.

    My personal workaround is to not go into the marked based on the indicator before it has crossed over the instrument’s price, say, two or three times. However, trading is delayed using this method.

    1) Can we circumvent the initial arc formed by HP?

    2) If not: Can we somehow estimate the number of periods that takes the indicator to reflect a valid value?

    Thank you very much once again!


Register or


avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar avatar

+3 more likes

Related users ' posts
2 days ago
Kalman Filter
Kalman Filter
Madrosat how do you use carnazzi filter in a strategy : smoothing , stop ,tendance
7 months ago
Bruno Carnazzi Il me semble que la fonction "floor" n'est disponible qu'avec PRT11, à vérifier
DELBERT Bonjour , merci pour votre réponse , je m'excuse je suis avec PRT v10.3 donc c'est indicateu...
Nicolas c'est juste, c'est une instruction très récente.
zilliq Thanks @Nicolas. I tried to use it as Trend in a proorder system, but don't know why, it doe...
Suzu Yuk He is right. MT and mavgMT are not defined and causing errors.....
RubberToe Is there something we are missing here, I just get the same curved line as well...
Khaled @Nicolas, Hi Nicolas, I've downloaded the itf and it doesn't display as an Oscillator, it"s ...
sal157011 I think the problem here is that you must feed the trigonometric functions cos and sin with ...
2 years ago
Nicolas La définition des couleurs se situent entre les lignes 94 et 118. Selon le type de bougie (h...
Manu35250 Bonjour Nicolas, Est il possible de convertir cet indicateur en screener ? J'essaie depui...
Nicolas Bien sûr, merci de formuler la demande dans le forum approprié en respectant les règles de p...
RicLg Merci Nicolas pour le retour. En effet on récupère "the Last value" du dernier Point de t...
Nicolas c'est exactement ce que je fais entre les lignes 58 et 64 pour pouvoir tracer la ligne complète
Italo Fabian Nicolas, Ces matrices sont-elles des vecteurs unidimensionnels ou multidimensionnels? Depu...
Actaru5 Caio Jan, con ognuno dei setting ottieni un indicatore visualizzato diverso, ma tutti sono ...
ggolfet Hi Actarus, what's the name of the histogram indicator below Apple's chart?
Actaru5 Flag ShowState in setting and show histogram
Morrissey38 Muchísimas gracias Nicolás , muy amable.
Bruno Carnazzi extrèmement pertinent
Bruno Carnazzi Is that beatable ?
Sapo Thank you for your indicators. As always it's perfect, I thank you for your help it's preci...
Sapo Thank you very much. as always your indicators are extremely effective. kind regards Vonasi.
mitsu21 Hi, it looks nice. I'll try it tomorrow thank you for your share kind regards bruno
kj1988 Thank you Vonasi for sharing this indicator. Very useful as a comfirmation to the price act...
Vonasi Sure that is possible. I will code it and make a post in the English ProBuilder forum and pu...
Vonasi Vama v2 with Hull moving average included can be found here:
JMat45 Thank you, Vonasi.
eivaremir have u got the trading view version?
Bard I've also just noticed that changing the "Bands Deviation" setting from 1.25 to eg 3 doesn't...
bartekz Hi @Nicolas, Really impressed by your work. I am trying to replicate the Wave-PM indicator t...
Nicolas You don't have to replicate it, download the file and import it into your platform.
Nicolas Sorry I do not provide assistance for Tradestation code.
surfeur Bonjour, Je suis pas expert en PRT donc si qq'un peut m'expliquer un peu le code ? Par...
Nicolas src c'est bien le customclose en effet. ATR, si aucune série de données n'est spécifié, il u...