TradingView
veryfid
2023年5月25日午前1時2分

KernelFunctionsFilters 

Bitcoin all time history indexINDEX

詳細

Library "KernelFunctionsFilters"
This library provides filters for non-repainting kernel functions for Nadaraya-Watson estimator implementations made by @jdehorty. Filters include a smoothing formula and zero lag formula. You can find examples in the code. For more information check out the original library KernelFunctions.

rationalQuadratic(_src, _lookback, _relativeWeight, startAtBar, _filter)
  Parameters:
    _src (float)
    _lookback (simple int)
    _relativeWeight (simple float)
    startAtBar (simple int)
    _filter (simple string)

gaussian(_src, _lookback, startAtBar, _filter)
  Parameters:
    _src (float)
    _lookback (simple int)
    startAtBar (simple int)
    _filter (simple string)

periodic(_src, _lookback, _period, startAtBar, _filter)
  Parameters:
    _src (float)
    _lookback (simple int)
    _period (simple int)
    startAtBar (simple int)
    _filter (simple string)

locallyPeriodic(_src, _lookback, _period, startAtBar, _filter)
  Parameters:
    _src (float)
    _lookback (simple int)
    _period (simple int)
    startAtBar (simple int)
    _filter (simple string)

j(line1, line2)
  Parameters:
    line1 (float)
    line2 (float)

リリースノート

v2
Examples of usage:
line1 = rationalQuadratic(close, 8, 1, 25,"No Filter")
line2 = gaussian(close, 16, 25,"Smooth")
line3 = periodic(close, 8, 100, 25,"Zero Lag")

Updated:
rationalQuadratic(_src, _lookback, _relativeWeight, startAtBar, _filter)
  Rational Quadratic Kernel - An infinite sum of Gaussian Kernels of different length scales.
  Parameters:
    _src (float): <float series> The source series.
    _lookback (simple int): <simple int> The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars.
    _relativeWeight (simple float): <simple float> Relative weighting of time frames. Smaller values resut in a more stretched out curve and larger values will result in a more wiggly curve. As this value approaches zero, the longer time frames will exert more influence on the estimation. As this value approaches infinity, the behavior of the Rational Quadratic Kernel will become identical to the Gaussian kernel.
    startAtBar (simple int): <simple int> Bar index on which to start regression. The first bars of a chart are often highly volatile, and omission of these initial bars often leads to a better overall fit.
    _filter (simple string): <simple string> The filter used on formula. Choice of "No Filter", "Smooth" and "Zero Lag"
  Returns: lineout <float series> The estimated values according to the Rational Quadratic Kernel.

gaussian(_src, _lookback, startAtBar, _filter)
  Gaussian Kernel - A weighted average of the source series. The weights are determined by the Radial Basis Function (RBF).
  Parameters:
    _src (float): <float series> The source series.
    _lookback (simple int): <simple int> The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars.
    startAtBar (simple int): <simple int> Bar index on which to start regression. The first bars of a chart are often highly volatile, and omission of these initial bars often leads to a better overall fit.
    _filter (simple string): <simple string> The filter used on formula. Choice of "No Filter", "Smooth" and "Zero Lag"
  Returns: lineout <float series> The estimated values according to the Gaussian Kernel.

periodic(_src, _lookback, _period, startAtBar, _filter)
  Periodic Kernel - The periodic kernel (derived by David Mackay) allows one to model functions which repeat themselves exactly.
  Parameters:
    _src (float): <float series> The source series.
    _lookback (simple int): <simple int> The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars.
    _period (simple int): <simple int> The distance between repititions of the function.
    startAtBar (simple int): <simple int> Bar index on which to start regression. The first bars of a chart are often highly volatile, and omission of these initial bars often leads to a better overall fit.
    _filter (simple string): <simple string> The filter used on formula. Choice of "No Filter", "Smooth" and "Zero Lag"
  Returns: lineout <float series> The estimated values according to the Periodic Kernel.

locallyPeriodic(_src, _lookback, _period, startAtBar, _filter)
  Locally Periodic Kernel - The locally periodic kernel is a periodic function that slowly varies with time. It is the product of the Periodic Kernel and the Gaussian Kernel.
  Parameters:
    _src (float): <float series> The source series.
    _lookback (simple int): <simple int> The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars.
    _period (simple int): <simple int> The distance between repititions of the function.
    startAtBar (simple int): <simple int> Bar index on which to start regression. The first bars of a chart are often highly volatile, and omission of these initial bars often leads to a better overall fit.
    _filter (simple string): <simple string> The filter used on formula. Choice of "No Filter", "Smooth" and "Zero Lag"
  Returns: lineout <float series> The estimated values according to the Locally Periodic Kernel.

j(line1, line2)
  J Line - Calculates the J line from K and D lines.
  Parameters:
    line1 (float): <float> Source 1 (K)
    line2 (float): <float> Source 2 (D)
  Returns: j <float series> The value of J
コメント
RicardoSantos
Thank you.
this are certainly useful, can you provide reference documentation for the functions, that would certainly improve its usage.
veryfid
Hi @RicardoSantos, thanks for the coins. Yes I can push an update with the reference docs.
whipit8976909
Very nice coding👌. Thank you!
Mupsje
nice again ;)

maybe ad the Epanechnikov kernel also..

// Epanechnikov kernel function
epanechnikov_kernel(_src, _size, _h, _r) =>
_currentWeight = 0.0
_cumulativeWeight = 0.0
for i = 0 to _size
y = _src
u = math.pow(i, 2) / (math.pow(_h, 2) * _r)
w = (u >= 1) ? 0 : (3. / 4) * (1 - math.pow(u, 2))
_currentWeight := _currentWeight + y * w
_cumulativeWeight := _cumulativeWeight + w
_currentWeight / _cumulativeWeight

greets Casa ;)
veryfid
@Mupsje, Hi Casa, thanks for stopping by. Epanechnikov is a great kernel, I will have to make sure the code is open source before I can add it.
詳細