Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
- // © Arun_K_Bhaskar
- //@version=5
- indicator(title='Magnetic Zones - Multi Timeframe', shorttitle='Magnetic Zones', overlay=true)
- //_____________ Menu Magnetic Zones 1 Start
- g_mz_1 = 'Magnetic Zones 1'
- string i_mz_1_tf = input.timeframe(defval='D', title='Timeframe', inline='1', group=g_mz_1)
- int i_mz_1_showlast = input.int(defval=1, minval=0, title='Show Last', inline='1', group=g_mz_1) + 1
- bool i_mz_1_sr_1_show = input.bool(defval=true, title='SR1', inline='sr_1', group=g_mz_1)
- bool i_mz_1_sr_2_show = input.bool(defval=true, title='SR2', inline='sr_1', group=g_mz_1)
- bool i_mz_1_sr_3_show = input.bool(defval=false, title='SR3', inline='sr_1', group=g_mz_1)
- bool i_mz_1_sr_4_show = input.bool(defval=false, title='SR4', inline='sr_1', group=g_mz_1)
- bool i_mz_1_sr_5_show = input.bool(defval=false, title='SR5', inline='sr_1', group=g_mz_1)
- bool i_mz_1_sr_6_show = input.bool(defval=false, title='SR6', inline='sr_1', group=g_mz_1)
- color i_mz_1_r_ln_color = input.color(defval=#F7525F, title='Line', inline='4', group=g_mz_1)
- color i_mz_1_s_ln_color = input.color(defval=#22AB94, title='', inline='4', group=g_mz_1)
- color i_mz_1_sub_color = input.color(defval=#9598A1, title='', inline='4', group=g_mz_1)
- 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)
- int i_mz_1_ln_width = input.int(defval=1, title='', inline='4', group=g_mz_1)
- //_____________ Menu Magnetic Zones 1 End
- //_____________ Menu Magnetic Zones 2 Start
- g_mz_2 = 'Magnetic Zones 2'
- string i_mz_2_tf = input.timeframe(defval='W', title='Timeframe', inline='1', group=g_mz_2)
- int i_mz_2_showlast = input.int(defval=0, minval=0, title='Show Last', inline='1', group=g_mz_2) + 1
- bool i_mz_2_sr_1_show = input.bool(defval=true, title='SR1', inline='sr_1', group=g_mz_2)
- bool i_mz_2_sr_2_show = input.bool(defval=true, title='SR2', inline='sr_1', group=g_mz_2)
- color i_mz_2_r_ln_color = input.color(defval=#F7525F, title='Line', inline='4', group=g_mz_2)
- color i_mz_2_s_ln_color = input.color(defval=#22AB94, title='', inline='4', group=g_mz_2)
- color i_mz_2_sub_color = input.color(defval=#9598A1, title='', inline='4', group=g_mz_2)
- 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)
- int i_mz_2_ln_width = input.int(defval=1, title='', inline='4', group=g_mz_2)
- //_____________ Menu Magnetic Zones 2 End
- //_____________ Menu Magnetic Zones 3 Start
- g_mz_3 = 'Magnetic Zones 3'
- string i_mz_3_tf = input.timeframe(defval='M', title='Timeframe', inline='1', group=g_mz_3)
- int i_mz_3_showlast = input.int(defval=0, minval=0, title='Show Last', inline='1', group=g_mz_3) + 1
- bool i_mz_3_sr_1_show = input.bool(defval=true, title='SR1', inline='sr_1', group=g_mz_3)
- bool i_mz_3_sr_2_show = input.bool(defval=true, title='SR2', inline='sr_1', group=g_mz_3)
- color i_mz_3_r_ln_color = input.color(defval=#F7525F, title='Line', inline='4', group=g_mz_3)
- color i_mz_3_s_ln_color = input.color(defval=#22AB94, title='', inline='4', group=g_mz_3)
- color i_mz_3_sub_color = input.color(defval=#9598A1, title='', inline='4', group=g_mz_3)
- 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)
- int i_mz_3_ln_width = input.int(defval=1, title='', inline='4', group=g_mz_3)
- //_____________ Menu Magnetic Zones 3 End
- //_____________ Menu Magnetic Zones Next Start
- g_mz_nxt = 'Magnetic Zones Next'
- string i_mz_nxt_tf = input.timeframe(defval='D', title='Timeframe', inline='1', group=g_mz_nxt)
- int i_mz_nxt_showlast = input.int(defval=0, minval=0, maxval=1, title='Show Last', inline='1', group=g_mz_nxt) + 1
- bool i_mz_nxt_sr_1_show = input.bool(defval=true, title='SR1', inline='sr_1', group=g_mz_nxt)
- bool i_mz_nxt_sr_2_show = input.bool(defval=true, title='SR2', inline='sr_1', group=g_mz_nxt)
- color i_mz_nxt_r_ln_color = input.color(defval=#F7525F, title='Line', inline='4', group=g_mz_nxt)
- color i_mz_nxt_s_ln_color = input.color(defval=#22AB94, title='', inline='4', group=g_mz_nxt)
- color i_mz_nxt_sub_color = input.color(defval=#9598A1, title='', inline='4', group=g_mz_nxt)
- 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)
- int i_mz_nxt_ln_width = input.int(defval=1, title='', inline='4', group=g_mz_nxt)
- //_____________ Menu Magnetic Zones Next End
- //_____________ Menu General Inputs Start
- g_gi = 'Magnetic Zones General Inputs'
- int i_mz_bx_transp = input.int(defval=80, minval=0, maxval=100, title='Box Transp', inline='1', group=g_gi)
- 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)
- 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)
- 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)
- //_____________ Menu General Inputs End
- //_____________ Menu High Low Start
- g_hl = 'High Low'
- string i_hl_htf = input.timeframe(defval='D', title='Timeframe', inline='hl_1', group=g_hl)
- int i_hl_showlast = input.int(defval=3, title='Show Last', inline='hl_1', group=g_hl)
- bool i_hl_ln_h_show = input.bool(defval=true, title='High', inline='hl_2', group=g_hl)
- color i_hl_ln_h_color = input.color(defval=#F7525F, title='', inline='hl_2', group=g_hl)
- bool i_hl_ln_l_show = input.bool(defval=true, title='Low', inline='hl_2', group=g_hl)
- color i_hl_ln_l_color = input.color(defval=#22AB94, title='', inline='hl_2', group=g_hl)
- int i_hl_prev = input.int(defval=1, title='Prev', minval=0, inline='hl_2', group=g_hl)
- 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)
- int i_hl_ln_width = input.int(defval=1, title='', inline='hl_3', group=g_hl)
- 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)
- //_____________ Menu High Low End
- //_____________ Get Data Start
- get_time(timeframe) =>
- [_time, _time_close] = request.security(symbol=syminfo.tickerid, timeframe=timeframe, expression=[time, time_close], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
- [_time, _time_close]
- [mz_1_time, mz_1_time_close] = get_time(i_mz_1_tf)
- [mz_2_time, mz_2_time_close] = get_time(i_mz_2_tf)
- [mz_3_time, mz_3_time_close] = get_time(i_mz_3_tf)
- [mz_nxt_time, mz_nxt_time_close] = get_time(i_mz_nxt_tf)
- //_____________ Get Data End
- //_____________ RZ Calculations Start
- // Acknowledgement & Formula Reference: CristianD (https://in.tradingview.com/u/CristianD/)
- // 1.7, 3.2, 5.6, 9.2
- // RZ Function
- multipliers = array.from(0.236, 0.786, 1.618, 2.618, 4.236, 6.618)
- magnetic_zones(timeframe, float multiplier, int _bar_index) =>
- [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)
- // Formula
- prev_hl_diff = (prev_high-prev_low)
- resistance = prev_hl2 + multiplier * prev_hl_diff
- support = prev_hl2 - multiplier * prev_hl_diff
- [resistance, support]
- buffer_zone(float level, float level_top, float level_bot) =>
- top = level + ((level_top - level_bot) / 8)
- bottom = level - ((level_top - level_bot) / 8)
- [top, bottom]
- // RZ 1
- [mz_1_r_1, mz_1_s_1] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 0), 1)
- [mz_1_r_2, mz_1_s_2] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 1), 1)
- [mz_1_r_3, mz_1_s_3] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 2), 1)
- [mz_1_r_4, mz_1_s_4] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 3), 1)
- [mz_1_r_5, mz_1_s_5] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 4), 1)
- [mz_1_r_6, mz_1_s_6] = magnetic_zones(i_mz_1_tf, array.get(multipliers, 5), 1)
- [mz_1_r_1_top, mz_1_r_1_bot] = buffer_zone(mz_1_r_1, mz_1_r_1, mz_1_s_1)
- [mz_1_s_1_top, mz_1_s_1_bot] = buffer_zone(mz_1_s_1, mz_1_r_1, mz_1_s_1)
- [mz_1_r_2_top, mz_1_r_2_bot] = buffer_zone(mz_1_r_2, mz_1_r_2, mz_1_r_1)
- [mz_1_s_2_top, mz_1_s_2_bot] = buffer_zone(mz_1_s_2, mz_1_s_1, mz_1_s_2)
- [mz_1_r_3_top, mz_1_r_3_bot] = buffer_zone(mz_1_r_3, mz_1_r_3, mz_1_r_2)
- [mz_1_s_3_top, mz_1_s_3_bot] = buffer_zone(mz_1_s_3, mz_1_s_2, mz_1_s_3)
- [mz_1_r_4_top, mz_1_r_4_bot] = buffer_zone(mz_1_r_4, mz_1_r_4, mz_1_r_3)
- [mz_1_s_4_top, mz_1_s_4_bot] = buffer_zone(mz_1_s_4, mz_1_s_3, mz_1_s_4)
- [mz_1_r_5_top, mz_1_r_5_bot] = buffer_zone(mz_1_r_5, mz_1_r_5, mz_1_r_4)
- [mz_1_s_5_top, mz_1_s_5_bot] = buffer_zone(mz_1_s_5, mz_1_s_4, mz_1_s_5)
- [mz_1_r_6_top, mz_1_r_6_bot] = buffer_zone(mz_1_r_6, mz_1_r_6, mz_1_r_5)
- [mz_1_s_6_top, mz_1_s_6_bot] = buffer_zone(mz_1_s_6, mz_1_s_5, mz_1_s_6)
- // RZ 2
- [mz_2_r_1, mz_2_s_1] = magnetic_zones(i_mz_2_tf, array.get(multipliers, 0), 1)
- [mz_2_r_2, mz_2_s_2] = magnetic_zones(i_mz_2_tf, array.get(multipliers, 1), 1)
- [mz_2_r_1_top, mz_2_r_1_bot] = buffer_zone(mz_2_r_1, mz_2_r_1, mz_2_s_1)
- [mz_2_s_1_top, mz_2_s_1_bot] = buffer_zone(mz_2_s_1, mz_2_r_1, mz_2_s_1)
- [mz_2_r_2_top, mz_2_r_2_bot] = buffer_zone(mz_2_r_2, mz_2_r_2, mz_2_r_1)
- [mz_2_s_2_top, mz_2_s_2_bot] = buffer_zone(mz_2_s_2, mz_2_s_1, mz_2_s_2)
- // RZ 3
- [mz_3_r_1, mz_3_s_1] = magnetic_zones(i_mz_3_tf, array.get(multipliers, 0), 1)
- [mz_3_r_2, mz_3_s_2] = magnetic_zones(i_mz_3_tf, array.get(multipliers, 1), 1)
- [mz_3_r_1_top, mz_3_r_1_bot] = buffer_zone(mz_3_r_1, mz_3_r_1, mz_3_s_1)
- [mz_3_s_1_top, mz_3_s_1_bot] = buffer_zone(mz_3_s_1, mz_3_r_1, mz_3_s_1)
- [mz_3_r_2_top, mz_3_r_2_bot] = buffer_zone(mz_3_r_2, mz_3_r_2, mz_3_r_1)
- [mz_3_s_2_top, mz_3_s_2_bot] = buffer_zone(mz_3_s_2, mz_3_s_1, mz_3_s_2)
- // Next Levels
- [mz_nxt_r_1, mz_nxt_s_1] = magnetic_zones(i_mz_nxt_tf, array.get(multipliers, 0), 0)
- [mz_nxt_r_2, mz_nxt_s_2] = magnetic_zones(i_mz_nxt_tf, array.get(multipliers, 1), 0)
- [mz_nxt_r_1_top, mz_nxt_r_1_bot] = buffer_zone(mz_nxt_r_1, mz_nxt_r_1, mz_nxt_s_1)
- [mz_nxt_s_1_top, mz_nxt_s_1_bot] = buffer_zone(mz_nxt_s_1, mz_nxt_r_1, mz_nxt_s_1)
- [mz_nxt_r_2_top, mz_nxt_r_2_bot] = buffer_zone(mz_nxt_r_2, mz_nxt_r_2, mz_nxt_r_1)
- [mz_nxt_s_2_top, mz_nxt_s_2_bot] = buffer_zone(mz_nxt_s_2, mz_nxt_s_1, mz_nxt_s_2)
- //_____________ RZ Calculations End
- //_____________ Draw Functions Start
- draw_line(left_time, right_time, float price, color _color, string _style, int _width) =>
- _line = line.new(x1=left_time, y1=price, x2=right_time, y2=price, xloc=xloc.bar_time, color=_color, style=_style, width=_width)
- 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) =>
- _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)
- //_____________ Draw Functions End
- //_____________ Draw RZ 1 Levels Start
- var mz_1_r_sub_ln_arr = array.new_line(), var mz_1_s_sub_ln_arr = array.new_line()
- var mz_1_r_1_bx_arr = array.new_box(), var mz_1_s_1_bx_arr = array.new_box()
- var mz_1_r_2_bx_arr = array.new_box(), var mz_1_s_2_bx_arr = array.new_box()
- var mz_1_r_3_bx_arr = array.new_box(), var mz_1_s_3_bx_arr = array.new_box()
- var mz_1_r_4_bx_arr = array.new_box(), var mz_1_s_4_bx_arr = array.new_box()
- var mz_1_r_5_bx_arr = array.new_box(), var mz_1_s_5_bx_arr = array.new_box()
- var mz_1_r_6_bx_arr = array.new_box(), var mz_1_s_6_bx_arr = array.new_box()
- var mz_1_r_1_ln_arr = array.new_line(), var mz_1_s_1_ln_arr = array.new_line()
- var mz_1_r_2_ln_arr = array.new_line(), var mz_1_s_2_ln_arr = array.new_line()
- var mz_1_r_3_ln_arr = array.new_line(), var mz_1_s_3_ln_arr = array.new_line()
- var mz_1_r_4_ln_arr = array.new_line(), var mz_1_s_4_ln_arr = array.new_line()
- var mz_1_r_5_ln_arr = array.new_line(), var mz_1_s_5_ln_arr = array.new_line()
- var mz_1_r_6_ln_arr = array.new_line(), var mz_1_s_6_ln_arr = array.new_line()
- if(timeframe.change(i_mz_1_tf))
- if i_mz_1_sr_1_show
- 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)
- array.push(mz_1_r_1_ln_arr, mz_1_r_1_ln)
- 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)
- array.push(mz_1_s_1_ln_arr, mz_1_s_1_ln)
- if i_mz_1_sr_1_show
- 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)
- array.push(mz_1_r_1_bx_arr, mz_1_r_bx)
- 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)
- array.push(mz_1_s_1_bx_arr, mz_1_s_bx)
- if i_mz_1_sr_2_show
- 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)
- array.push(mz_1_r_2_ln_arr, mz_1_r_2_ln)
- 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)
- array.push(mz_1_s_2_ln_arr, mz_1_s_2_ln)
- if i_mz_1_sr_2_show
- 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)
- array.push(mz_1_r_2_bx_arr, mz_1_r_2_bx)
- 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)
- array.push(mz_1_s_2_bx_arr, mz_1_s_2_bx)
- if i_mz_1_sr_3_show
- 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)
- array.push(mz_1_r_3_ln_arr, mz_1_r_3_ln)
- 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)
- array.push(mz_1_s_3_ln_arr, mz_1_s_3_ln)
- if i_mz_1_sr_3_show
- 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)
- array.push(mz_1_r_3_bx_arr, mz_1_r_3_bx)
- 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)
- array.push(mz_1_s_3_bx_arr, mz_1_s_3_bx)
- if i_mz_1_sr_4_show
- 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)
- array.push(mz_1_r_4_ln_arr, mz_1_r_4_ln)
- 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)
- array.push(mz_1_s_4_ln_arr, mz_1_s_4_ln)
- if i_mz_1_sr_4_show
- 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)
- array.push(mz_1_r_4_bx_arr, mz_1_r_4_bx)
- 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)
- array.push(mz_1_s_4_bx_arr, mz_1_s_4_bx)
- if i_mz_1_sr_5_show
- 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)
- array.push(mz_1_r_5_ln_arr, mz_1_r_5_ln)
- 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)
- array.push(mz_1_s_5_ln_arr, mz_1_s_5_ln)
- if i_mz_1_sr_5_show
- 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)
- array.push(mz_1_r_5_bx_arr, mz_1_r_5_bx)
- 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)
- array.push(mz_1_s_5_bx_arr, mz_1_s_5_bx)
- if i_mz_1_sr_6_show
- 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)
- array.push(mz_1_r_6_ln_arr, mz_1_r_6_ln)
- 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)
- array.push(mz_1_s_6_ln_arr, mz_1_s_6_ln)
- if i_mz_1_sr_6_show
- 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)
- array.push(mz_1_r_6_bx_arr, mz_1_r_6_bx)
- 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)
- array.push(mz_1_s_6_bx_arr, mz_1_s_6_bx)
- // Function to delete past lines & boxes
- show_last_boxes(arr, int showlast) =>
- if array.size(arr) >= showlast
- box = array.get(arr, 0)
- box.delete(box)
- array.remove(arr, 0)
- show_last_lines(arr, int showlast) =>
- if array.size(arr) >= showlast
- line = array.get(arr, 0)
- line.delete(line)
- array.remove(arr, 0)
- show_last_boxes(mz_1_r_1_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_s_1_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_r_2_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_s_2_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_r_3_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_s_3_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_r_4_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_s_4_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_r_5_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_s_5_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_r_6_bx_arr, i_mz_1_showlast)
- show_last_boxes(mz_1_s_6_bx_arr, i_mz_1_showlast)
- show_last_lines(mz_1_r_sub_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_s_sub_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_r_1_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_s_1_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_r_2_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_s_2_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_r_3_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_s_3_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_r_4_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_s_4_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_r_5_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_s_5_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_r_6_ln_arr, i_mz_1_showlast)
- show_last_lines(mz_1_s_6_ln_arr, i_mz_1_showlast)
- //_____________ Draw RZ 1 Levels End
- //_____________ Draw RZ 2 Levels Start
- var mz_2_r_sub_ln_arr = array.new_line(), var mz_2_s_sub_ln_arr = array.new_line()
- var mz_2_r_1_bx_arr = array.new_box(), var mz_2_s_1_bx_arr = array.new_box()
- var mz_2_r_2_bx_arr = array.new_box(), var mz_2_s_2_bx_arr = array.new_box()
- var mz_2_r_1_ln_arr = array.new_line(), var mz_2_s_1_ln_arr = array.new_line()
- var mz_2_r_2_ln_arr = array.new_line(), var mz_2_s_2_ln_arr = array.new_line()
- if(timeframe.change(i_mz_2_tf))
- if i_mz_2_sr_1_show
- 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)
- array.push(mz_2_r_1_ln_arr, mz_2_r_1_ln)
- 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)
- array.push(mz_2_s_1_ln_arr, mz_2_s_1_ln)
- if i_mz_2_sr_1_show
- 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)
- array.push(mz_2_r_1_bx_arr, mz_2_r_bx)
- 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)
- array.push(mz_2_s_1_bx_arr, mz_2_s_bx)
- if i_mz_2_sr_2_show
- 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)
- array.push(mz_2_r_2_ln_arr, mz_2_r_2_ln)
- 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)
- array.push(mz_2_s_2_ln_arr, mz_2_s_2_ln)
- if i_mz_2_sr_2_show
- 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)
- array.push(mz_2_r_2_bx_arr, mz_2_r_2_bx)
- 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)
- array.push(mz_2_s_2_bx_arr, mz_2_s_2_bx)
- // Delete past lines & boxes
- show_last_boxes(mz_2_r_1_bx_arr, i_mz_2_showlast)
- show_last_boxes(mz_2_s_1_bx_arr, i_mz_2_showlast)
- show_last_boxes(mz_2_r_2_bx_arr, i_mz_2_showlast)
- show_last_boxes(mz_2_s_2_bx_arr, i_mz_2_showlast)
- show_last_lines(mz_2_r_sub_ln_arr, i_mz_2_showlast)
- show_last_lines(mz_2_s_sub_ln_arr, i_mz_2_showlast)
- show_last_lines(mz_2_r_1_ln_arr, i_mz_2_showlast)
- show_last_lines(mz_2_s_1_ln_arr, i_mz_2_showlast)
- show_last_lines(mz_2_r_2_ln_arr, i_mz_2_showlast)
- show_last_lines(mz_2_s_2_ln_arr, i_mz_2_showlast)
- //_____________ Draw RZ 2 Levels End
- //_____________ Draw RZ 3 Levels Start
- var mz_3_r_sub_ln_arr = array.new_line(), var mz_3_s_sub_ln_arr = array.new_line()
- var mz_3_r_1_bx_arr = array.new_box(), var mz_3_s_1_bx_arr = array.new_box()
- var mz_3_r_2_bx_arr = array.new_box(), var mz_3_s_2_bx_arr = array.new_box()
- var mz_3_r_1_ln_arr = array.new_line(), var mz_3_s_1_ln_arr = array.new_line()
- var mz_3_r_2_ln_arr = array.new_line(), var mz_3_s_2_ln_arr = array.new_line()
- if(timeframe.change(i_mz_3_tf))
- if i_mz_3_sr_1_show
- 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)
- array.push(mz_3_r_1_ln_arr, mz_3_r_1_ln)
- 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)
- array.push(mz_3_s_1_ln_arr, mz_3_s_1_ln)
- if i_mz_3_sr_1_show
- 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)
- array.push(mz_3_r_1_bx_arr, mz_3_r_bx)
- 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)
- array.push(mz_3_s_1_bx_arr, mz_3_s_bx)
- if i_mz_3_sr_2_show
- 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)
- array.push(mz_3_r_2_ln_arr, mz_3_r_2_ln)
- 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)
- array.push(mz_3_s_2_ln_arr, mz_3_s_2_ln)
- if i_mz_3_sr_2_show
- 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)
- array.push(mz_3_r_2_bx_arr, mz_3_r_2_bx)
- 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)
- array.push(mz_3_s_2_bx_arr, mz_3_s_2_bx)
- // Delete past lines & boxes
- show_last_boxes(mz_3_r_1_bx_arr, i_mz_3_showlast)
- show_last_boxes(mz_3_s_1_bx_arr, i_mz_3_showlast)
- show_last_boxes(mz_3_r_2_bx_arr, i_mz_3_showlast)
- show_last_boxes(mz_3_s_2_bx_arr, i_mz_3_showlast)
- show_last_lines(mz_3_r_sub_ln_arr, i_mz_3_showlast)
- show_last_lines(mz_3_s_sub_ln_arr, i_mz_3_showlast)
- show_last_lines(mz_3_r_1_ln_arr, i_mz_3_showlast)
- show_last_lines(mz_3_s_1_ln_arr, i_mz_3_showlast)
- show_last_lines(mz_3_r_2_ln_arr, i_mz_3_showlast)
- show_last_lines(mz_3_s_2_ln_arr, i_mz_3_showlast)
- //_____________ Draw RZ 3 Levels End
- //_____________ Draw RZ Next Levels Start
- // Acknowledgement & Code Reference
- // Code Source: https://stackoverflow.com/questions/72568623/cpr-but-plot-them-at-4-am-instead-of-market-open
- // Code by: Bjorn Mistiaen
- var mz_nxt_r_sub_ln_arr = array.new_line(), var mz_nxt_s_sub_ln_arr = array.new_line()
- var mz_nxt_r_1_bx_arr = array.new_box(), var mz_nxt_s_1_bx_arr = array.new_box()
- var mz_nxt_r_2_bx_arr = array.new_box(), var mz_nxt_s_2_bx_arr = array.new_box()
- var mz_nxt_r_1_ln_arr = array.new_line(), var mz_nxt_s_1_ln_arr = array.new_line()
- var mz_nxt_r_2_ln_arr = array.new_line(), var mz_nxt_s_2_ln_arr = array.new_line()
- if session.islastbar_regular or (timeframe.change(i_mz_nxt_tf))
- end_time = mz_nxt_time_close + timeframe.in_seconds(i_mz_nxt_tf) * 3000
- if i_mz_nxt_sr_1_show
- 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)
- array.push(mz_nxt_r_1_ln_arr, mz_nxt_r_1_ln)
- 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)
- array.push(mz_nxt_s_1_ln_arr, mz_nxt_s_1_ln)
- if i_mz_nxt_sr_1_show
- 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)
- array.push(mz_nxt_r_1_bx_arr, mz_nxt_r_bx)
- 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)
- array.push(mz_nxt_s_1_bx_arr, mz_nxt_s_bx)
- if i_mz_nxt_sr_2_show
- 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)
- array.push(mz_nxt_r_2_ln_arr, mz_nxt_r_2_ln)
- 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)
- array.push(mz_nxt_s_2_ln_arr, mz_nxt_s_2_ln)
- if i_mz_nxt_sr_2_show
- 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)
- array.push(mz_nxt_r_2_bx_arr, mz_nxt_r_2_bx)
- 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)
- array.push(mz_nxt_s_2_bx_arr, mz_nxt_s_2_bx)
- // Delete past lines & boxes
- show_last_boxes(mz_nxt_r_1_bx_arr, i_mz_nxt_showlast)
- show_last_boxes(mz_nxt_s_1_bx_arr, i_mz_nxt_showlast)
- show_last_boxes(mz_nxt_r_2_bx_arr, i_mz_nxt_showlast)
- show_last_boxes(mz_nxt_s_2_bx_arr, i_mz_nxt_showlast)
- show_last_lines(mz_nxt_r_sub_ln_arr, i_mz_nxt_showlast)
- show_last_lines(mz_nxt_s_sub_ln_arr, i_mz_nxt_showlast)
- show_last_lines(mz_nxt_r_1_ln_arr, i_mz_nxt_showlast)
- show_last_lines(mz_nxt_s_1_ln_arr, i_mz_nxt_showlast)
- show_last_lines(mz_nxt_r_2_ln_arr, i_mz_nxt_showlast)
- show_last_lines(mz_nxt_s_2_ln_arr, i_mz_nxt_showlast)
- //_____________ Draw RZ Next Levels End
- //_____________ High Low Start
- // Acknowledgement & Code Reference:
- // Code Source: https://stackoverflow.com/questions/77207482/line-is-not-starting-from-previous-day-high-in-tradingview-pinescript/77207842#77207842
- // Created by: Sharad Gaikwad and Mario
- // Function
- type UDT_lines_labels
- line upper
- bool upper_extend = true
- line lower
- bool lower_extend = true
- var historical_lines = array.new<UDT_lines_labels>()
- // Get High Low Data
- [_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)
- // Draw High Low
- var float high_price = 0.
- var float low_price = 0.
- if(timeframe.change(i_hl_htf))
- my_lines = UDT_lines_labels.new()
- my_lines.upper := draw_line(_time, time, _high, i_hl_ln_h_color, i_hl_ln_style, i_hl_ln_width)
- my_lines.lower := draw_line(_time, time, _low, i_hl_ln_l_color, i_hl_ln_style, i_hl_ln_width)
- historical_lines.unshift(my_lines)
- high_price := high
- low_price := low
- if historical_lines.size() > i_hl_showlast
- old_lines = historical_lines.pop()
- old_lines.upper.delete()
- old_lines.lower.delete()
- // Break if price crosses the lines
- high_price := math.max(high_price, high)
- low_price := math.min(low_price, low)
- for old_lines in historical_lines
- if high_price < old_lines.upper.get_y1() and old_lines.upper_extend
- old_lines.upper.set_x2(time)
- else
- old_lines.upper_extend := false
- if low_price > old_lines.lower.get_y1() and old_lines.lower_extend
- old_lines.lower.set_x2(time)
- else
- old_lines.lower_extend := false
- //_____________ High Low End
- //_____________ CODE END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement