RicardoSantos

[RS]Price Advance & Decline Range Analysis

i use this mainly to extract average Advance and Decline values to use on linear regression lines.
Skrypt open-source

Zgodnie z prawdziwym duchem TradingView, autor tego skryptu opublikował go jako open-source, aby traderzy mogli go zrozumieć i zweryfikować. Brawo dla autora! Możesz używać go za darmo, ale ponowne wykorzystanie tego kodu w publikacji jest regulowane przez Dobre Praktyki. Możesz go oznaczyć jako ulubione, aby użyć go na wykresie.

Wyłączenie odpowiedzialności

Informacje i publikacje przygotowane przez TradingView lub jego użytkowników, prezentowane na tej stronie, nie stanowią rekomendacji ani porad handlowych, inwestycyjnych i finansowych i nie powinny być w ten sposób traktowane ani wykorzystywane. Więcej informacji na ten temat znajdziesz w naszym Regulaminie.

Chcesz użyć tego skryptu na wykresie?
study(title="[RS]Price Advance & Decline Range Analysis V0", shorttitle="PA&DRA.V0", precision=5)
seriesA = input("open")
seriesB = input("close")
AverageType = input("cap")
length = input(24)

sa = seriesA == "open" ? open :
        seriesA == "close" ? close :
        seriesA == "high" ? high :
        seriesA == "low" ? low :
        seriesA == "hl2" ? hl2 :
        seriesA == "hlc3" ? hlc3 :
        seriesA == "ohlc4" ? ohlc4 : na

sb = seriesB == "open" ? open :
        seriesB == "close" ? close :
        seriesB == "high" ? high :
        seriesB == "low" ? low :
        seriesB == "hl2" ? hl2 :
        seriesB == "hlc3" ? hlc3 :
        seriesB == "ohlc4" ? ohlc4 : na

//difrange = abs(sa-sb)
posdifrange = sb-sa >= 0 ? sb-sa : 0
negdifrange = sb-sa <= 0 ? sb-sa : 0

//dfappex = nz(dfappex[1]) <= difrange ? difrange : nz(dfappex[1])
pdfappex = nz(pdfappex[1]) <= posdifrange ? posdifrange : nz(pdfappex[1])
ndfappex = nz(ndfappex[1]) >= negdifrange ? negdifrange : nz(ndfappex[1])

avgposrange = AverageType == "cap" ? cum(posdifrange)/(1+n) :
        AverageType == "sma" ? sma(posdifrange, length) :
        AverageType == "ema" ? ema(posdifrange, length) :
        AverageType == "dema" ? ema(ema(posdifrange, length),length) : na
avgnegrange = AverageType == "cap" ? cum(negdifrange)/(1+n) :
        AverageType == "sma" ? sma(negdifrange, length) :
        AverageType == "ema" ? ema(negdifrange, length) :
        AverageType == "dema" ? ema(ema(negdifrange, length),length) : na

avgmaxposrange = pdfappex * 0.7
avgmaxnegrange = ndfappex * 0.7

//plot(difrange)
plot(posdifrange, color=green, style=columns)
plot(negdifrange, color=red, style=columns)

//plot(dfappex, color=gray)
ta0 = plot(pdfappex, color=maroon, style=circles, linewidth=1)
ba0 = plot(ndfappex, color=green, style=circles, linewidth=1)

plot(avgposrange, color=gray, linewidth=2)
plot(avgnegrange, color=gray, linewidth=2)

ta1 = plot(avgmaxposrange, color=red, linewidth=1)
ba1 = plot(avgmaxnegrange, color=lime, linewidth=1)

fill(ta0, ta1, color=red, transp=75)
fill(ba0, ba1, color=lime, transp=75)

hline(0, color=black)