red/green background
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=orange) //plot(rma(min(v_low1,v_low2), 9), color=red) //plot(rma(low, 9), color=blue) //plot(rma(high, 9), color=green)