OPEN-SOURCE SCRIPT

Damped Sine Wave Weighted Filter

Introduction

Remember that we can make filters by using convolution, that is summing the product between the input and the filter coefficients, the set of filter coefficients is sometime denoted "kernel", those coefficients can be a same value (simple moving average), a linear function (linearly weighted moving average), a gaussian function (gaussian filter), a polynomial function (lsma of degree p with p = order of the polynomial), you can make many types of kernels, note however that it is easy to fall into the redundancy trap.

Today a low-lag filter who weight the price with a damped sine wave is proposed, the filter characteristics are discussed below.

A Damped Sine Wave

A damped sine wave is a like a sine wave with the difference that the sine wave peak amplitude decay over time.

imagen

A damped sine wave

Used Kernel

We use a damped sine wave of period length as kernel.

imagen

The coefficients underweight older values which allow the filter to reduce lag.

Step Response

imagen

Because the filter has overshoot in the step response we can conclude that there are frequencies amplified in the passband, we could have reached to this conclusion by simply seeing the negative values in the kernel or the "zero-lag" effect on the closing price.

Enough ! We Want To See The Filter !

I should indeed stop bothering you with transient responses but its always good to see how the filter act on simpler signals before seeing it on the closing price. The filter has low-lag and can be used as input for other indicators

imagen

Filter with length = 100 as input for the rsi.

imagen

The bands trailing stop utility using rolling squared mean average error with length 500 using the filter of length 500 as input.

Approximating A Least Squares Moving Average

A least squares moving average has a linear kernel with certain values under 0, a lsma of length k can be approximated using the proposed filter using period p where p = k + k/4.

imagen

Proposed filter (red) with length = 250 and lsma (blue) with length = 200.

Conclusions

The use of damping in filter design can provide extremely useful filters, in fact the ideal kernel, the sinc function, is also a damped sine wave.





filterMoving Averageszerolag

Script de código abierto

Siguiendo fielmente el espíritu de TradingView, el autor de este script lo ha publicado en código abierto, permitiendo que otros traders puedan entenderlo y verificarlo. ¡Olé por el autor! Puede utilizarlo de forma gratuita, pero tenga en cuenta que la reutilización de este código en la publicación se rige por las Normas internas. Puede añadir este script a sus favoritos y usarlo en un gráfico.

¿Quiere utilizar este script en un gráfico?


Check out the indicators we are making at luxalgo: tradingview.com/u/LuxAlgo/
También en:

Exención de responsabilidad