Using the Willams% sharped by Fisher tranformer , it s easy to find the bottom and top, and the BB% conferm the minimum. I plot as colored columns : yellow when the price touch the BB , and red or green when price move out from the bands, if the line of Willams also reach the top or bottom, that's the moment to act. In all indicator can change the setting as you like
//by Marco study(title=" Willams% Fisher transform confermated by BB%", shorttitle=" W% & BB%") length = input(20, minval=1,title="BB period") src = input(close, title="Source") mult = input(2.0, minval=0.001,step=0.05, maxval=50) useCurrentRes = input(true, title="Use Current Chart Resolution?") resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=resolution, defval="60") res = useCurrentRes ? period : resCustom len = input(14, minval=1, title="Length Willams") high_ = highest(len) low_ = lowest(len) round_(val) => val > .99 ? .999 : val < -.99 ? -.999 : val value = round_(.6+ ((close - high_) / max(high_ - low_, .001))+ .33 * nz(value[1])) fish1 = .5 * log((1 + value) / (1 - value)) co=fish1>1.1? red : fish1 <-0.2?green : blue out1 = security(tickerid, res, fish1) ff=plot(out1, color=co,histbase=.5, linewidth=2,title="Willams%") basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev bbr =(src - lower)/(upper - lower) del=upper-high ded=low-lower uu= del>del[1]? 1:0 ud=ded>ded[1]? 1:0 out2 = security(tickerid, res, bbr) col=high>upper or low<lower? yellow :high[1]>upper[1] and close<upper and uu?red :low[1]<lower[1] and close >lower and ud? green : teal plot(out2, style=columns,title="BB%",histbase=0.5,color=col,transp=40) band1 = hline(1.1, color=gray, linestyle=dashed) band2=hline(1.5) band0 = hline(-0.2, color=gray, linestyle=dashed) banda=hline(-.7) fill(band1, band2, color=red,transp=90) fill(band0, banda, color=green,transp=90)