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.

snapshot

A damped sine wave

Used Kernel

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

snapshot

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

Step Response

snapshot

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

snapshot

Filter with length = 100 as input for the rsi.

snapshot

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.

snapshot

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

Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in publication is governed by House rules. You can favorite it to use it on a chart.

Want to use this script on a chart?


Check out the indicators we are making at luxalgo: tradingview.com/u/LuxAlgo/
Also on:

Disclaimer