xmd79

lin reg + sd osc

Nov 17th, 2021
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. //@version=5
  2. indicator('lin reg + sd osc', overlay=false, precision=2)
  3.  
  4. len0 = input.int(1, minval=1, title='in vwma len')
  5. reglen = input.int(40, minval=1, title='reg len')
  6. sdlen = input.int(40, minval=1, title='sd len')
  7. sds = input.int(2, minval=1, title='sds')
  8. fastsds = input.float(1.5, minval=0, title='fast move sds')
  9. devsmalen = input.int(2, minval=1, title='dev sma len')
  10. statlen = input.int(100, minval=1, title='in band % len')
  11. source = input(close, title='source')
  12.  
  13. in_1 = len0 < 2 ? math.log(source) : ta.vwma(math.log(source), len0)
  14. reg = ta.linreg(in_1, reglen, 0)
  15. dev = in_1 - reg
  16. sd = ta.stdev(dev, sdlen)
  17. sig = dev / sd
  18.  
  19. outBand = math.abs(sig) > sds
  20. fastMove = math.abs(ta.change(sig)) > fastsds
  21.  
  22. // how many bars until price is in band if it goes sideways
  23.  
  24. hline(sds)
  25. hline(0)
  26. hline(-sds)
  27. plot(sig, title='dev', color=color.new(outBand ? color.red : fastMove ? color.yellow : color.aqua, 40), linewidth=1, style=plot.style_columns)
  28. plot(ta.sma(sig, devsmalen), title='dev sma', color=color.new(color.gray, 10), linewidth=2, style=plot.style_line)
  29. plot(ta.sma(outBand ? 1 : 0, statlen), color=color.new(color.red, 100), title='outBand')
  30. plot(ta.sma(fastMove ? 1 : 0, statlen), color=color.new(color.yellow, 100), title='fastMove')
  31.  
  32.  
Advertisement
Add Comment
Please, Sign In to add comment