Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //@version=4
  2. study("SuperTrend TEST", overlay=true)
  3.  
  4. //This SuperTrend software is used on 15 minute chart. The second part of SuperTrend is for security on 120 minute timeframe.
  5. //SuperTrend should give signal on 15 minute chart only when SuperTrend is in same direction of 120 minute timeframe.
  6. length = input(title="ATR Period", type=input.integer, defval=7)
  7. mult = input(title="ATR Multiplier", type=input.float, step=0.1, defval=5)
  8. showLabels = input(title="Show Buy/Sell Labels ?", type=input.bool, defval=true)
  9.  
  10. atr = mult * atr(length)
  11.  
  12. longStop = hl2 - atr
  13. longStopPrev = nz(longStop[1], longStop)
  14. longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop
  15.  
  16. shortStop = hl2 + atr
  17. shortStopPrev = nz(shortStop[1], shortStop)
  18. shortStop := close[1] < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop
  19.  
  20. dir = 1
  21. dir := nz(dir[1], dir)
  22. dir := dir == -1 and close > shortStopPrev ? 1 :
  23. dir == 1 and close < longStopPrev ? -1 : dir
  24.  
  25. longColor = color.blue
  26. shortColor = color.red
  27.  
  28. //---------------
  29. //SuperTrend on 120 minute timeframe.
  30.  
  31. length120 = input(title="ATR Period", type=input.integer, defval=7)
  32. mult120 = input(title="ATR Multiplier", type=input.float, step=0.1, defval=5)
  33.  
  34. atr120 = mult120 * atr(length120)
  35. sechigh120 = security(syminfo.ticker, "120", (high), lookahead = barmerge.lookahead_on)
  36. seclow120 = security(syminfo.ticker, "120", (low), lookahead = barmerge.lookahead_on)
  37. secclose120 = security(syminfo.ticker, "120", (close), lookahead = barmerge.lookahead_on)
  38. longStop120 = (sechigh120 + seclow120)/2 - atr120
  39. longStopPrev120 = nz(longStop120[1], longStop120)
  40. longStop120 := secclose120[1] > longStopPrev120 ? max(longStop120, longStopPrev120) : longStop120
  41.  
  42. shortStop120 = (sechigh120 + seclow120)/2 + atr120
  43. shortStopPrev120 = nz(shortStop120[1], shortStop120)
  44. shortStop120 := secclose120[1] < shortStopPrev120 ? min(shortStop120, shortStopPrev120) : shortStop120
  45.  
  46. dir120 = 1
  47. dir120 := nz(dir120[1], dir120)
  48. dir120 := dir120 == -1 and secclose120 > shortStopPrev120 ? 1 :
  49. dir120 == 1 and secclose120 < longStopPrev120 ? -1 : dir120
  50.  
  51. longColor120 = color.blue
  52. shortColor120 = color.red
  53.  
  54. //---------------
  55.  
  56. plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=2, color=longColor)
  57. buySignal15 = dir == 1 and dir[1] == -1
  58. buySignal120 = dir120 == 1 and dir120[1] == -1
  59. plotshape(buySignal15 and buySignal120 ? longStop : na, title="Long Stop Start", location=location.absolute, style=shape.circle, size=size.tiny, color=longColor, transp=0)
  60. plotshape(buySignal15 and buySignal120 and showLabels ? longStop : na, title="Buy Label", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=longColor, textcolor=color.white, transp=0)
  61.  
  62. plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=2, color=shortColor)
  63. sellSignal15 = dir == -1 and dir[1] == 1
  64. sellSignal120 = dir120 == -1 and dir120[1] == 1
  65. plotshape(sellSignal15 and sellSignal120 ? shortStop : na, title="Short Stop Start", location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor, transp=0)
  66. plotshape(sellSignal15 and sellSignal120 and showLabels ? shortStop : na, title="Sell Label", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=shortColor, textcolor=color.white, transp=0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement