Multi Poles Zero-Lag Exponential Moving Average


Based on the exponential averaging method with lag reduction, this filter allow for smoother results thanks to a multi-poles approach. Translated and modified from the Non-Linear Kalman Filter from Mladen Rakic 01 /07/19

The Indicator

length control the amount of smoothing, the poles can be from 1 to 3, higher values create smoother results.

Difference With Classic Exponential Smoothing

A classic 1 depth recursion (Single smoothing) exponential moving average is defined as y = αx + (1 - α)y which can be derived into y = y + α(x - y)

2 depth recursion (Double smoothing) exponential moving average sum y with b in order to reduce the error with x, this method is calculated as follow :

  • y = αx + (1 - α)(y + b)
  • b = β(y - y) + (1-β)b

The initial value for y is x while its 0 for b with α generally equal to 2/(length + 1)

The filter use a different approach, from the estimation of α/β/γ to the filter construction.The formula is similar to the one used in the double exponential smoothing method with a difference in y and b

  • y = αx + (1 - α)y
  • d = x - y
  • b = (1-β)b + d
  • output = y + b

instead of updating y with b the two components are directly added in a separated variable. Poles help the transition band of the frequency response to get closer to the cutoff point, the cutoff of an exponential moving average is defined as :

Cf = F/2π acos(1 - α*α/(2(1 - α)))

Also in order to minimize the overshoot of the filter a correction has been added to the output now being output = y + 1/poles * b

While this information is far being helpful to you it simply say that poles help you filter a great amount of noise thus removing irregularities of the filter.


The filter is interesting and while being similar to multi-depth recursion smoothing allow for more varied results thanks to its 3 poles.

Feel free to send suggestions :)

Thanks for reading
Açık kaynak kodlu komut dosyası

Gerçek TradingView ruhuyla, bu komut dosyasının yazarı açık kaynak olarak yayınladı, böylece yatırımcılar bunu anlayabilir ve doğrulayabilir. Yazara tebrikler! Ücretsiz olarak kullanabilirsiniz, ancak bu kodun bir yayında yeniden kullanımı Kullanım Koşulları tarafından belirlenmektedir. Bir grafikte kullanmak için favorilerinize ekleyebilirsiniz.

Bu komut dosyasını bir grafikte kullanmak ister misiniz?

Become a Patreon and get access to exclusive technical indicators!

You can also check out some of the indicators I made for luxalgo :


Thank you @alexgrover for creating and publishing this Awesome Script !!! :)
I have put 7 of them on my chart @ lengths :5,15,30,60,90, 180 , and 360 (hlc3)
I have no idea how it works but I have used it every day for over 6 months now
and I have to say I really like the indicator
this is an underrated gem in my view

Thank you for being an inspiration to new pinescript enthusiasts

in my view your "Multi Depth Zero-Lag Exponential Moving Average" is the best thing since the classic "EMA" ribbon
I would also have to shout out the McGinley Dynamic as it is a favourite of my as well
and I all most for got the Vwap

after a bit of poking and prodding I was able to modify the script to be V4 compatible
when I get a bit better than I am now
I hope to have a ribbon of many lengths of this indicator in one script :)

Thank you kindly
+1 Cevap Gönder
alexgrover iamthree
@iamthree, Thanks a lot for your comment :) I am glad to hear your are using the indicator and that I could inspire others with my code, it means a lot ^^
+1 Cevap Gönder
iamthree alexgrover
@alexgrover, absolutely :)

I think i saw you do this once and now I cant stop


or //----

its the small things in life (hahahahahaha lol ) + :)

seriously though just looking though your scripts is an education :)

I just play with the code untill I find a synergy or harmony with my other indicators
that way they play of each other

I like this one because like it says on the description "LAG REDUCTION"
some times quicker is better !!! .... :)
Cevap Gönder
Very nice creations, thanks for your efforts and generosity =D
+1 Cevap Gönder
@ICEKI, Thank you for your support as always (how many times did i said that ?) :)
Cevap Gönder
ICEKI alexgrover
@alexgrover, LOL you're welcome no problem =D
+1 Cevap Gönder
Thank you for this line.
+1 Cevap Gönder
alexgrover aaahopper
@aaahopper, You are welcome :)
Cevap Gönder
Ana Sayfa Hisse Senedi Takipçisi Forex Takipçisi Kripto Takipçisi Ekonomik Takvim Hakkında Grafik Özellikleri Ücretlendirme Tanıdık yönlendirme Kurallarımız Destek Merkezi Web Sitesi & Aracı Kurum Çözümleri Görsel Bileşenler(Widget) Grafik Çözümleri Hafif Grafik Kitaplığı Blog ve Haberler Twitter
Profil Profil Ayarları Hesap ve Ödemeler Tavsiye edilen arkadaşlar Koinler Destek Kayıtlarım Destek Merkezi Özel Mesajlar Sohbet Çıkış