Moderator: admin
//--study(title="Connors RSI")
study("Connors RSI Test", shorttitle = "CRSI Test", overlay=false)
//--------------- input parameters
src = input(defval=close, type=source, title="Source")
lenrsi = input(3, minval=1, type=integer, title="RSI Length")
lenupdown = input(2, minval=1, type=integer, title="UpDown Length")
lenroc = input(100, minval=1, type=integer, title="ROC Length")
//--------------- define function
updown(s) =>
isEqual = s == s[1]
isGrowing = s > s[1]
ud = isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1])+1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1])-1)
ud
//--------------- calculate RSIs
rsi = rsi(src, lenrsi)
updownrsi = rsi(updown(src), lenupdown)
percentrank = percentrank(roc(src, 1), lenroc)
crsi = avg(rsi, updownrsi, percentrank)
//--------------- calculate signal
sig1 = (close >= open) and (crsi < (crsi[1] - 3)) ? 1 : na
sig2 = (close <= open) and (crsi > (crsi[1] + 3)) ? 1 : na
//-------------- plotting
plot(crsi, color=blue, linewidth=1, title="Connors RSI")
band1 = hline(70, color=gray, linestyle=dashed)
band2 = hline(30, color=gray, linestyle=dashed)
fill(band1, band2)
plotshape(sig1, style=shape.labeldown, size=size.tiny, location=location.top, color=red)
plotshape(sig2, style=shape.labelup, size=size.tiny, location=location.bottom, color=blue)
//--END
Users browsing this forum: Bing [Bot] and 168 guests