Indicador Ehlers Simple Decycler de Tradingview para pasarlo a PRT
Este indicador fue desarrollado originalmente por John F. Ehlers (Stocks & Commodities, V.33: 10 (septiembre de 2015): “Decyclers”).
El Sr. Ehlers sugirió una forma de mejorar la identificación de tendencias utilizando filtros de paso alto. Los suavizadores básicos como SMA, filtros de paso bajo, tienen un retraso considerable en su pantalla. El Sr. Ehlers aplicó el filtro de paso alto y resta la salida del filtro de paso alto de la entrada de la serie temporal. Al seguir estos pasos, eliminó los componentes de alta frecuencia de longitud de onda corta (los que causan las sacudidas) de la serie de tiempo.
Como resultado, obtuvo una serie especial de componentes de baja frecuencia prácticamente sin retraso: el Decycler.
El Decycler se traza con dos líneas adicionales (los cambios porcentuales de Decycler) y juntas forman una banda de histéresis.
Si los precios están por encima de la línea de histéresis superior, entonces el mercado está en una tendencia alcista. Si los precios están por debajo de la línea de histéresis baja, entonces el mercado está en una tendencia bajista. Los precios dentro de la banda de histéresis son neutrales en tendencia.
https://de.tradingview.com/script/ZuIZPR4q-Ehlers-Simple-Decycler/
//@version=3
// Copyright (c) 2019-present, Alex Orekhov (everget)
// Ehlers Simple Decycler script may be freely distributed under the MIT license.
study("Ehlers Simple Decycler", shorttitle="Decycler", overlay=true)
highpassLength = input(title="Highpass Period", type=integer, defval=125)
upperPercent = input(title="Upper Band % Shift", type=float, minval=0, step=0.1, defval=0.5)
lowerPercent = input(title="Lower Band % Shift", type=float, minval=0, step=0.1, defval=0.5)
src = input(title="Source", type=source, defval=close)
highlightMovements = input(title="Highlight Decycler Movements ?", type=bool, defval=true)
PI = 2 * asin(1)
// High-pass Filter
alphaArg = 2 * PI / (highpassLength * sqrt(2))
alpha = 0.0
alpha := cos(alphaArg) != 0
? (cos(alphaArg) + sin(alphaArg) - 1) / cos(alphaArg)
: nz(alpha[1])
hp = 0.0
hp := pow(1 - (alpha / 2), 2) * (src - 2 * nz(src[1]) + nz(src[2])) + 2 * (1 - alpha) * nz(hp[1]) - pow(1 - alpha, 2) * nz(hp[2])
decycler = src - hp
decyclerColor = highlightMovements ? (decycler >= decycler[1] ? green : red) : #741b47
plot(decycler, title="Decycler", linewidth=2, color=decyclerColor, transp=0)
upperBand = (1 + upperPercent / 100) * decycler
lowerBand = (1 - lowerPercent / 100) * decycler
bandColor = #138484
upperBandPlot = plot(upperBand, title="Upper", color=bandColor)
lowerBandPlot = plot(lowerBand, title="Lower", color=bandColor)
fill(upperBandPlot, lowerBandPlot, title="Background", color=color(#ffd966, 84))