This is a multi-time frame Stoch RSI based on Chris Moody's "CM_Stochastic_MTF". Changes are primarily cosmetic and the "stock" signal and Stoch RSI calculations are retained.
// Originally scripted by ChrisMoody on October 23, 2014 for user platinumFX // Retooled by Quicksilver study(title="Super Stoch", shorttitle="Super Stoch") // Upper, Middle, and Lower line display options sml = input(true, title="Show Mid Line?") upLine = input(80, minval=50, maxval=90, title="Upper Line") lowLine = input(20, minval=10, maxval=50, title="Lower Line") // Strict signal display options sch = input(true, title="Show background highlights on strict crossings?") sl = input(true, title="Show 'B' and 'S' on strict crossings?") // General signal display options sbh = input(false, title="Show background highlights when Stoch is Overbought/Oversold?") sac = input(false, title="Show background highlightss on any crossings?") sacl = input(false, title="Show 'b' and 's' on any crossings?") // Stoch 1 len = input(14, minval=1, title="Stoch1 Len") smoothK = input(3, minval=1, title="Stoch1 K") smoothD = input(3, minval=1, title="Stoch1 D") res = input(title="Stoch1 Resolution", type=resolution, defval="120") // Stoch 1 formula k = sma(stoch(close, high, low, len), smoothK) d = sma(k, smoothD) outK = security(tickerid, res, k) outD = security(tickerid, res, d) // Stoch 2 ssStoch = input(true, title="Show Stoch2 ?") useCurrentRes2 = input(false, title="Use current timeframe For Stoch2 ?") resCustom2 = input(title="Stoch2 Resolution", type=resolution, defval="D") len2 = input(14, minval=1, title="Stoch2 Len") smoothK2 = input(3, minval=1, title="Stoch2 K") smoothD2 = input(3, minval=1, title="Stoch2 D") res2 = useCurrentRes2 ? period : resCustom2 // Stoch2 formula k2 = sma(stoch(close, high, low, len2), smoothK2) d2 = sma(k2, smoothD2) outK2 = security(tickerid, res2, k2) outD2 = security(tickerid, res2, d2) // Signal definitions aboveLine = outK > upLine ? 1 : 0 belowLine = outK < lowLine ? 1 : 0 crossUp = (outK[1] < outD[1] and outK[1] < lowLine[1]) and (outK > outD) ? 1 : 0 crossDn = (outK[1] > outD[1] and outK[1] > upLine[1]) and (outK < outD) ? 1 : 0 //Definition for Cross that doesn't have to be above or below High and Low line. crossUpAll = (outK[1] < outD[1] and outK > outD) ? 1 : 0 crossDownAll = (outK[1] > outD[1] and outK < outD) ? 1 : 0 // BackGroound Color Plots bgcolor(sbh and aboveLine ? red : na, transp=80) bgcolor(sbh and belowLine ? lime : na, transp=80) bgcolor(sch and crossUp ? lime : na, transp=80) bgcolor(sch and crossDn ? red : na, transp=80) //plots for Cross with no filter bgcolor(sac and crossUpAll ? lime : na, transp=80) bgcolor(sac and crossDownAll ? red : na, transp=80) //Plot Stoch1 plot(outK, title="Stoch K", style=line, linewidth=1, color=orange) plot(outD, title="Stoch D", style=line, linewidth=1, color=blue) // Plot Stoch2 plot(ssStoch and outK2 ? outK2 : na, title="K2", style=line, linewidth=1, color=red) plot(ssStoch and outD2 ? outD2 : na, title="D2", style=line, linewidth=1, color=green) p1 = plot(upLine, title= "Upper Line", style=solid, linewidth=1, color=gray) p2 = plot(lowLine, title= "Lower Line", style=solid, linewidth=1, color=gray) plot(sml and 50 ? 50 : na, title="Mid Line", style=linebr, linewidth=1, color=gray) plotchar(sl and crossUp ? crossUp : na, title="Strict Buy", char='B', location=location.bottom, color=lime, transp=0, offset=0) plotchar(sl and crossDn ? crossDn : na, title="Strict Sell", char='S', location=location.top, color=yellow, transp=0, offset=0) plotchar(sacl and crossUpAll ? crossUpAll : na, title="Any Buy", char='b', location=location.bottom, color=blue, transp=0, offset=0) plotchar(sacl and crossDownAll ? crossDownAll : na, title="Any Sell", char='s', location=location.top, color=red, transp=0, offset=0)