Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //@version=5
- indicator('lin reg + sd osc', overlay=false, precision=2)
- len0 = input.int(1, minval=1, title='in vwma len')
- reglen = input.int(40, minval=1, title='reg len')
- sdlen = input.int(40, minval=1, title='sd len')
- sds = input.int(2, minval=1, title='sds')
- fastsds = input.float(1.5, minval=0, title='fast move sds')
- devsmalen = input.int(2, minval=1, title='dev sma len')
- statlen = input.int(100, minval=1, title='in band % len')
- source = input(close, title='source')
- in_1 = len0 < 2 ? math.log(source) : ta.vwma(math.log(source), len0)
- reg = ta.linreg(in_1, reglen, 0)
- dev = in_1 - reg
- sd = ta.stdev(dev, sdlen)
- sig = dev / sd
- outBand = math.abs(sig) > sds
- fastMove = math.abs(ta.change(sig)) > fastsds
- // how many bars until price is in band if it goes sideways
- hline(sds)
- hline(0)
- hline(-sds)
- plot(sig, title='dev', color=color.new(outBand ? color.red : fastMove ? color.yellow : color.aqua, 40), linewidth=1, style=plot.style_columns)
- plot(ta.sma(sig, devsmalen), title='dev sma', color=color.new(color.gray, 10), linewidth=2, style=plot.style_line)
- plot(ta.sma(outBand ? 1 : 0, statlen), color=color.new(color.red, 100), title='outBand')
- plot(ta.sma(fastMove ? 1 : 0, statlen), color=color.new(color.yellow, 100), title='fastMove')
Advertisement
Add Comment
Please, Sign In to add comment