alexgrover

Dynamically Adjustable Filter

alexgrover Wizard Mis à jour   
Introduction

Inspired from the Kalman filter this indicator aim to provide a good result in term of smoothness and reactivity while letting the user the option to increase/decrease smoothing.

Optimality And Dynamical Adjustment

This indicator is constructed in the same manner as many adaptive moving averages by using exponential averaging with a smoothing variable, this is described by :

x= x_1 + a(y - x_1)

where y is the input price (measurements) and a is the smoothing variable, with Kalman filters a is often replaced by K or Kalman Gain, this Gain is what adjust the estimate to the measurements. In the indicator K is calculated as follow :

K = Absolute Error of the estimate/(Absolute Error of the estimate + Measurements Dispersion * length)

The error of the estimate is just the absolute difference between the measurements and the estimate, the dispersion is the measurements standard deviation and length is a parameter controlling smoothness. K adjust to price volatility and try to provide a good estimate no matter the size of length. In order to increase reactivity the price input (measurements) has been summed with the estimate error.

Now this indicator use a fraction of what a Kalman filter use for its entire calculation, therefore the covariance update has been discarded as well as the extrapolation part.

About parameters length control the filter smoothness, the lag reduction option create more reactive results.

Conclusion

You can create smoothing variables for any adaptive indicator by using the : a/(a+b) form since this operation always return values between 0 and 1 as long as a and b are positive. Hope it help !

Thanks for reading !

Notes de version:
Updated to version 3

Check out the indicators we are making at luxalgo: www.tradingview.com/u/LuxAlgo/
Script open-source

Dans le véritable esprit de TradingView, l'auteur de ce script l'a publié en open-source, afin que les traders puissent le comprendre et le vérifier. Bravo à l'auteur! Vous pouvez l'utiliser gratuitement, mais la réutilisation de ce code dans une publication est régie par le règlement. Vous pouvez le mettre en favori pour l'utiliser sur un graphique.

Clause de non-responsabilité

Les informations et les publications ne sont pas destinées à être, et ne constituent pas, des conseils ou des recommandations en matière de finance, d'investissement, de trading ou d'autres types de conseils fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.

Vous voulez utiliser ce script sur un graphique ?