Dynamické argumenty délky pro některé Pine funkce

Následující funkce nyní podporují dynamicky vypočítané parametry.

alma()
change()
highest()
highestbars()
linreg()
lowest()
lowestbars()
mom()
sma()
sum()
vwma()
wma()

Tato aktualizace zjednoduší tvorbu adaptivních Pine indikátorů založených na proměnných intervalech.

Zde je příklad použití volatility k prodloužení / zkrácení periody ALMA (tlustá čára) v porovnání se statickou ALMA (tenká čára):

//@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", "")

Přestože se často hodí počítat s typem float, funkce přijímají pouze int (celá čísla). Také berte na vědomí, že tyto funkce potřebují vyhodnotit každou svíčku, a proto je nepoužívejte mimo cykly které procházejí všechny svíčky.

https://www.tradingview.com/blog/en/pine-functions-support-dynamic-length-arguments-20554/

Komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *