RSI_Period = input(6, title='RSI Length') SF = input(5, title='RSI Smoothing') Q = input(3, title=' Q ') ThreshHold = input(3, title="TH") // src = input(close, title="RSI Source") // // Wilders_Period = RSI_Period * 2 - 1 Rsi = rsi(src, RSI_Period) RsiMa = ema(Rsi, SF) AtrRsi = abs(RsiMa[1] - RsiMa) MaAtrRsi = ema(AtrRsi, Wilders_Period) dar = ema(MaAtrRsi, Wilders_Period) * Q longband = 0.0 shortband = 0.0 trend = 0 DeltaFastAtrRsi = dar RSIndex = RsiMa newshortband = RSIndex + DeltaFastAtrRsi newlongband = RSIndex - DeltaFastAtrRsi longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband cross_1 = cross(longband[1], RSIndex) trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1) FastAtrRsiTL = trend == 1 ? longband : shortband //////////////////// length = input(50, minval=1, title="BL") mult = input(0.35, minval=0.001, maxval=5, step=0.1, title="BB M") basis = sma(FastAtrRsiTL - 50, length) dev = mult * stdev(FastAtrRsiTL - 50, length) upper = basis + dev lower = basis - dev color_bar = RsiMa - 50 > upper ? #00c3ff : RsiMa - 50 < lower ? #ff0062 : color.gray // // Zero cross Qzlong = 0 Qzlong := nz(Qzlong[1]) Qzshort = 0 Qzshort := nz(Qzshort[1]) Qzlong := RSIndex >= 50 ? Qzlong + 1 : 0 Qzshort := RSIndex < 50 ? Qzshort + 1 : 0 // Zero = hline(0, color=#FFFFFF, linestyle=hline.style_dotted, linewidth=1) //////////////////////////////////////////////////////////////// RSI_Period2 = input(6, title='RSI Length') SF2 = input(5, title='RSI Smoothing') Q2 = input(1.61, title=' Q2 ') ThreshHold2 = input(3, title="TH") src2 = input(close, title="RSI Source") // // Wilders_Period2 = RSI_Period2 * 2 - 1 Rsi2 = rsi(src2, RSI_Period2) RsiMa2 = ema(Rsi2, SF2) AtrRsi2 = abs(RsiMa2[1] - RsiMa2) MaAtrRsi2 = ema(AtrRsi2, Wilders_Period2) dar2 = ema(MaAtrRsi2, Wilders_Period2) * Q2 longband2 = 0.0 shortband2 = 0.0 trend2 = 0 DeltaFastAtrRsi2 = dar2 RSIndex2 = RsiMa2 newshortband2 = RSIndex2 + DeltaFastAtrRsi2 newlongband2 = RSIndex2 - DeltaFastAtrRsi2 longband2 := RSIndex2[1] > longband2[1] and RSIndex2 > longband2[1] ? max(longband2[1], newlongband2) : newlongband2 shortband2 := RSIndex2[1] < shortband2[1] and RSIndex2 < shortband2[1] ? min(shortband2[1], newshortband2) : newshortband2 cross_2 = cross(longband2[1], RSIndex2) trend2 := cross(RSIndex2, shortband2[1]) ? 1 : cross_2 ? -1 : nz(trend2[1], 1) FastAtrRsi2TL = trend2 == 1 ? longband2 : shortband2 // // Zero cross Q2zlong = 0 Q2zlong := nz(Q2zlong[1]) Q2zshort = 0 Q2zshort := nz(Q2zshort[1]) Q2zlong := RSIndex2 >= 50 ? Q2zlong + 1 : 0 Q2zshort := RSIndex2 < 50 ? Q2zshort + 1 : 0 // hcolor2 = RsiMa2 - 50 > ThreshHold2 ? #B2B5BE : RsiMa2 - 50 < 0 - ThreshHold2 ? #B2B5BE : na plot(FastAtrRsi2TL - 50, title='Q Line', color=#FFFFFF, transp=0, linewidth=2) plot(RsiMa2 - 50, color=hcolor2, transp=50, title='Histo2', style=plot.style_columns) Greenbar1 = RsiMa2 - 50 > ThreshHold2 Greenbar2 = RsiMa - 50 > upper Redbar1 = RsiMa2 - 50 < 0 - ThreshHold2 Redbar2 = RsiMa - 50 < lower plot(Greenbar1 and Greenbar2 == 1 ? RsiMa2 - 50 : na, title="Q Up", style=plot.style_columns, color=#FFFF00, transp=0) plot(Redbar1 and Redbar2 == 1 ? RsiMa2 - 50 : na, title="Q Down", style=plot.style_columns, color=#FF7F00, transp=0)