Advertisement
xmd79

Magnetic Zones - Multi Timeframe

Oct 29th, 2023
528
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.91 KB | None | 1 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. // © Arun_K_Bhaskar
  3.  
  4. //@version=5
  5. indicator(title='Magnetic Zones - Multi Timeframe', shorttitle='Magnetic Zones', overlay=true)
  6.  
  7. //_____________ Menu Magnetic Zones 1 Start
  8. g_mz_1 = 'Magnetic Zones 1'
  9. string i_mz_1_tf = input.timeframe(defval='D', title='Timeframe', inline='1', group=g_mz_1)
  10. int i_mz_1_showlast = input.int(defval=1, minval=0, title='Show Last', inline='1', group=g_mz_1) + 1
  11.  
  12. bool i_mz_1_sr_1_show = input.bool(defval=true, title='SR1', inline='sr_1', group=g_mz_1)
  13. bool i_mz_1_sr_2_show = input.bool(defval=true, title='SR2', inline='sr_1', group=g_mz_1)
  14. bool i_mz_1_sr_3_show = input.bool(defval=false, title='SR3', inline='sr_1', group=g_mz_1)
  15. bool i_mz_1_sr_4_show = input.bool(defval=false, title='SR4', inline='sr_1', group=g_mz_1)
  16. bool i_mz_1_sr_5_show = input.bool(defval=false, title='SR5', inline='sr_1', group=g_mz_1)
  17. bool i_mz_1_sr_6_show = input.bool(defval=false, title='SR6', inline='sr_1', group=g_mz_1)
  18.  
  19. color i_mz_1_r_ln_color = input.color(defval=#F7525F, title='Line', inline='4', group=g_mz_1)
  20. color i_mz_1_s_ln_color = input.color(defval=#22AB94, title='', inline='4', group=g_mz_1)
  21. color i_mz_1_sub_color = input.color(defval=#9598A1, title='', inline='4', group=g_mz_1)
  22. string i_mz_1_ln_style = input.string(defval=line.style_solid, title='', options=[line.style_solid, line.style_dashed, line.style_dotted], inline='4', group=g_mz_1)
  23. int i_mz_1_ln_width = input.int(defval=1, title='', inline='4', group=g_mz_1)
  24. //_____________ Menu Magnetic Zones 1 End
  25.  
  26. //_____________ Menu Magnetic Zones 2 Start
  27. g_mz_2 = 'Magnetic Zones 2'
  28. string i_mz_2_tf = input.timeframe(defval='W', title='Timeframe', inline='1', group=g_mz_2)
  29. int i_mz_2_showlast = input.int(defval=0, minval=0, title='Show Last', inline='1', group=g_mz_2) + 1
  30.  
  31. bool i_mz_2_sr_1_show = input.bool(defval=true, title='SR1', inline='sr_1', group=g_mz_2)
  32. bool i_mz_2_sr_2_show = input.bool(defval=true, title='SR2', inline='sr_1', group=g_mz_2)
  33.  
  34. color i_mz_2_r_ln_color = input.color(defval=#F7525F, title='Line', inline='4', group=g_mz_2)
  35. color i_mz_2_s_ln_color = input.color(defval=#22AB94, title='', inline='4', group=g_mz_2)
  36. color i_mz_2_sub_color = input.color(defval=#9598A1, title='', inline='4', group=g_mz_2)
  37. string i_mz_2_ln_style = input.string(defval=line.style_dashed, title='', options=[line.style_solid, line.style_dashed, line.style_dotted], inline='4', group=g_mz_2)
  38. int i_mz_2_ln_width = input.int(defval=1, title='', inline='4', group=g_mz_2)
  39. //_____________ Menu Magnetic Zones 2 End
  40.  
  41. //_____________ Menu Magnetic Zones 3 Start
  42. g_mz_3 = 'Magnetic Zones 3'
  43. string i_mz_3_tf = input.timeframe(defval='M', title='Timeframe', inline='1', group=g_mz_3)
  44. int i_mz_3_showlast = input.int(defval=0, minval=0, title='Show Last', inline='1', group=g_mz_3) + 1
  45.  
  46. bool i_mz_3_sr_1_show = input.bool(defval=true, title='SR1', inline='sr_1', group=g_mz_3)
  47. bool i_mz_3_sr_2_show = input.bool(defval=true, title='SR2', inline='sr_1', group=g_mz_3)
  48.  
  49. color i_mz_3_r_ln_color = input.color(defval=#F7525F, title='Line', inline='4', group=g_mz_3)
  50. color i_mz_3_s_ln_color = input.color(defval=#22AB94, title='', inline='4', group=g_mz_3)
  51. color i_mz_3_sub_color = input.color(defval=#9598A1, title='', inline='4', group=g_mz_3)
  52. string i_mz_3_ln_style = input.string(defval=line.style_dotted, title='', options=[line.style_solid, line.style_dashed, line.style_dotted], inline='4', group=g_mz_3)
  53. int i_mz_3_ln_width = input.int(defval=1, title='', inline='4', group=g_mz_3)
  54. //_____________ Menu Magnetic Zones 3 End
  55.  
  56. //_____________ Menu Magnetic Zones Next Start
  57. g_mz_nxt = 'Magnetic Zones Next'
  58. string i_mz_nxt_tf = input.timeframe(defval='D', title='Timeframe', inline='1', group=g_mz_nxt)
  59. int i_mz_nxt_showlast = input.int(defval=0, minval=0, maxval=1, title='Show Last', inline='1', group=g_mz_nxt) + 1
  60.  
  61. bool i_mz_nxt_sr_1_show = input.bool(defval=true, title='SR1', inline='sr_1', group=g_mz_nxt)
  62. bool i_mz_nxt_sr_2_show = input.bool(defval=true, title='SR2', inline='sr_1', group=g_mz_nxt)
  63.  
  64. color i_mz_nxt_r_ln_color = input.color(defval=#F7525F, title='Line', inline='4', group=g_mz_nxt)
  65. color i_mz_nxt_s_ln_color = input.color(defval=#22AB94, title='', inline='4', group=g_mz_nxt)
  66. color i_mz_nxt_sub_color = input.color(defval=#9598A1, title='', inline='4', group=g_mz_nxt)
  67. string i_mz_nxt_ln_style = input.string(defval=line.style_solid, title='', options=[line.style_solid, line.style_dashed, line.style_dotted], inline='4', group=g_mz_nxt)
  68. int i_mz_nxt_ln_width = input.int(defval=1, title='', inline='4', group=g_mz_nxt)
  69. //_____________ Menu Magnetic Zones Next End
  70.  
  71. //_____________ Menu General Inputs Start
  72. g_gi = 'Magnetic Zones General Inputs'
  73. int i_mz_bx_transp = input.int(defval=80, minval=0, maxval=100, title='Box Transp', inline='1', group=g_gi)
  74. string i_mz_bx_style = input.string(defval=line.style_solid, title='', options=[line.style_solid, line.style_dashed, line.style_dotted], inline='1', group=g_gi)
  75. string i_mz_bx_txt_size = input.string(defval=size.auto, title='Text     ', options=[size.auto, size.tiny, size.small, size.normal, size.large, size.huge], inline='2', group=g_gi)
  76. string i_mz_bx_txt_align = input.string(defval=text.align_left, title='', options=[text.align_left, text.align_center, text.align_right], inline='2', group=g_gi)
  77. //_____________ Menu General Inputs End
  78.  
  79. //_____________ Menu High Low Start
  80. g_hl = 'High Low'
  81. string i_hl_htf = input.timeframe(defval='D', title='Timeframe', inline='hl_1', group=g_hl)
  82. int i_hl_showlast = input.int(defval=3, title='Show Last', inline='hl_1', group=g_hl)
  83. bool i_hl_ln_h_show = input.bool(defval=true, title='High', inline='hl_2', group=g_hl)
  84. color i_hl_ln_h_color = input.color(defval=#F7525F, title='', inline='hl_2', group=g_hl)
  85. bool i_hl_ln_l_show = input.bool(defval=true, title='Low', inline='hl_2', group=g_hl)
  86. color i_hl_ln_l_color = input.color(defval=#22AB94, title='', inline='hl_2', group=g_hl)
  87. int i_hl_prev = input.int(defval=1, title='Prev', minval=0, inline='hl_2', group=g_hl)
  88. string i_hl_ln_style = input.string(defval=line.style_dotted, title='Line', options=[line.style_solid, line.style_dashed, line.style_dotted], inline='hl_3', group=g_hl)
  89. int i_hl_ln_width = input.int(defval=1, title='', inline='hl_3', group=g_hl)
  90. string i_hl_ln_extend = input.string(defval=extend.none, title='', options=[extend.none, extend.left, extend.right, extend.both], inline='hl_3', group=g_hl)
  91. //_____________ Menu High Low End
  92.  
  93. //_____________ Get Data Start
  94. get_time(timeframe) =>
  95. [_time, _time_close] = request.security(symbol=syminfo.tickerid, timeframe=timeframe, expression=[time, time_close], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
  96. [_time, _time_close]
  97.  
  98. [mz_1_time, mz_1_time_close] = get_time(i_mz_1_tf)
  99. [mz_2_time, mz_2_time_close] = get_time(i_mz_2_tf)
  100. [mz_3_time, mz_3_time_close] = get_time(i_mz_3_tf)
  101. [mz_nxt_time, mz_nxt_time_close] = get_time(i_mz_nxt_tf)
  102. //_____________ Get Data End
  103.  
  104. //_____________ RZ Calculations Start
  105. // Acknowledgement & Formula Reference: CristianD (https://in.tradingview.com/u/CristianD/)
  106. // 1.7, 3.2, 5.6, 9.2
  107. // RZ Function
  108. multipliers = array.from(0.236, 0.786, 1.618, 2.618, 4.236, 6.618)
  109.  
  110. magnetic_zones(timeframe, float multiplier, int _bar_index) =>
  111. [prev_high, prev_low, prev_hl2] = request.security(symbol=syminfo.tickerid, timeframe=timeframe, expression=[high[_bar_index], low[_bar_index], hl2[_bar_index]], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
  112. // Formula
  113. prev_hl_diff = (prev_high-prev_low)
  114. resistance = prev_hl2 + multiplier * prev_hl_diff
  115. support = prev_hl2 - multiplier * prev_hl_diff
  116. [resistance, support]
  117.  
  118. buffer_zone(float level, float level_top, float level_bot) =>
  119. top = level + ((level_top - level_bot) / 8)
  120. bottom = level - ((level_top - level_bot) / 8)
  121. [top, bottom]
  122.  
  123. // RZ 1
  124. [mz_1_r_1, mz_1_s_1] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 0), 1)
  125. [mz_1_r_2, mz_1_s_2] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 1), 1)
  126. [mz_1_r_3, mz_1_s_3] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 2), 1)
  127. [mz_1_r_4, mz_1_s_4] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 3), 1)
  128. [mz_1_r_5, mz_1_s_5] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 4), 1)
  129. [mz_1_r_6, mz_1_s_6] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 5), 1)
  130.  
  131. [mz_1_r_1_top, mz_1_r_1_bot] = buffer_zone(mz_1_r_1, mz_1_r_1, mz_1_s_1)
  132. [mz_1_s_1_top, mz_1_s_1_bot] = buffer_zone(mz_1_s_1, mz_1_r_1, mz_1_s_1)
  133. [mz_1_r_2_top, mz_1_r_2_bot] = buffer_zone(mz_1_r_2, mz_1_r_2, mz_1_r_1)
  134. [mz_1_s_2_top, mz_1_s_2_bot] = buffer_zone(mz_1_s_2, mz_1_s_1, mz_1_s_2)
  135. [mz_1_r_3_top, mz_1_r_3_bot] = buffer_zone(mz_1_r_3, mz_1_r_3, mz_1_r_2)
  136. [mz_1_s_3_top, mz_1_s_3_bot] = buffer_zone(mz_1_s_3, mz_1_s_2, mz_1_s_3)
  137. [mz_1_r_4_top, mz_1_r_4_bot] = buffer_zone(mz_1_r_4, mz_1_r_4, mz_1_r_3)
  138. [mz_1_s_4_top, mz_1_s_4_bot] = buffer_zone(mz_1_s_4, mz_1_s_3, mz_1_s_4)
  139. [mz_1_r_5_top, mz_1_r_5_bot] = buffer_zone(mz_1_r_5, mz_1_r_5, mz_1_r_4)
  140. [mz_1_s_5_top, mz_1_s_5_bot] = buffer_zone(mz_1_s_5, mz_1_s_4, mz_1_s_5)
  141. [mz_1_r_6_top, mz_1_r_6_bot] = buffer_zone(mz_1_r_6, mz_1_r_6, mz_1_r_5)
  142. [mz_1_s_6_top, mz_1_s_6_bot] = buffer_zone(mz_1_s_6, mz_1_s_5, mz_1_s_6)
  143.  
  144. // RZ 2
  145. [mz_2_r_1, mz_2_s_1] = magnetic_zones(i_mz_2_tf, array.get(multipliers, 0), 1)
  146. [mz_2_r_2, mz_2_s_2] = magnetic_zones(i_mz_2_tf, array.get(multipliers, 1), 1)
  147.  
  148. [mz_2_r_1_top, mz_2_r_1_bot] = buffer_zone(mz_2_r_1, mz_2_r_1, mz_2_s_1)
  149. [mz_2_s_1_top, mz_2_s_1_bot] = buffer_zone(mz_2_s_1, mz_2_r_1, mz_2_s_1)
  150. [mz_2_r_2_top, mz_2_r_2_bot] = buffer_zone(mz_2_r_2, mz_2_r_2, mz_2_r_1)
  151. [mz_2_s_2_top, mz_2_s_2_bot] = buffer_zone(mz_2_s_2, mz_2_s_1, mz_2_s_2)
  152.  
  153. // RZ 3
  154. [mz_3_r_1, mz_3_s_1] = magnetic_zones(i_mz_3_tf, array.get(multipliers, 0), 1)
  155. [mz_3_r_2, mz_3_s_2] = magnetic_zones(i_mz_3_tf, array.get(multipliers, 1), 1)
  156.  
  157. [mz_3_r_1_top, mz_3_r_1_bot] = buffer_zone(mz_3_r_1, mz_3_r_1, mz_3_s_1)
  158. [mz_3_s_1_top, mz_3_s_1_bot] = buffer_zone(mz_3_s_1, mz_3_r_1, mz_3_s_1)
  159. [mz_3_r_2_top, mz_3_r_2_bot] = buffer_zone(mz_3_r_2, mz_3_r_2, mz_3_r_1)
  160. [mz_3_s_2_top, mz_3_s_2_bot] = buffer_zone(mz_3_s_2, mz_3_s_1, mz_3_s_2)
  161.  
  162. // Next Levels
  163. [mz_nxt_r_1, mz_nxt_s_1] = magnetic_zones(i_mz_nxt_tf, array.get(multipliers, 0), 0)
  164. [mz_nxt_r_2, mz_nxt_s_2] = magnetic_zones(i_mz_nxt_tf, array.get(multipliers, 1), 0)
  165. [mz_nxt_r_1_top, mz_nxt_r_1_bot] = buffer_zone(mz_nxt_r_1, mz_nxt_r_1, mz_nxt_s_1)
  166. [mz_nxt_s_1_top, mz_nxt_s_1_bot] = buffer_zone(mz_nxt_s_1, mz_nxt_r_1, mz_nxt_s_1)
  167. [mz_nxt_r_2_top, mz_nxt_r_2_bot] = buffer_zone(mz_nxt_r_2, mz_nxt_r_2, mz_nxt_r_1)
  168. [mz_nxt_s_2_top, mz_nxt_s_2_bot] = buffer_zone(mz_nxt_s_2, mz_nxt_s_1, mz_nxt_s_2)
  169. //_____________ RZ Calculations End
  170.  
  171. //_____________ Draw Functions Start
  172. draw_line(left_time, right_time, float price, color _color, string _style, int _width) =>
  173. _line = line.new(x1=left_time, y1=price, x2=right_time, y2=price, xloc=xloc.bar_time, color=_color, style=_style, width=_width)
  174.  
  175. draw_box(left_time, right_time, float top_price, float bottom_price, color _color, int _border_width, string _border_style, string _text, string _text_size, color _text_color, string _text_halign) =>
  176. _box = box.new(left=left_time, top=top_price, right=right_time, bottom=bottom_price, border_color=_color, border_width=_border_width, border_style=_border_style, xloc=xloc.bar_time, bgcolor=_color, text=_text, text_size=_text_size, text_color=_text_color, text_halign=_text_halign, text_valign=text.align_center)//, text_wrap=text.wrap_auto)
  177. //_____________ Draw Functions End
  178.  
  179. //_____________ Draw RZ 1 Levels Start
  180. var mz_1_r_sub_ln_arr = array.new_line(), var mz_1_s_sub_ln_arr = array.new_line()
  181. var mz_1_r_1_bx_arr = array.new_box(), var mz_1_s_1_bx_arr = array.new_box()
  182. var mz_1_r_2_bx_arr = array.new_box(), var mz_1_s_2_bx_arr = array.new_box()
  183. var mz_1_r_3_bx_arr = array.new_box(), var mz_1_s_3_bx_arr = array.new_box()
  184. var mz_1_r_4_bx_arr = array.new_box(), var mz_1_s_4_bx_arr = array.new_box()
  185. var mz_1_r_5_bx_arr = array.new_box(), var mz_1_s_5_bx_arr = array.new_box()
  186. var mz_1_r_6_bx_arr = array.new_box(), var mz_1_s_6_bx_arr = array.new_box()
  187. var mz_1_r_1_ln_arr = array.new_line(), var mz_1_s_1_ln_arr = array.new_line()
  188. var mz_1_r_2_ln_arr = array.new_line(), var mz_1_s_2_ln_arr = array.new_line()
  189. var mz_1_r_3_ln_arr = array.new_line(), var mz_1_s_3_ln_arr = array.new_line()
  190. var mz_1_r_4_ln_arr = array.new_line(), var mz_1_s_4_ln_arr = array.new_line()
  191. var mz_1_r_5_ln_arr = array.new_line(), var mz_1_s_5_ln_arr = array.new_line()
  192. var mz_1_r_6_ln_arr = array.new_line(), var mz_1_s_6_ln_arr = array.new_line()
  193.  
  194. if(timeframe.change(i_mz_1_tf))
  195. if i_mz_1_sr_1_show
  196. mz_1_r_1_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_r_1, i_mz_1_sub_color, i_mz_1_ln_style, i_mz_1_ln_width)
  197. array.push(mz_1_r_1_ln_arr, mz_1_r_1_ln)
  198. mz_1_s_1_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_s_1, i_mz_1_sub_color, i_mz_1_ln_style, i_mz_1_ln_width)
  199. array.push(mz_1_s_1_ln_arr, mz_1_s_1_ln)
  200. if i_mz_1_sr_1_show
  201. mz_1_r_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_r_1_top, mz_1_r_1_bot, color.new(i_mz_1_sub_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_1_r_1)) + ' : ' + str.tostring(i_mz_1_tf) + '\n' + '\n', i_mz_bx_txt_size, i_mz_1_sub_color, i_mz_bx_txt_align)
  202. array.push(mz_1_r_1_bx_arr, mz_1_r_bx)
  203. mz_1_s_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_s_1_top, mz_1_s_1_bot, color.new(i_mz_1_sub_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_1_s_1)) + ' : ' + str.tostring(i_mz_1_tf), i_mz_bx_txt_size, i_mz_1_sub_color, i_mz_bx_txt_align)
  204. array.push(mz_1_s_1_bx_arr, mz_1_s_bx)
  205.  
  206. if i_mz_1_sr_2_show
  207. mz_1_r_2_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_r_2, i_mz_1_r_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  208. array.push(mz_1_r_2_ln_arr, mz_1_r_2_ln)
  209. mz_1_s_2_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_s_2, i_mz_1_s_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  210. array.push(mz_1_s_2_ln_arr, mz_1_s_2_ln)
  211. if i_mz_1_sr_2_show
  212. mz_1_r_2_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_r_2_top, mz_1_r_2_bot, color.new(i_mz_1_r_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_1_r_2)) + '\n' + '\n', i_mz_bx_txt_size, i_mz_1_r_ln_color, i_mz_bx_txt_align)
  213. array.push(mz_1_r_2_bx_arr, mz_1_r_2_bx)
  214. mz_1_s_2_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_s_2_top, mz_1_s_2_bot, color.new(i_mz_1_s_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_1_s_2)), i_mz_bx_txt_size, i_mz_1_s_ln_color, i_mz_bx_txt_align)
  215. array.push(mz_1_s_2_bx_arr, mz_1_s_2_bx)
  216.  
  217. if i_mz_1_sr_3_show
  218. mz_1_r_3_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_r_3, i_mz_1_r_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  219. array.push(mz_1_r_3_ln_arr, mz_1_r_3_ln)
  220. mz_1_s_3_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_s_3, i_mz_1_s_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  221. array.push(mz_1_s_3_ln_arr, mz_1_s_3_ln)
  222. if i_mz_1_sr_3_show
  223. mz_1_r_3_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_r_3_top, mz_1_r_3_bot, color.new(i_mz_1_r_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_1_r_3)) + '\n' + '\n', i_mz_bx_txt_size, i_mz_1_r_ln_color, i_mz_bx_txt_align)
  224. array.push(mz_1_r_3_bx_arr, mz_1_r_3_bx)
  225. mz_1_s_3_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_s_3_top, mz_1_s_3_bot, color.new(i_mz_1_s_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_1_s_3)), i_mz_bx_txt_size, i_mz_1_s_ln_color, i_mz_bx_txt_align)
  226. array.push(mz_1_s_3_bx_arr, mz_1_s_3_bx)
  227.  
  228. if i_mz_1_sr_4_show
  229. mz_1_r_4_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_r_4, i_mz_1_r_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  230. array.push(mz_1_r_4_ln_arr, mz_1_r_4_ln)
  231. mz_1_s_4_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_s_4, i_mz_1_s_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  232. array.push(mz_1_s_4_ln_arr, mz_1_s_4_ln)
  233. if i_mz_1_sr_4_show
  234. mz_1_r_4_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_r_4_top, mz_1_r_4_bot, color.new(i_mz_1_r_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_1_r_4)) + '\n' + '\n', i_mz_bx_txt_size, i_mz_1_r_ln_color, i_mz_bx_txt_align)
  235. array.push(mz_1_r_4_bx_arr, mz_1_r_4_bx)
  236. mz_1_s_4_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_s_4_top, mz_1_s_4_bot, color.new(i_mz_1_s_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_1_s_4)), i_mz_bx_txt_size, i_mz_1_s_ln_color, i_mz_bx_txt_align)
  237. array.push(mz_1_s_4_bx_arr, mz_1_s_4_bx)
  238.  
  239. if i_mz_1_sr_5_show
  240. mz_1_r_5_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_r_5, i_mz_1_r_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  241. array.push(mz_1_r_5_ln_arr, mz_1_r_5_ln)
  242. mz_1_s_5_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_s_5, i_mz_1_s_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  243. array.push(mz_1_s_5_ln_arr, mz_1_s_5_ln)
  244. if i_mz_1_sr_5_show
  245. mz_1_r_5_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_r_5_top, mz_1_r_5_bot, color.new(i_mz_1_r_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_1_r_5)) + '\n' + '\n', i_mz_bx_txt_size, i_mz_1_r_ln_color, i_mz_bx_txt_align)
  246. array.push(mz_1_r_5_bx_arr, mz_1_r_5_bx)
  247. mz_1_s_5_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_s_5_top, mz_1_s_5_bot, color.new(i_mz_1_s_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_1_s_5)), i_mz_bx_txt_size, i_mz_1_s_ln_color, i_mz_bx_txt_align)
  248. array.push(mz_1_s_5_bx_arr, mz_1_s_5_bx)
  249.  
  250. if i_mz_1_sr_6_show
  251. mz_1_r_6_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_r_6, i_mz_1_r_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  252. array.push(mz_1_r_6_ln_arr, mz_1_r_6_ln)
  253. mz_1_s_6_ln = draw_line(mz_1_time, mz_1_time_close, mz_1_s_6, i_mz_1_s_ln_color, i_mz_1_ln_style, i_mz_1_ln_width)
  254. array.push(mz_1_s_6_ln_arr, mz_1_s_6_ln)
  255. if i_mz_1_sr_6_show
  256. mz_1_r_6_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_r_6_top, mz_1_r_6_bot, color.new(i_mz_1_r_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_1_r_6)) + '\n' + '\n', i_mz_bx_txt_size, i_mz_1_r_ln_color, i_mz_bx_txt_align)
  257. array.push(mz_1_r_6_bx_arr, mz_1_r_6_bx)
  258. mz_1_s_6_bx = draw_box(mz_1_time, mz_1_time_close, mz_1_s_6_top, mz_1_s_6_bot, color.new(i_mz_1_s_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_1_s_6)), i_mz_bx_txt_size, i_mz_1_s_ln_color, i_mz_bx_txt_align)
  259. array.push(mz_1_s_6_bx_arr, mz_1_s_6_bx)
  260.  
  261. // Function to delete past lines & boxes
  262. show_last_boxes(arr, int showlast) =>
  263. if array.size(arr) >= showlast
  264. box = array.get(arr, 0)
  265. box.delete(box)
  266. array.remove(arr, 0)
  267.  
  268. show_last_lines(arr, int showlast) =>
  269. if array.size(arr) >= showlast
  270. line = array.get(arr, 0)
  271. line.delete(line)
  272. array.remove(arr, 0)
  273.  
  274. show_last_boxes(mz_1_r_1_bx_arr, i_mz_1_showlast)
  275. show_last_boxes(mz_1_s_1_bx_arr, i_mz_1_showlast)
  276. show_last_boxes(mz_1_r_2_bx_arr, i_mz_1_showlast)
  277. show_last_boxes(mz_1_s_2_bx_arr, i_mz_1_showlast)
  278. show_last_boxes(mz_1_r_3_bx_arr, i_mz_1_showlast)
  279. show_last_boxes(mz_1_s_3_bx_arr, i_mz_1_showlast)
  280. show_last_boxes(mz_1_r_4_bx_arr, i_mz_1_showlast)
  281. show_last_boxes(mz_1_s_4_bx_arr, i_mz_1_showlast)
  282. show_last_boxes(mz_1_r_5_bx_arr, i_mz_1_showlast)
  283. show_last_boxes(mz_1_s_5_bx_arr, i_mz_1_showlast)
  284. show_last_boxes(mz_1_r_6_bx_arr, i_mz_1_showlast)
  285. show_last_boxes(mz_1_s_6_bx_arr, i_mz_1_showlast)
  286.  
  287. show_last_lines(mz_1_r_sub_ln_arr, i_mz_1_showlast)
  288. show_last_lines(mz_1_s_sub_ln_arr, i_mz_1_showlast)
  289. show_last_lines(mz_1_r_1_ln_arr, i_mz_1_showlast)
  290. show_last_lines(mz_1_s_1_ln_arr, i_mz_1_showlast)
  291. show_last_lines(mz_1_r_2_ln_arr, i_mz_1_showlast)
  292. show_last_lines(mz_1_s_2_ln_arr, i_mz_1_showlast)
  293. show_last_lines(mz_1_r_3_ln_arr, i_mz_1_showlast)
  294. show_last_lines(mz_1_s_3_ln_arr, i_mz_1_showlast)
  295. show_last_lines(mz_1_r_4_ln_arr, i_mz_1_showlast)
  296. show_last_lines(mz_1_s_4_ln_arr, i_mz_1_showlast)
  297. show_last_lines(mz_1_r_5_ln_arr, i_mz_1_showlast)
  298. show_last_lines(mz_1_s_5_ln_arr, i_mz_1_showlast)
  299. show_last_lines(mz_1_r_6_ln_arr, i_mz_1_showlast)
  300. show_last_lines(mz_1_s_6_ln_arr, i_mz_1_showlast)
  301. //_____________ Draw RZ 1 Levels End
  302.  
  303. //_____________ Draw RZ 2 Levels Start
  304. var mz_2_r_sub_ln_arr = array.new_line(), var mz_2_s_sub_ln_arr = array.new_line()
  305. var mz_2_r_1_bx_arr = array.new_box(), var mz_2_s_1_bx_arr = array.new_box()
  306. var mz_2_r_2_bx_arr = array.new_box(), var mz_2_s_2_bx_arr = array.new_box()
  307.  
  308. var mz_2_r_1_ln_arr = array.new_line(), var mz_2_s_1_ln_arr = array.new_line()
  309. var mz_2_r_2_ln_arr = array.new_line(), var mz_2_s_2_ln_arr = array.new_line()
  310.  
  311. if(timeframe.change(i_mz_2_tf))
  312. if i_mz_2_sr_1_show
  313. mz_2_r_1_ln = draw_line(mz_2_time, mz_2_time_close, mz_2_r_1, i_mz_2_sub_color, i_mz_2_ln_style, i_mz_2_ln_width)
  314. array.push(mz_2_r_1_ln_arr, mz_2_r_1_ln)
  315. mz_2_s_1_ln = draw_line(mz_2_time, mz_2_time_close, mz_2_s_1, i_mz_2_sub_color, i_mz_2_ln_style, i_mz_2_ln_width)
  316. array.push(mz_2_s_1_ln_arr, mz_2_s_1_ln)
  317. if i_mz_2_sr_1_show
  318. mz_2_r_bx = draw_box(mz_2_time, mz_2_time_close, mz_2_r_1_top, mz_2_r_1_bot, color.new(i_mz_2_sub_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_2_r_1)) + ' : ' + str.tostring(i_mz_2_tf) + '\n' + '\n', i_mz_bx_txt_size, i_mz_2_sub_color, i_mz_bx_txt_align)
  319. array.push(mz_2_r_1_bx_arr, mz_2_r_bx)
  320. mz_2_s_bx = draw_box(mz_2_time, mz_2_time_close, mz_2_s_1_top, mz_2_s_1_bot, color.new(i_mz_2_sub_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_2_s_1)) + ' : ' + str.tostring(i_mz_2_tf), i_mz_bx_txt_size, i_mz_2_sub_color, i_mz_bx_txt_align)
  321. array.push(mz_2_s_1_bx_arr, mz_2_s_bx)
  322.  
  323. if i_mz_2_sr_2_show
  324. mz_2_r_2_ln = draw_line(mz_2_time, mz_2_time_close, mz_2_r_2, i_mz_2_r_ln_color, i_mz_2_ln_style, i_mz_2_ln_width)
  325. array.push(mz_2_r_2_ln_arr, mz_2_r_2_ln)
  326. mz_2_s_2_ln = draw_line(mz_2_time, mz_2_time_close, mz_2_s_2, i_mz_2_s_ln_color, i_mz_2_ln_style, i_mz_2_ln_width)
  327. array.push(mz_2_s_2_ln_arr, mz_2_s_2_ln)
  328. if i_mz_2_sr_2_show
  329. mz_2_r_2_bx = draw_box(mz_2_time, mz_2_time_close, mz_2_r_2_top, mz_2_r_2_bot, color.new(i_mz_2_r_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_2_r_2)) + '\n' + '\n', i_mz_bx_txt_size, i_mz_2_r_ln_color, i_mz_bx_txt_align)
  330. array.push(mz_2_r_2_bx_arr, mz_2_r_2_bx)
  331. mz_2_s_2_bx = draw_box(mz_2_time, mz_2_time_close, mz_2_s_2_top, mz_2_s_2_bot, color.new(i_mz_2_s_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_2_s_2)), i_mz_bx_txt_size, i_mz_2_s_ln_color, i_mz_bx_txt_align)
  332. array.push(mz_2_s_2_bx_arr, mz_2_s_2_bx)
  333.  
  334. // Delete past lines & boxes
  335. show_last_boxes(mz_2_r_1_bx_arr, i_mz_2_showlast)
  336. show_last_boxes(mz_2_s_1_bx_arr, i_mz_2_showlast)
  337. show_last_boxes(mz_2_r_2_bx_arr, i_mz_2_showlast)
  338. show_last_boxes(mz_2_s_2_bx_arr, i_mz_2_showlast)
  339.  
  340. show_last_lines(mz_2_r_sub_ln_arr, i_mz_2_showlast)
  341. show_last_lines(mz_2_s_sub_ln_arr, i_mz_2_showlast)
  342. show_last_lines(mz_2_r_1_ln_arr, i_mz_2_showlast)
  343. show_last_lines(mz_2_s_1_ln_arr, i_mz_2_showlast)
  344. show_last_lines(mz_2_r_2_ln_arr, i_mz_2_showlast)
  345. show_last_lines(mz_2_s_2_ln_arr, i_mz_2_showlast)
  346. //_____________ Draw RZ 2 Levels End
  347.  
  348. //_____________ Draw RZ 3 Levels Start
  349. var mz_3_r_sub_ln_arr = array.new_line(), var mz_3_s_sub_ln_arr = array.new_line()
  350. var mz_3_r_1_bx_arr = array.new_box(), var mz_3_s_1_bx_arr = array.new_box()
  351. var mz_3_r_2_bx_arr = array.new_box(), var mz_3_s_2_bx_arr = array.new_box()
  352.  
  353. var mz_3_r_1_ln_arr = array.new_line(), var mz_3_s_1_ln_arr = array.new_line()
  354. var mz_3_r_2_ln_arr = array.new_line(), var mz_3_s_2_ln_arr = array.new_line()
  355.  
  356. if(timeframe.change(i_mz_3_tf))
  357. if i_mz_3_sr_1_show
  358. mz_3_r_1_ln = draw_line(mz_3_time, mz_3_time_close, mz_3_r_1, i_mz_3_sub_color, i_mz_3_ln_style, i_mz_3_ln_width)
  359. array.push(mz_3_r_1_ln_arr, mz_3_r_1_ln)
  360. mz_3_s_1_ln = draw_line(mz_3_time, mz_3_time_close, mz_3_s_1, i_mz_3_sub_color, i_mz_3_ln_style, i_mz_3_ln_width)
  361. array.push(mz_3_s_1_ln_arr, mz_3_s_1_ln)
  362. if i_mz_3_sr_1_show
  363. mz_3_r_bx = draw_box(mz_3_time, mz_3_time_close, mz_3_r_1_top, mz_3_r_1_bot, color.new(i_mz_3_sub_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_3_r_1)) + ' : ' + str.tostring(i_mz_3_tf) + '\n' + '\n', i_mz_bx_txt_size, i_mz_3_sub_color, i_mz_bx_txt_align)
  364. array.push(mz_3_r_1_bx_arr, mz_3_r_bx)
  365. mz_3_s_bx = draw_box(mz_3_time, mz_3_time_close, mz_3_s_1_top, mz_3_s_1_bot, color.new(i_mz_3_sub_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_3_s_1)) + ' : ' + str.tostring(i_mz_3_tf), i_mz_bx_txt_size, i_mz_3_sub_color, i_mz_bx_txt_align)
  366. array.push(mz_3_s_1_bx_arr, mz_3_s_bx)
  367.  
  368. if i_mz_3_sr_2_show
  369. mz_3_r_2_ln = draw_line(mz_3_time, mz_3_time_close, mz_3_r_2, i_mz_3_r_ln_color, i_mz_3_ln_style, i_mz_3_ln_width)
  370. array.push(mz_3_r_2_ln_arr, mz_3_r_2_ln)
  371. mz_3_s_2_ln = draw_line(mz_3_time, mz_3_time_close, mz_3_s_2, i_mz_3_s_ln_color, i_mz_3_ln_style, i_mz_3_ln_width)
  372. array.push(mz_3_s_2_ln_arr, mz_3_s_2_ln)
  373. if i_mz_3_sr_2_show
  374. mz_3_r_2_bx = draw_box(mz_3_time, mz_3_time_close, mz_3_r_2_top, mz_3_r_2_bot, color.new(i_mz_3_r_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_3_r_2)) + '\n' + '\n', i_mz_bx_txt_size, i_mz_3_r_ln_color, i_mz_bx_txt_align)
  375. array.push(mz_3_r_2_bx_arr, mz_3_r_2_bx)
  376. mz_3_s_2_bx = draw_box(mz_3_time, mz_3_time_close, mz_3_s_2_top, mz_3_s_2_bot, color.new(i_mz_3_s_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_3_s_2)), i_mz_bx_txt_size, i_mz_3_s_ln_color, i_mz_bx_txt_align)
  377. array.push(mz_3_s_2_bx_arr, mz_3_s_2_bx)
  378.  
  379. // Delete past lines & boxes
  380. show_last_boxes(mz_3_r_1_bx_arr, i_mz_3_showlast)
  381. show_last_boxes(mz_3_s_1_bx_arr, i_mz_3_showlast)
  382. show_last_boxes(mz_3_r_2_bx_arr, i_mz_3_showlast)
  383. show_last_boxes(mz_3_s_2_bx_arr, i_mz_3_showlast)
  384.  
  385. show_last_lines(mz_3_r_sub_ln_arr, i_mz_3_showlast)
  386. show_last_lines(mz_3_s_sub_ln_arr, i_mz_3_showlast)
  387. show_last_lines(mz_3_r_1_ln_arr, i_mz_3_showlast)
  388. show_last_lines(mz_3_s_1_ln_arr, i_mz_3_showlast)
  389. show_last_lines(mz_3_r_2_ln_arr, i_mz_3_showlast)
  390. show_last_lines(mz_3_s_2_ln_arr, i_mz_3_showlast)
  391. //_____________ Draw RZ 3 Levels End
  392.  
  393. //_____________ Draw RZ Next Levels Start
  394. // Acknowledgement & Code Reference
  395. // Code Source: https://stackoverflow.com/questions/72568623/cpr-but-plot-them-at-4-am-instead-of-market-open
  396. // Code by: Bjorn Mistiaen
  397.  
  398. var mz_nxt_r_sub_ln_arr = array.new_line(), var mz_nxt_s_sub_ln_arr = array.new_line()
  399. var mz_nxt_r_1_bx_arr = array.new_box(), var mz_nxt_s_1_bx_arr = array.new_box()
  400. var mz_nxt_r_2_bx_arr = array.new_box(), var mz_nxt_s_2_bx_arr = array.new_box()
  401.  
  402. var mz_nxt_r_1_ln_arr = array.new_line(), var mz_nxt_s_1_ln_arr = array.new_line()
  403. var mz_nxt_r_2_ln_arr = array.new_line(), var mz_nxt_s_2_ln_arr = array.new_line()
  404.  
  405. if session.islastbar_regular or (timeframe.change(i_mz_nxt_tf))
  406. end_time = mz_nxt_time_close + timeframe.in_seconds(i_mz_nxt_tf) * 3000
  407. if i_mz_nxt_sr_1_show
  408. mz_nxt_r_1_ln = draw_line(mz_nxt_time_close, end_time, mz_nxt_r_1, i_mz_nxt_sub_color, i_mz_nxt_ln_style, i_mz_nxt_ln_width)
  409. array.push(mz_nxt_r_1_ln_arr, mz_nxt_r_1_ln)
  410. mz_nxt_s_1_ln = draw_line(mz_nxt_time_close, end_time, mz_nxt_s_1, i_mz_nxt_sub_color, i_mz_nxt_ln_style, i_mz_nxt_ln_width)
  411. array.push(mz_nxt_s_1_ln_arr, mz_nxt_s_1_ln)
  412. if i_mz_nxt_sr_1_show
  413. mz_nxt_r_bx = draw_box(mz_nxt_time_close, end_time, mz_nxt_r_1_top, mz_nxt_r_1_bot, color.new(i_mz_nxt_sub_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_nxt_r_1)) + ' : ' + str.tostring(i_mz_nxt_tf) + '\n' + '\n', i_mz_bx_txt_size, i_mz_nxt_sub_color, i_mz_bx_txt_align)
  414. array.push(mz_nxt_r_1_bx_arr, mz_nxt_r_bx)
  415. mz_nxt_s_bx = draw_box(mz_nxt_time_close, end_time, mz_nxt_s_1_top, mz_nxt_s_1_bot, color.new(i_mz_nxt_sub_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_nxt_s_1)) + ' : ' + str.tostring(i_mz_nxt_tf), i_mz_bx_txt_size, i_mz_nxt_sub_color, i_mz_bx_txt_align)
  416. array.push(mz_nxt_s_1_bx_arr, mz_nxt_s_bx)
  417.  
  418. if i_mz_nxt_sr_2_show
  419. mz_nxt_r_2_ln = draw_line(mz_nxt_time_close, end_time, mz_nxt_r_2, i_mz_nxt_r_ln_color, i_mz_nxt_ln_style, i_mz_nxt_ln_width)
  420. array.push(mz_nxt_r_2_ln_arr, mz_nxt_r_2_ln)
  421. mz_nxt_s_2_ln = draw_line(mz_nxt_time_close, end_time, mz_nxt_s_2, i_mz_nxt_s_ln_color, i_mz_nxt_ln_style, i_mz_nxt_ln_width)
  422. array.push(mz_nxt_s_2_ln_arr, mz_nxt_s_2_ln)
  423. if i_mz_nxt_sr_2_show
  424. mz_nxt_r_2_bx = draw_box(mz_nxt_time_close, end_time, mz_nxt_r_2_top, mz_nxt_r_2_bot, color.new(i_mz_nxt_r_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, str.tostring(math.round_to_mintick(mz_nxt_r_2)) + '\n' + '\n', i_mz_bx_txt_size, i_mz_nxt_r_ln_color, i_mz_bx_txt_align)
  425. array.push(mz_nxt_r_2_bx_arr, mz_nxt_r_2_bx)
  426. mz_nxt_s_2_bx = draw_box(mz_nxt_time_close, end_time, mz_nxt_s_2_top, mz_nxt_s_2_bot, color.new(i_mz_nxt_s_ln_color, i_mz_bx_transp), 1, i_mz_bx_style, '\n' + str.tostring(math.round_to_mintick(mz_nxt_s_2)), i_mz_bx_txt_size, i_mz_nxt_s_ln_color, i_mz_bx_txt_align)
  427. array.push(mz_nxt_s_2_bx_arr, mz_nxt_s_2_bx)
  428.  
  429. // Delete past lines & boxes
  430. show_last_boxes(mz_nxt_r_1_bx_arr, i_mz_nxt_showlast)
  431. show_last_boxes(mz_nxt_s_1_bx_arr, i_mz_nxt_showlast)
  432. show_last_boxes(mz_nxt_r_2_bx_arr, i_mz_nxt_showlast)
  433. show_last_boxes(mz_nxt_s_2_bx_arr, i_mz_nxt_showlast)
  434.  
  435. show_last_lines(mz_nxt_r_sub_ln_arr, i_mz_nxt_showlast)
  436. show_last_lines(mz_nxt_s_sub_ln_arr, i_mz_nxt_showlast)
  437. show_last_lines(mz_nxt_r_1_ln_arr, i_mz_nxt_showlast)
  438. show_last_lines(mz_nxt_s_1_ln_arr, i_mz_nxt_showlast)
  439. show_last_lines(mz_nxt_r_2_ln_arr, i_mz_nxt_showlast)
  440. show_last_lines(mz_nxt_s_2_ln_arr, i_mz_nxt_showlast)
  441. //_____________ Draw RZ Next Levels End
  442.  
  443. //_____________ High Low Start
  444.  
  445. // Acknowledgement & Code Reference:
  446. // Code Source: https://stackoverflow.com/questions/77207482/line-is-not-starting-from-previous-day-high-in-tradingview-pinescript/77207842#77207842
  447. // Created by: Sharad Gaikwad and Mario
  448.  
  449. // Function
  450. type UDT_lines_labels
  451. line upper
  452. bool upper_extend = true
  453. line lower
  454. bool lower_extend = true
  455.  
  456. var historical_lines = array.new<UDT_lines_labels>()
  457.  
  458. // Get High Low Data
  459. [_high, _low, _time] = request.security(syminfo.tickerid, i_hl_htf, [high[i_hl_prev], low[i_hl_prev], time[i_hl_prev]], lookahead = barmerge.lookahead_on)
  460.  
  461. // Draw High Low
  462. var float high_price = 0.
  463. var float low_price = 0.
  464.  
  465. if(timeframe.change(i_hl_htf))
  466. my_lines = UDT_lines_labels.new()
  467. my_lines.upper := draw_line(_time, time, _high, i_hl_ln_h_color, i_hl_ln_style, i_hl_ln_width)
  468. my_lines.lower := draw_line(_time, time, _low, i_hl_ln_l_color, i_hl_ln_style, i_hl_ln_width)
  469.  
  470. historical_lines.unshift(my_lines)
  471.  
  472. high_price := high
  473. low_price := low
  474.  
  475. if historical_lines.size() > i_hl_showlast
  476. old_lines = historical_lines.pop()
  477. old_lines.upper.delete()
  478. old_lines.lower.delete()
  479.  
  480. // Break if price crosses the lines
  481. high_price := math.max(high_price, high)
  482. low_price := math.min(low_price, low)
  483.  
  484. for old_lines in historical_lines
  485. if high_price < old_lines.upper.get_y1() and old_lines.upper_extend
  486. old_lines.upper.set_x2(time)
  487. else
  488. old_lines.upper_extend := false
  489. if low_price > old_lines.lower.get_y1() and old_lines.lower_extend
  490. old_lines.lower.set_x2(time)
  491. else
  492. old_lines.lower_extend := false
  493. //_____________ High Low End
  494. //_____________ CODE END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement