Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // @version=4
- study(title="ATR + Trailing Stops", shorttitle="ATR Trail", overlay=true, linktoseries=true)
- atrLookback = input(defval=14,title="ATR Lookback Period",type=input.integer)
- multiplier = input(defval=2,title="ATR Multiplier",type=input.float, step=0.1, minval=0.5, maxval=4)
- trailMode = input(title="Trail Mode", defval="Trailing", options=["Running", "Trailing"])
- flipInput = input(title="Flip Trail on:", defval="Close", options=["Close","Wick"])
- len = input(1, minval=1, title="Length")
- src = input(close, title="Source")
- out = sma(src, len)
- atrValue = atr(atrLookback)
- atrMultiplied = atrValue * multiplier
- atrLow = low - atrMultiplied
- atrHigh = high + atrMultiplied
- trailAtrLow = atrLow
- trailAtrHigh = atrHigh
- trailAtrLow := na(trailAtrLow[1]) ? trailAtrLow : atrLow >= trailAtrLow[1] ? atrLow : trailAtrLow[1]
- trailAtrHigh := na(trailAtrHigh[1]) ? trailAtrHigh : atrHigh <= trailAtrHigh[1] ? atrHigh : trailAtrHigh[1]
- isLong = true
- isShort = true
- flipSourceLong = flipInput == "Close" ? close : flipInput == "Wick" ? high : na
- flipSourceShort = flipInput == "Close" ? close : flipInput == "Wick" ? low : na
- isLong := flipSourceLong > trailAtrHigh and flipSourceLong[1] <= trailAtrHigh[1] ? true : false
- isShort := flipSourceShort < trailAtrLow and flipSourceShort[1] >= trailAtrLow[1] ? true : false
- isLong := isLong[1] and not isShort ? true : isLong
- isShort := isShort[1] and not isLong ? true : isShort
- trailAtrLow := isLong and not isLong[1] ? atrLow : trailAtrLow
- trailAtrHigh := isShort and not isShort[1] ? atrHigh : trailAtrHigh
- trailAtrLowPlot = isLong ? trailAtrLow : not isLong and not isShort ? trailAtrLow : na
- trailAtrHighPlot = isShort ? trailAtrHigh : not isLong and not isShort ? trailAtrHigh: na
- longShortColor = isLong ? color.blue : isShort ? color.red : na
- p1 = plot(trailMode == "Running" ? atrLow : na, "Running ATR Low", color=color.blue, linewidth=1, transp=60)
- p2 = plot(trailMode == "Running" ? atrHigh : na,"Running ATR High", color=color.blue, linewidth=1, transp=60)
- p3 = plot(trailMode == "Trailing" ? na(trailAtrHighPlot) ? trailAtrLowPlot : trailAtrHighPlot : na, "Trailing ATR", color=longShortColor, style=plot.style_linebr)
- p4 = plot(out, color=longShortColor, title="MA")
- fill(p1,p2)
- fill(p3,p4, color=longShortColor)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement