vyacheslav.shindin

Rufey range

Best crossover indicator

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("Rufey range", overlay=true)

len_di_plus1 = 12
len_di_minus1 = 4

vh1 = highest(avg(low, open, close), len_di_minus1)
vl1 = lowest(avg(high, open, close), len_di_plus1)

// TEMA
ema1 = ema(open, 8)
ema2 = ema(ema1, 8)
ema3 = ema(ema2, 8)
tema = 3 * (ema1 - ema2) + ema3

vc = tema

up1 = change(vh1)
down1 = -change(vl1)

true_range1 = max(max(vh1-vl1, abs(vh1-nz(vc))), abs(vl1-nz(vc)))

trur_di_plus1 = rma(true_range1, len_di_plus1)
trur_di_minus1 = rma(true_range1, len_di_minus1)

plus1 = fixnan(100 * rma(up1 > down1 and up1 > 0 ? up1 : 0, len_di_plus1) / trur_di_plus1)
minus1 = fixnan(100 * rma(down1 > up1 and down1 > 0 ? down1 : 0, len_di_minus1) / trur_di_minus1)

c1 = ((plus1 > minus1)) ? lime : ((plus1 < minus1)) ? red : na
bgcolor(c1, transp=90)

h = rma(high-low, 4)

v1 = avg(vh1, vl1)

v_high1 = v1+(h/2)*0.61803398875
v_low1 = v1-(h/2)*0.61803398875

// ---

len_di_plus2 = 12
len_di_minus2 = 4

vh2 = highest(avg(low, open, close), len_di_plus2)
vl2 = lowest(avg(high, open, close), len_di_minus2)

up2 = change(vh2)
down2 = -change(vl2)

true_range2 = max(max(vh2-vl2, abs(vh2-nz(vc))), abs(vl2-nz(vc)))

trur_di_plus2 = rma(true_range2, len_di_plus2)
trur_di_minus2 = rma(true_range2, len_di_minus2)

plus2 = fixnan(100 * rma(up2 > down2 and up2 > 0 ? up2 : 0, len_di_plus2) / trur_di_plus2)
minus2 = fixnan(100 * rma(down2 > up2 and down2 > 0 ? down2 : 0, len_di_minus2) / trur_di_minus2)

c2 = ((plus2 > minus2)) ? lime : ((plus2 < minus2)) ? red : na
bgcolor(c2, transp=90)

v2 = avg(vh2, vl2)
v_high2 = v2+(h/2)*0.61803398875
v_low2 = v2-(h/2)*0.61803398875

//plot(rma(max(v_high1,v_high2), 9), color=red)
plot(rma(min(v_low1,v_low2), 9), color=red)
plot(rma(low, 9), color=blue)