PINE LIBRARY

CommonFilters

Updated
Library "CommonFilters"
Collection of some common Filters and Moving Averages. This collection is not encyclopaedic, but to declutter my other scripts. Suggestions are welcome, though. Many filters here are based on the work of John F. Ehlers

sma(src, len) Simple Moving Average
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

ema(src, len) Exponential Moving Average
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

rma(src, len) Wilder's Smoothing (Running Moving Average)
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

hma(src, len) Hull Moving Average
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

vwma(src, len) Volume Weighted Moving Average
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

hp2(src) Simple denoiser
  Parameters:
    src: Series to use
  Returns: Filtered series

fir2(src) Zero at 2 bar cycle period by John F. Ehlers
  Parameters:
    src: Series to use
  Returns: Filtered series

fir3(src) Zero at 3 bar cycle period by John F. Ehlers
  Parameters:
    src: Series to use
  Returns: Filtered series

fir23(src) Zero at 2 bar and 3 bar cycle periods by John F. Ehlers
  Parameters:
    src: Series to use
  Returns: Filtered series

fir234(src) Zero at 2, 3 and 4 bar cycle periods by John F. Ehlers
  Parameters:
    src: Series to use
  Returns: Filtered series

hp(src, len) High Pass Filter for cyclic components shorter than langth. Part of Roofing Filter by John F. Ehlers
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

supers2(src, len) 2-pole Super Smoother by John F. Ehlers
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

filt11(src, len) Filt11 is a variant of 2-pole Super Smoother with error averaging for zero-lag response by John F. Ehlers
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

supers3(src, len) 3-pole Super Smoother by John F. Ehlers
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

hannFIR(src, len) Hann Window Filter by John F. Ehlers
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

hammingFIR(src, len) Hamming Window Filter (inspired by John F. Ehlers). Simplified implementation as Pedestal input parameter cannot be supplied, so I calculate it from the supplied length
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

triangleFIR(src, len) Triangle Window Filter by John F. Ehlers
  Parameters:
    src: Series to use
    len: Filtering length
  Returns: Filtered series

doPrefilter(type, src) Execute a particular Prefilter from the list
  Parameters:
    type: Prefilter type to use
    src: Series to use
  Returns: Filtered series

doMA(type, src, len) Execute a particular MA from the list
  Parameters:
    type: MA type to use
    src: Series to use
    len: Filtering length
  Returns: Filtered series
Release Notes
v2 Added Jurik MA (JMA):
jma(src, len, phase) Jurik MA
  Parameters:
    src: Series to use
    len: Filtering length
    phase: JMA Phase
  Returns: Filtered series
Based on the reverse-engineered JMA documented by somebody called Igor: c.mql5.com/forextsd/forum/164/jurik_1.pdf
Inspired by everget implementation:
Jurik Moving Average

Inspired by gorx1 implementation:
Jurik Moving Average

As JMA is a proprietary closed-source algorithm, every JMA implementation I've seen is based on the Igor's document
Many of the implementations, however, are not true to the source
As far as I know, this is the first correct JMA implementation on TradingView
As the Igor's document itself is incomplete, however, there is some grey area still...
MATHtechindicator

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House rules.


Tips in TradingView Coins are appreciated
Also on:

Disclaimer