Los codificadores Pine ahora pueden usar longitudes calculadas dinámicamente en las siguientes funciones:
alma() change() highest() highestbars() linreg() lowest() lowestbars() mom() sma() sum() vwma() wma()
Las longitudes de las series facilitarán la creación de indicadores adaptables de Pine mediante cálculos basados en períodos variables. Vea aquí, por ejemplo, cómo usamos la volatilidad para acortar o alargar el período de ALMA en la línea gruesa y compárelo con el ALMA estático que se muestra con la línea delgada:
//@version=4 study("Adaptive ALMA", "AALMA", true) i_minLen = input(10, minval = 1) i_maxLen = input(60, minval = 1) i_adaptPct = input(3., minval = 0, maxval = 100) / 100.0 startingLen = avg(i_minLen, i_maxLen) var float dynamicLen = startingLen highVolatility = atr(10) > atr(40) if highVolatility dynamicLen := max(i_minLen, dynamicLen * (1 - i_adaptPct)) else dynamicLen := min(i_maxLen, dynamicLen * (1 + i_adaptPct)) dynamicAlma = alma(close, int(dynamicLen), 0.85, 6) staticAlma = alma(close, int(startingLen), 0.85, 6) maColor(_ma) => close > _ma ? highVolatility ? #40FF00ff : #40FF0060 : highVolatility ? #FF0080ff : #FF008060 plot(dynamicAlma, "Dynamic Alma", maColor(dynamicAlma), 3) plot(staticAlma, "Static Alma", maColor(staticAlma), 1) // Follow the calculated Length in the Data Window. plotchar(dynamicLen, "dynamicLength", "")
Aunque puede ser útil usar flotantes para calcular longitudes dinámicamente, recuerde convertirlos en un «int» antes de usarlos en llamadas a funciones, como lo hacemos en nuestro ejemplo. También tenga en cuenta que, como de costumbre, estas funciones requieren evaluación en cada barra, por lo que deben usarse fuera de los bucles `for` y los bloques` if` no se ejecutan en cada barra.
Esperamos que esta nueva función que solicitó sea útil. Continúe enviándonos sus comentarios para mejorar. Creamos TradingView para usted y nos encanta escuchar lo que piensa de estas actualizaciones tan solicitadas de nuestra plataforma.