Advertisement
xmd79

Support And Resistance

Jan 29th, 2023
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  2. // © nicoakim
  3.  
  4. //@version=5
  5. indicator("Support And Resistance",overlay=true)
  6. res1 = input.timeframe(title='Resolution S&R', defval='')
  7. ln = input.int(10, minval=5, title='Length of S&R')
  8. bars = input(100, 'Bars offset')
  9. gap = input(2.0, 'Gap From Wick')
  10. color col1 = input.color(color.new(color.green,50),title='Color Support Zone')
  11. color col2 = input.color(color.new(color.red,50),title='Color Resistance Zone')
  12.  
  13.  
  14. ///////////////////////////////////////////////
  15. reqsymbol2(resolusi,value) => request.security(syminfo.tickerid,resolusi,value)
  16. dt = time - time[1]
  17.  
  18. ///////////////////////////////////////////////
  19. pivothigh() =>
  20. hprice = 0.0
  21. swh = ta.pivothigh(high, ln, ln)
  22. hprice := not na(swh) ? swh : hprice[1]
  23. hprice
  24. pivothightime() =>
  25. var int hprice = na
  26. swh = ta.pivothigh(high, ln, ln)
  27. hprice := not na(swh) ? time[ln] : hprice[1]
  28. hprice
  29. pivotlow() =>
  30. lprice = 0.0
  31. swl = ta.pivotlow(low, ln, ln)
  32. lprice := not na(swl) ? swl : lprice[1]
  33. lprice
  34. pivotlowtime() =>
  35. var int lprice = na
  36. swl = ta.pivotlow(low, ln,ln)
  37. lprice := not na(swl) ? time[ln] : lprice
  38. lprice
  39.  
  40. boxix1(left,val,right,val2,cond1,colorbox,txt) =>
  41. var box[] boxi1 = array.new_box()
  42. if cond1
  43. array.unshift(boxi1,box.new(left,val, right+bars*dt,val2,xloc=xloc.bar_time,border_color=colorbox,bgcolor = colorbox,text=txt,text_color=color.white,text_halign =text.align_right,text_size=size.small ))
  44. for i = (array.size(boxi1) > 0 ? array.size(boxi1)-1 : na) to 0
  45. l = box.get_top(array.get(boxi1,i))
  46. if high < l
  47. box.set_right(array.get(boxi1, i),time)
  48. array.remove(boxi1, i)
  49. for ix = (array.size(boxi1) > 0 ? array.size(boxi1)-1 : na) to 0
  50. box.set_right(array.get(boxi1,ix),time+bars*dt)
  51.  
  52. boxix2(left,val,right,val2,cond1,colorbox,txt) =>
  53. var box[] boxi1 = array.new_box()
  54. if cond1
  55. array.unshift(boxi1,box.new(left,val, right+bars*dt,val2,xloc=xloc.bar_time,border_color=colorbox,bgcolor = colorbox,text=txt,text_color=color.white,text_halign =text.align_right,text_size=size.small ))
  56. for i = (array.size(boxi1) > 0 ? array.size(boxi1)-1 : na) to 0
  57. l = box.get_top(array.get(boxi1,i))
  58. if low > l
  59. box.set_right(array.get(boxi1, i),time)
  60. array.remove(boxi1, i)
  61. for ix = (array.size(boxi1) > 0 ? array.size(boxi1)-1 : na) to 0
  62. box.set_right(array.get(boxi1,ix),time+bars*dt)
  63. ///////////////////////////////////////////////
  64.  
  65. sup = reqsymbol2(res1,pivotlow())
  66.  
  67. supt = reqsymbol2(res1,pivotlowtime())
  68. resi = reqsymbol2(res1,pivothigh())
  69. resit = reqsymbol2(res1,pivothightime())
  70.  
  71. boxix1(supt,sup,time+bars*dt,sup+gap,sup != sup[1],col1,str.tostring(sup))
  72. boxix2(resit,resi,time+bars*dt,resi-gap,resi != resi[1],col2,str.tostring(resi))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement