alexgrover

Multi Poles Zero-Lag Exponential Moving Average

Introduction

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 https://www.mql5.com/en/code/24031

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.

Conclusion

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
Favori Komutlardan Çıkart Favori Komutlara Ekle
Show your support by donating

BTC : 1J5BQYnx5Wb2akoSfc3ykeShtvmXGsgP6W

ETH : 0xc418eE4039D16EDf44C52dFa292EAbdF117954B3

Yorumlar

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 Nasıl Çalışır 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 Tanıdık yönlendirme Destek Kayıtlarım Destek Merkezi Yayınlanmış Fikirler Takip Edenler Takip Ediliyor Özel Mesajlar Sohbet Çıkış