Wjadevries

WJA RSI+EMA

RSI with EMA of RSI, shifted forward
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.

Declinazione di responsabilità

Le informazioni ed i contenuti pubblicati non costituiscono in alcun modo una sollecitazione ad investire o ad operare nei mercati finanziari. Non sono inoltre fornite o supportate da TradingView. Maggiori dettagli nelle Condizioni d'uso.

Vuoi usare questo script sui tuoi grafici?
//@version=2
study(title="WJA RSI+EMA", shorttitle="WJA RSI+EMA", overlay=false, precision=0)
len = input(14, minval=1, title="RSI Length")
src = input(hlc3, title="Source", type=source)
len2 = input(21, minval=1, title="EMA of RSI Length")
shift = input(13, title="Shift EMA")
usesma = input(false, title="SMA ipv EMA", type=bool)

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))

emaRSI = usesma ? sma(rsi,len2) : ema(rsi,len2) 
ematrend = rsi>emaRSI[shift] ? 1 : rsi<emaRSI[shift] ? -1 : 0
rsicol = ematrend==1 ? green : ematrend==-1 ? red : silver

rsiplot=plot(rsi, title="RSI", style=line, linewidth=2, color=ematrend==1 and rsi<50 ? silver : ematrend==-1 and rsi>50 ? silver : rsicol)
plot(emaRSI, title="EMA of RSI", style=dashed, linewidth=1, color=orange, offset=shift)

plot(ematrend==ematrend[1] ? na : rsi, title="EMA cross", style=circles, linewidth=3, color=rsicol)

hline(50, title="Middle line", linestyle=dashed, linewidth=1, color=gray)
band1 = hline(70, title="Upper Line", linestyle=dashed, linewidth=1, color=red)
band0 = hline(30, title="Lower Line", linestyle=dashed, linewidth=1, color=green)
fill(band1, band0, color=purple, transp=90)

upperplot = plot(rsi<70?na:70, transp=100)
lowerplot = plot(rsi>30?na:30, transp=100)

fill(rsiplot,upperplot,color=green, transp=70)
fill(rsiplot,lowerplot,color=red, transp=70)