OPEN-SOURCE SCRIPT

STD-Filtered, Gaussian-Kernel-Weighted Moving Average [Loxx]

Updated
STD-Filtered, Gaussian-Kernel-Weighted Moving Average [Loxx] is a moving average that weights price by using a Gaussian kernel function to calculate data points. This indicator also allows for filtering both source input price and output signal using a standard deviation filter.

Purpose
This purpose of this indicator is to take the concept of Kernel estimation and apply it in a way where instead of predicting past values, the weighted function predicts the current bar value at each bar to create a moving average that is suitable for trading. Normally this method is used to create an array of past estimators to model past data but this method is not useful for trading as the past values will repaint. This moving average does NOT repaint, however you much allow signals to close on the current bar before taking the signal. You can compare this to Nadaraya-Watson Estimator [LUX] wherein they use Nadaraya-Watson estimator method with normalized kernel weighted function to model price.

What are Kernel Functions?
A kernel function is used as a weighing function to develop non-parametric regression model is discussed. In the beginning of the article, a brief discussion about properties of kernel functions and steps to build kernels around data points are presented.

Kernel Function
In non-parametric statistics, a kernel is a weighting function which satisfies the following properties.

  • A kernel function must be symmetrical. Mathematically this property can be expressed as K (-u) = K (+u). The symmetric property of kernel function enables its maximum value (max(K(u)) to lie in the middle of the curve.
  • The area under the curve of the function must be equal to one. Mathematically, this property is expressed as: integral −∞ + ∞ ∫ K(u)d(u) = 1
  • Value of kernel function can not be negative i.e. K(u) ≥ 0 for all −∞ < u < ∞.


Kernel Estimation
In this article, Gaussian kernel function is used to calculate kernels for the data points. The equation for Gaussian kernel is:

K(u) = (1 / sqrt(2pi)) * e^(-0.5 *(j / bw)^2)

Where xi is the observed data point. j is the value where kernel function is computed and bw is called the bandwidth. Bandwidth in kernel regression is called the smoothing parameter because it controls variance and bias in the output. The effect of bandwidth value on model prediction is discussed later in this article.

Included
*Loxx's Expanded Source types
*Signals
*Alerts
*Bar coloring
Release Notes
Updated inputs.
Release Notes
Corrected input error.
gaussiangaussiankernelkernelkernelestimationMoving AveragesnadarayawatsonStandard DeviationStandard Deviation (Volatility)stdfiltered

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?


Public Telegram Group, t.me/algxtrading_public

VIP Membership Info: patreon.com/algxtrading/membership
Also on:

Disclaimer