Advertisement
PineCoders

ATR Trail

Sep 12th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. // @version=4
  2.  
  3. study(title="ATR + Trailing Stops", shorttitle="ATR Trail", overlay=true, linktoseries=true)
  4.  
  5. atrLookback = input(defval=14,title="ATR Lookback Period",type=input.integer)
  6. multiplier = input(defval=2,title="ATR Multiplier",type=input.float, step=0.1, minval=0.5, maxval=4)
  7. trailMode = input(title="Trail Mode", defval="Trailing", options=["Running", "Trailing"])
  8. flipInput = input(title="Flip Trail on:", defval="Close", options=["Close","Wick"])
  9. len = input(1, minval=1, title="Length")
  10. src = input(close, title="Source")
  11. out = sma(src, len)
  12.  
  13. atrValue = atr(atrLookback)
  14. atrMultiplied = atrValue * multiplier
  15. atrLow = low - atrMultiplied
  16. atrHigh = high + atrMultiplied
  17. trailAtrLow = atrLow
  18. trailAtrHigh = atrHigh
  19. trailAtrLow := na(trailAtrLow[1]) ? trailAtrLow : atrLow >= trailAtrLow[1] ? atrLow : trailAtrLow[1]
  20. trailAtrHigh := na(trailAtrHigh[1]) ? trailAtrHigh : atrHigh <= trailAtrHigh[1] ? atrHigh : trailAtrHigh[1]
  21.  
  22. isLong = true
  23. isShort = true
  24. flipSourceLong = flipInput == "Close" ? close : flipInput == "Wick" ? high : na
  25. flipSourceShort = flipInput == "Close" ? close : flipInput == "Wick" ? low : na
  26. isLong := flipSourceLong > trailAtrHigh and flipSourceLong[1] <= trailAtrHigh[1] ? true : false
  27. isShort := flipSourceShort < trailAtrLow and flipSourceShort[1] >= trailAtrLow[1] ? true : false
  28. isLong := isLong[1] and not isShort ? true : isLong
  29. isShort := isShort[1] and not isLong ? true : isShort
  30.  
  31. trailAtrLow := isLong and not isLong[1] ? atrLow : trailAtrLow
  32. trailAtrHigh := isShort and not isShort[1] ? atrHigh : trailAtrHigh
  33. trailAtrLowPlot = isLong ? trailAtrLow : not isLong and not isShort ? trailAtrLow : na
  34. trailAtrHighPlot = isShort ? trailAtrHigh : not isLong and not isShort ? trailAtrHigh: na
  35.  
  36. longShortColor = isLong ? color.blue : isShort ? color.red : na
  37. p1 = plot(trailMode == "Running" ? atrLow : na, "Running ATR Low", color=color.blue, linewidth=1, transp=60)
  38. p2 = plot(trailMode == "Running" ? atrHigh : na,"Running ATR High", color=color.blue, linewidth=1, transp=60)
  39. p3 = plot(trailMode == "Trailing" ? na(trailAtrHighPlot) ? trailAtrLowPlot : trailAtrHighPlot : na, "Trailing ATR", color=longShortColor, style=plot.style_linebr)
  40. p4 = plot(out, color=longShortColor, title="MA")
  41. fill(p1,p2)
  42. fill(p3,p4, color=longShortColor)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement