Diabolicus

color-coded Relative Strength Index

1917 visualizzazioni
126
color coded RSI that looks at larger time frame RSIs for confirmation (2 times and 4 times the selected RSI length).
Script open-source

Nello spirito di condivisione promosso da TradingView, l'autore (al quale vanno i nostri ringraziamenti) ha deciso di pubblicare questo script in modalità open-source, così che chiunque possa comprenderlo e testarlo. Puoi utilizzarlo gratuitamente, ma il riutilizzo del codice è subordinato al rispetto del Regolamento. Per aggiungerlo al grafico, mettilo tra i preferiti.

Vuoi usare questo script sui tuoi grafici?
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 )