Diabolicus

color-coded Relative Strength Index

color coded RSI that looks at larger time frame RSIs for confirmation (2 times and 4 times the selected RSI length).
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?
study(title="color-coded Relative Strength Index", shorttitle="ccRSI 1.0 [Dia]")
src_1 = ohlc4
len_1 = input(9, minval=1, title="Length")
len_2 = 2*len_1
len_3 = 2*len_2
get_rsi(src,len)=>
    up = rma(max(change(src), 0), len)
    down = rma(-min(change(src), 0), len)
    rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsi_1 = get_rsi(src_1,len_1)
rsi_2 = get_rsi(src_1,len_2)
rsi_3 = get_rsi(src_1,len_3)

plot(rsi_1, color=purple)
plot(rsi_2, color=green)
plot(rsi_3, color=blue)
band1 = hline(70)
band0 = hline(30)
fill(band1, band0, color=purple, transp=90)
sent_1 = rsi_1
sent_2 = rsi_1 > 70 or rsi_1 < 30 ? rsi_2 < 30 ? -(30-rsi_2)/2 :  rsi_2 > 70 ? (rsi_2-70)/2 : 0 : 0
sent_3 = rsi_1 > 70 or rsi_1 < 30 ? rsi_3 < 30 ? -(30-rsi_3)/2 :  rsi_3 > 70 ? (rsi_3-70)/2 : 0 : 0
sent = 100-(sent_1 + sent_2 + sent_3)
col01 = sent                <=  10 ? 1 : 0
col02 = sent >  10 and sent <=  20 ? 1 : 0
col03 = sent >  20 and sent <=  30 ? 1 : 0
col04 = sent >  30 and sent <   70 ? 1 : 0
col05 = sent >= 70 and sent <   80 ? 1 : 0
col06 = sent >= 80 and sent <   90 ? 1 : 0
col07 = sent >= 90                 ? 1 : 0

bgcolor01 = bgcolor(col01 > 0 ? #FF0000 : na,transp=0)
bgcolor02 = bgcolor(col02 > 0 ? #FF5400 : na,transp=25)
bgcolor03 = bgcolor(col03 > 0 ? #FFAA00 : na,transp=50)
bgcolor04 = bgcolor(col04 > 0 ? #FFFF00 : na,transp=75)
bgcolor05 = bgcolor(col05 > 0 ? #AAFF00 : na,transp=50)
bgcolor06 = bgcolor(col06 > 0 ? #54FF00 : na,transp=25)
bgcolor07 = bgcolor(col07 > 0 ? #00FF00 : na,transp=0)

//colors
col1 = #FF0000
col2 = #FF5400
col3 = #FFAA00
col4 = #FFFF00
col5 = #AAFF00
col6 = #54FF00
col7 = #00FF00

//color conditions
cc01 = sent                <=  10 ? 1 : 0
cc02 = sent >  10 and sent <=  20 ? 1 : 0
cc03 = sent >  20 and sent <=  30 ? 1 : 0
cc04 = sent >  30 and sent <   70 ? 1 : 0
cc05 = sent >= 70 and sent <   80 ? 1 : 0
cc06 = sent >= 80 and sent <   90 ? 1 : 0
cc07 = sent >= 90                 ? 1 : 0

signal_color = cc01> 0?col1:cc02> 0?col2:cc03> 0?col3:cc04> 0?col4:cc05> 0?col5:cc06> 0?col6:cc07> 0?col7:na
signal = sent <= 30 ? rsi_1+5 : sent >= 70 ? rsi_1-5 : na
plot_signal = plot(signal,color=signal_color,linewidth=3,style=circles )