CM Stochastic Multi-TimeFrame

Multi TimeFrame Stochastic Loaded With Features.

Ability to turn On/Off Crosses Only Above or Below High/Low Lines.
User sets Values Of High/Low lines.
Ability to turn On/Off All Crosses, Both BackGround Highlights and “B”, “S” Letters.
Ability to turn On/Off BackGround Highlights if Stoch is Above Or Below High/Low Lines.
Ability to All or Any Combination of these Features.

Multi Timeframe Capabilities:
Stoch defaults to current timeframe. You can change to many other timeframes.
Ability to turn On/Off Plotting 2nd Stoch on same TimeFrame with different settings
Ability to turn On/Off Plotting 2nd Stoch on Different TimeFrame

Much More…All Inputs and Options are Adjustable in Inputs Tab.

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.

Want to use this script on a chart?
//Created by ChrisMoody on October 23, 2014 by user request - platinumFX
//Defaults to current timeframe Ability to change to different timeframe, or plot two RSI's on different timeframes.
study(title="CM_Stochastic_MTF", shorttitle="CM_Stoch_MTF")
len = input(14, minval=1, title="Length for Main Stochastic") 
smoothK = input(3, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(20, minval=10, maxval=50, title="Lower Line Value?")
sml = input(true, title="Show Mid Line?")
sbh = input(false, title="Show Back Ground Highlights When Stoch is Above/Below High/Low Lines?")
sch = input(true, title="Show Back Ground Highlights When Stoch Cross - Strict Criteria - K Greater/LesThan High/Low Line - Crosses D ?")
sl = input(true, title="Show 'B' and 'S' Letters When Stoch Crosses High/Low Line & D?")
sac = input(false, title="Show Back Ground Highlights When Stoch Cross - Any Cross?")
sacl = input(false, title="Show 'B' and 'S' Letters When Stoch Crosses - Any Cross?")
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=resolution, defval="60")
ssStoch = input(false, title="Show 2nd Stoch?")
resCustom2 = input(title="Use 2nd Stoch? Check Box Above", type=resolution, defval="D")
useCurrentRes2 = input(false, title="Use 2nd Stoch Plot On Samet Timeframe?")
len2 = input(14, minval=1, title="2nd Stoch Length")
smoothK2 = input(3, minval=1, title="SmoothK for 2nd Stoch")
smoothD2 = input(3, minval=1, title="SmoothD for 2nd Stoch")
//Resolutioon for MTF
res = useCurrentRes ? period : resCustom
res2 = useCurrentRes2 ? period : resCustom2
//Stoch formula
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)
outK = security(tickerid, res, k)
outD = security(tickerid, res, d)
//Optional 2nd Stoch for additional plot
k2 = sma(stoch(close, high, low, len2), smoothK2)
d2 = sma(k2, smoothD2)
outK2 = security(tickerid, res2, k2)
outD2 = security(tickerid, res2, d2)
//definitions for Cross
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=70)
bgcolor(sbh and belowLine ? lime : na, transp=70)
bgcolor(sch and crossUp ? lime : na, transp=40)
bgcolor(sch and crossDn ? red : na, transp=40)
//plots for Cross with no filter
bgcolor(sac and crossUpAll ? lime : na, transp=40)
bgcolor(sac and crossDownAll ? red : na, transp=40)
//Plot main Stochastic
plot(outK, title="Stoch K", style=line, linewidth=3, color=lime)
plot(outD, title="Stoch D", style=line, linewidth=3, color=red)
//Ability to plot 2nd Stoch
plot(ssStoch and outK2 ? outK2 : na, title="2nd Stoch K - Different TimeFrame", style=line, linewidth=3, color=orange)
plot(ssStoch and outD2 ? outD2 : na, title="2nd Stoch D - Different TimeFrame", style=line, linewidth=3, color=yellow)

p1 = plot(upLine, title= "Upper Line", style=solid, linewidth=3, color=red)
p2 = plot(lowLine, title= "Lower Line", style=solid, linewidth=3, color=lime)
plot(sml and 50 ? 50 : na, title="Mid Line", style=linebr, linewidth=2, color=gray)
plotchar(sl and crossUp ? crossUp : na, title="Buy Signal Strict Criteria", char='B', location=location.bottom, color=lime, transp=0, offset=0)
plotchar(sl and crossDn ? crossDn : na, title="Sell Signal Strict Criteria", char='S',, color=red, transp=0, offset=0)
plotchar(sacl and crossUpAll ? crossUpAll : na, title="Buy Signal Any Cross Up", char='B', location=location.bottom, color=lime, transp=0, offset=0)
plotchar(sacl and crossDownAll ? crossDownAll : na, title="Sell Signal Any Cross Down", char='S',, color=red, transp=0, offset=0)
fill(p1, p2, color=silver, transp=70)