// This source code is subject to the terms of Sutrading
// © SuTrading By Naresh
//@version=4
study("CPR Sutrading", shorttitle="CPR", overlay=true)
// User inputs
showTomorrowCPR = input(title="Show tomorrow's CPR", type=input.bool, defval=true)
showHistoricalCPR = input(title="Show historical CPR", type=input.bool,
defval=true)
showR3S3 = input(title="Show R3 & S3", type=input.bool, defval=true)
showPDHL = input(title="Show previous day's High & Low", type=input.bool,
defval=true)
showPDC = input(title="Show previous day's Close", type=input.bool, defval=true)
// Defaults
// CPR Colors
cprColor = color.black
rColor = color.red
sColor = color.green
cColor = color.black
// Line style & Transparency
lStyle = plot.style_line
lTransp = 0
//Fill Transparency
fTransp = 95
// Global Variables & Flags
// TODO : Update the No of Holidays
noOfHolidays = 13
// Global Functions
// TODO : Update the list of Holiday here in format YYYY, MM, DD, 09, 15
// **09, 15 are session start hour & minutes
IsHoliday(_date) =>
iff(_date == timestamp(2021, 01, 26, 09, 15), true, iff(_date ==
timestamp(2021, 03, 11, 09, 15), true, iff(_date == timestamp(2021, 03, 29, 09,
15), true, iff(_date == timestamp(2021, 04, 02, 09, 15), true, iff(_date ==
timestamp(2021, 04, 14, 09, 15), true, iff(_date == timestamp(2021, 04, 21, 09,
15), true, iff(_date == timestamp(2021, 05, 13, 09, 15), true, iff(_date ==
timestamp(2021, 07, 21, 09, 15), true, iff(_date == timestamp(2021, 08, 19, 09,
15), true, iff(_date == timestamp(2021, 09, 10, 09, 15), true, iff(_date ==
timestamp(2021, 10, 15, 09, 15), true, iff(_date == timestamp(2021, 11, 05, 09,
15), true, iff(_date == timestamp(2021, 11, 19, 09, 15), true, false)))))))))))))
// Note: Week of Sunday=1...Saturday=7
IsWeekend(_date) =>
dayofweek(_date) == 7 or dayofweek(_date) == 1
// Skip Weekend
SkipWeekend(_date) =>
_d = dayofweek(_date)
_mul = _d == 6 ? 3 : _d == 7 ? 2 : 1
_date + (_mul * 86400000)
// Get Next Working Day
GetNextWorkingDay(_date) =>
_dt = SkipWeekend(_date)
for i = 1 to noOfHolidays
if IsHoliday(_dt)
_dt := SkipWeekend(_dt)
continue
else
break
_dt
// Today's Session Start timestamp
y = year(timenow)
m = month(timenow)
d = dayofmonth(timenow)
// Start & End time for Today's CPR
start = timestamp(y, m, d, 09, 15)
end = start + 86400000
// Plot Today's CPR
shouldPlotToday = timenow > start
tom_start = start
tom_end = end
// Start & End time for Tomorrow's CPR
if shouldPlotToday
tom_start := GetNextWorkingDay(start)
tom_end := tom_start + 86400000
// Get series
getSeries(e, timeFrame) => security(syminfo.tickerid, "D", e,
lookahead=barmerge.lookahead_on)
// Calculate Today's CPR
//Get High, Low and Close
H = getSeries(high[1], 'D')
L = getSeries(low[1], 'D')
C = getSeries(close[1], 'D')
// Pivot Range
P = (H + L + C) / 3
TC = (H + L)/2
BC = (P - TC) + P
// Resistance Levels
R3 = H + 2*(P - L)
R2 = P + (H - L)
R1 = (P * 2) - L
// Support Levels
S1 = (P * 2) - H
S2 = P - (H - L)
S3 = L - 2*(H - P)
// Plot Today's CPR
if not(IsHoliday(start)) and not(IsWeekend(start)) and shouldPlotToday
if showR3S3
_r3 = line.new(start, R3, end, R3, xloc.bar_time, color=color.new(rColor,
lTransp),style=line.style_solid, width=1)
line.delete(_r3[1])
_r2 = line.new(start, R2, end, R2, xloc.bar_time, color=color.new(rColor,
lTransp),style=line.style_solid, width=1)
line.delete(_r2[1])
_r1 = line.new(start, R1, end, R1, xloc.bar_time, color=color.new(rColor,
lTransp),style=line.style_solid, width=1)
line.delete(_r1[1])
_tc = line.new(start, TC, end, TC, xloc.bar_time, color=color.new(cprColor,
lTransp),style=line.style_solid, width=1)
line.delete(_tc[1])
_p = line.new(start, P, end, P, xloc.bar_time, color=color.new(cprColor,
lTransp),style=line.style_solid, width=1)
line.delete(_p[1])
_bc = line.new(start, BC, end, BC, xloc.bar_time, color=color.new(cprColor,
lTransp),style=line.style_solid, width=1)
line.delete(_bc[1])
_s1 = line.new(start, S1, end, S1, xloc.bar_time, color=color.new(sColor,
lTransp),style=line.style_solid, width=1)
line.delete(_s1[1])
_s2 = line.new(start, S2, end, S2, xloc.bar_time, color=color.new(sColor,
lTransp),style=line.style_solid, width=1)
line.delete(_s2[1])
if showR3S3
_s3 = line.new(start, S3, end, S3, xloc.bar_time, color=color.new(sColor,
lTransp),style=line.style_solid, width=1)
line.delete(_s3[1])
if showPDHL
_pdh = line.new(start, H, end, H, xloc.bar_time, color=color.new(cColor,
lTransp), style=line.style_dashed, width=1)
line.delete(_pdh[1])
_pdl = line.new(start, L, end, L, xloc.bar_time, color=color.new(cColor,
lTransp), style=line.style_dashed, width=1)
line.delete(_pdl[1])
// if showPDC
// _pdc = line.new(start, C, end, C, xloc.bar_time, color=color.new(cColor,
lTransp), style=line.style_dotted, width=2)
// line.delete(_pdc[1])
// Plot Today's Labels
if not(IsHoliday(start)) and not(IsWeekend(start)) and shouldPlotToday
if showR3S3
l_r3 = label.new(start, R3, text="R3", xloc=xloc.bar_time,
textcolor=rColor, style=label.style_none)
label.delete(l_r3[1])
l_r2 = label.new(start, R2, text="R2", xloc=xloc.bar_time, textcolor=rColor,
style=label.style_none)
label.delete(l_r2[1])
l_r1 = label.new(start, R1, text="R1", xloc=xloc.bar_time, textcolor=rColor,
style=label.style_none)
label.delete(l_r1[1])
l_tc = label.new(start, TC, text="BC", xloc=xloc.bar_time,
textcolor=cprColor, style=label.style_none)
label.delete(l_tc[1])
l_p = label.new(start, P, text="P", xloc=xloc.bar_time, textcolor=cprColor,
style=label.style_none)
label.delete(l_p[1])
l_bc = label.new(start, BC, text="TC", xloc=xloc.bar_time,
textcolor=cprColor, style=label.style_none)
label.delete(l_bc[1])
l_s1 = label.new(start, S1, text="S1", xloc=xloc.bar_time, textcolor=sColor,
style=label.style_none)
label.delete(l_s1[1])
l_s2 = label.new(start, S2, text="S2", xloc=xloc.bar_time, textcolor=sColor,
style=label.style_none)
label.delete(l_s2[1])
if showR3S3
l_s3 = label.new(start, S3, text="S3", xloc=xloc.bar_time,
textcolor=sColor, style=label.style_none)
label.delete(l_s3[1])
if showPDHL
l_pdh = label.new(start, H, text="PDH", xloc=xloc.bar_time,
textcolor=rColor, style=label.style_none)
label.delete(l_pdh[1])
l_pdl = label.new(start, L, text="PDL", xloc=xloc.bar_time,
textcolor=sColor, style=label.style_none)
label.delete(l_pdl[1])
// if showPDC
// l_pdc = label.new(start, C, text="PD Close", xloc=xloc.bar_time,
textcolor=cColor, style=label.style_none)
// label.delete(l_pdc[1])
// Calculate Tomorrow's CPR
// Get High, Low and Close
tH = getSeries(high, 'D')
tL = getSeries(low, 'D')
tC = getSeries(close, 'D')
// Pivot Range
tP = (tH + tL + tC) / 3
tTC = (tH + tL)/2
tBC = (tP - tTC) + tP
// Resistance Levels
tR3 = tH + 2*(tP - tL)
tR2 = tP + (tH - tL)
tR1 = (tP * 2) - tL
// Support Levels
tS1 = (tP * 2) - tH
tS2 = tP - (tH - tL)
tS3 = tL - 2*(tH - tP)
// Plot Tomorrow's CPR
if showTomorrowCPR
if showR3S3
_t_r3 = line.new(tom_start, tR3, tom_end, tR3, xloc.bar_time,
color=color.new(rColor, lTransp))
line.delete(_t_r3[1])
_t_r2 = line.new(tom_start, tR2, tom_end, tR2, xloc.bar_time,
color=color.new(rColor, lTransp))
line.delete(_t_r2[1])
_t_r1 = line.new(tom_start, tR1, tom_end, tR1, xloc.bar_time,
color=color.new(rColor, lTransp))
line.delete(_t_r1[1])
_t_tc = line.new(tom_start, tTC, tom_end, tTC, xloc.bar_time,
color=color.new(cprColor, lTransp))
line.delete(_t_tc[1])
_t_p = line.new(tom_start, tP, tom_end, tP, xloc.bar_time,
color=color.new(cprColor, lTransp),style=line.style_solid, width=1)
line.delete(_t_p[1])
_t_bc = line.new(tom_start, tBC, tom_end, tBC, xloc.bar_time,
color=color.new(cprColor, lTransp))
line.delete(_t_bc[1])
_t_s1 = line.new(tom_start, tS1, tom_end, tS1, xloc.bar_time,
color=color.new(sColor, lTransp))
line.delete(_t_s1[1])
_t_s2 = line.new(tom_start, tS2, tom_end, tS2, xloc.bar_time,
color=color.new(sColor, lTransp))
line.delete(_t_s2[1])
if showR3S3
_t_s3 = line.new(tom_start, tS3, tom_end, tS3, xloc.bar_time,
color=color.new(sColor, lTransp))
line.delete(_t_s3[1])
if showPDHL
_pdth = line.new(tom_start, tH, tom_end, tH, xloc.bar_time,
color=color.new(cColor, lTransp), style=line.style_dashed, width=1)
line.delete(_pdth[1])
_pdtl = line.new(tom_start, tL, tom_end, tL, xloc.bar_time,
color=color.new(cColor, lTransp), style=line.style_dashed, width=1)
line.delete(_pdtl[1])
// if showPDC
// _pdtc = line.new(tom_start, tC, tom_end, tC, xloc.bar_time,
color=color.new(cColor, lTransp), style=line.style_dotted, width=2)
// line.delete(_pdtc[1])
// Plot Tomorrow's Labels
if showTomorrowCPR
if showR3S3
l_t_r3 = label.new(tom_start, tR3, text="R3 ", xloc=xloc.bar_time,
textcolor=rColor, style=label.style_none)
label.delete(l_t_r3[1])
l_t_r2 = label.new(tom_start, tR2, text="R2 ", xloc=xloc.bar_time,
textcolor=rColor, style=label.style_none)
label.delete(l_t_r2[1])
l_t_r1 = label.new(tom_start, tR1, text="R1 ", xloc=xloc.bar_time,
textcolor=rColor, style=label.style_none)
label.delete(l_t_r1[1])
l_t_tc = label.new(tom_start, tTC, text="TC ", xloc=xloc.bar_time,
textcolor=cprColor, style=label.style_none)
label.delete(l_t_tc[1])
l_t_p = label.new(tom_start, tP, text="P ", xloc=xloc.bar_time,
textcolor=cprColor, style=label.style_none)
label.delete(l_t_p[1])
l_t_bc = label.new(tom_start, tBC, text="BC ", xloc=xloc.bar_time,
textcolor=cprColor, style=label.style_none)
label.delete(l_t_bc[1])
l_t_s1 = label.new(tom_start, tS1, text="S1 ", xloc=xloc.bar_time,
textcolor=sColor, style=label.style_none)
label.delete(l_t_s1[1])
l_t_s2 = label.new(tom_start, tS2, text="S2 ", xloc=xloc.bar_time,
textcolor=sColor, style=label.style_none)
label.delete(l_t_s2[1])
if showR3S3
l_t_s3 = label.new(tom_start, tS3, text="S3 ", xloc=xloc.bar_time,
textcolor=sColor, style=label.style_none)
label.delete(l_t_s3[1])
if showPDHL
l_pdth = label.new(tom_start, tH, text="PDH ", xloc=xloc.bar_time,
textcolor=rColor, style=label.style_none)
label.delete(l_pdth[1])
l_pdtl = label.new(tom_start, tL, text="PDL ", xloc=xloc.bar_time,
textcolor=sColor, style=label.style_none)
label.delete(l_pdtl[1])
// if showPDC
// l_pdtc = label.new(tom_start, tC, text="PD Close", xloc=xloc.bar_time,
textcolor=cColor, style=label.style_none)
// label.delete(l_pdtc[1])
DchosenColor(c_)=> c_ == "aqua" ? color.aqua : c_ == "black" ? color.black : c_ ==
"blue" ? color.blue : c_ == "fuchsia" ? color.fuchsia : c_ == "gray" ? color.gray :
c_ == "green" ? color.green : c_ == "lime" ? color.lime : c_ == "maroon" ?
color.maroon : c_ == "navy" ? color.navy : c_ == "olive" ? color.olive : c_ ==
"orange" ? color.orange : c_ == "purple" ? color.purple : c_ == "red" ? color.red :
c_ == "silver" ? color.silver : c_ == "teal" ? color.teal : c_ == "white" ?
color.white : c_ == "yellow" ? color.yellow : color.black
DhigherTF = "D"
Dmy_color = input(title="Daily Color", defval="red", options=["aqua", "black",
"blue", "fuchsia", "gray", "green", "lime", "maroon", "navy", "olive", "orange",
"purple", "red", "silver", "teal", "white", "yellow"])
DprevCloseHTF = security(syminfo.tickerid, DhigherTF, close[1], lookahead=true)
DprevOpenHTF = security(syminfo.tickerid, DhigherTF, open[1], lookahead=true)
DprevHighHTF = security(syminfo.tickerid, DhigherTF, high[1], lookahead=true)
DprevLowHTF = security(syminfo.tickerid, DhigherTF, low[1], lookahead=true)
WchosenColor(c_)=> c_ == "aqua" ? color.aqua : c_ == "black" ? color.black : c_ ==
"blue" ? color.blue : c_ == "fuchsia" ? color.fuchsia : c_ == "gray" ? color.gray :
c_ == "green" ? color.green : c_ == "lime" ? color.lime : c_ == "maroon" ?
color.maroon : c_ == "navy" ? color.navy : c_ == "olive" ? color.olive : c_ ==
"orange" ? color.orange : c_ == "purple" ? color.purple : c_ == "red" ? color.red :
c_ == "silver" ? color.silver : c_ == "teal" ? color.teal : c_ == "white" ?
color.white : c_ == "yellow" ? color.yellow : color.black
WhigherTF = "W"
Wmy_color = input(title="Weekly Color", defval="black", options=["aqua", "black",
"blue", "fuchsia", "gray", "green", "lime", "maroon", "navy", "olive", "orange",
"purple", "red", "silver", "teal", "white", "yellow"])
WprevCloseHTF = security(syminfo.tickerid, WhigherTF, close[1], lookahead=true)
WprevOpenHTF = security(syminfo.tickerid, WhigherTF, open[1], lookahead=true)
WprevHighHTF = security(syminfo.tickerid, WhigherTF, high[1], lookahead=true)
WprevLowHTF = security(syminfo.tickerid, WhigherTF, low[1], lookahead=true)
WpLevel = (WprevHighHTF + WprevLowHTF + WprevCloseHTF) / 3
Wr1Level = WpLevel * 2 - WprevLowHTF
Ws1Level = WpLevel * 2 - WprevHighHTF
Wr2Level = WpLevel + (WprevHighHTF - WprevLowHTF)
Ws2Level = WpLevel - (WprevHighHTF - WprevLowHTF)
Wr3Level = WpLevel + 2*(WprevHighHTF - WprevLowHTF)
Ws3Level = WpLevel - 2*(WprevHighHTF - WprevLowHTF)
var line Wr1Line = na
var line WpLine = na
var line Ws1Line = na
var line Wr2Line = na
var line Ws2Line = na
var line Wr3Line = na
var line Ws3Line = na
var line Wm3Line = na
var label Wr3L = na
var label Wr1L = na
var label WpL = na
var label Ws1L = na
var label Ws2L = na
var label Ws3L = na
var label Wr2L = na
if WpLevel[1] != WpLevel
line.set_x2(Wr1Line, bar_index)
line.set_x2(WpLine, bar_index)
line.set_x2(Ws1Line, bar_index)
line.set_x2(Wr2Line, bar_index)
line.set_x2(Ws2Line, bar_index)
line.set_x2(Wr3Line, bar_index)
line.set_x2(Ws3Line, bar_index)
line.set_extend(Wr1Line, extend.none)
line.set_extend(WpLine, extend.none)
line.set_extend(Ws1Line, extend.none)
line.set_extend(Wr2Line, extend.none)
line.set_extend(Ws2Line, extend.none)
line.set_extend(Wr3Line, extend.none)
line.set_extend(Ws3Line, extend.none)
Wr1Line := line.new(bar_index, Wr1Level, bar_index, Wr1Level, width=2,
extend=extend.right, color=WchosenColor(Wmy_color))
WpLine := line.new(bar_index, WpLevel, bar_index, WpLevel, width=3,
extend=extend.right, color=WchosenColor(Wmy_color))
Ws1Line := line.new(bar_index, Ws1Level, bar_index, Ws1Level,
width=2,extend=extend.right, color=WchosenColor(Wmy_color))
Wr2Line := line.new(bar_index, Wr2Level, bar_index, Wr2Level, width=1,
extend=extend.right,style=line.style_dotted, color=WchosenColor(Wmy_color))
Ws2Line := line.new(bar_index, Ws2Level, bar_index, Ws2Level,
width=1,extend=extend.right,style=line.style_dotted, color=WchosenColor(Wmy_color))
Wr3Line := line.new(bar_index, Wr3Level, bar_index, Wr3Level, width=1,
extend=extend.right,style=line.style_dashed, color=WchosenColor(Wmy_color))
Ws3Line := line.new(bar_index, Ws3Level, bar_index, Ws3Level,
width=1,extend=extend.right,style=line.style_dashed, color=WchosenColor(Wmy_color))
Wr1L := label.new(bar_index, Wr1Level, WhigherTF+".R1", style=label.style_none)
var label label1 = na
WpL := label.new(bar_index, WpLevel, WhigherTF+".P", style=label.style_none)
label.set_textalign(label1, text.align_right)
Ws1L := label.new(bar_index, Ws1Level, WhigherTF+".S1", style=label.style_none)
Wr2L := label.new(bar_index, Wr2Level, WhigherTF+".R2", style=label.style_none)
Ws2L := label.new(bar_index, Ws2Level, WhigherTF+".S2", style=label.style_none)
Wr3L := label.new(bar_index, Wr3Level, WhigherTF+".R3", style=label.style_none)
Ws3L := label.new(bar_index, Ws3Level, WhigherTF+".S3", style=label.style_none)
label.delete(Wr3L[1])
label.delete(Ws3L[1])
label.delete(Wr2L[1])
label.delete(Wr1L[1])
label.delete(WpL[1])
label.delete(Ws1L[1])
label.delete(Ws2L[1])
line.delete(Wr2Line[1])
line.delete(Wr1Line[1])
line.delete(Wm3Line[1])
line.delete(WpLine[1])
line.delete(Ws1Line[1])
line.delete(Ws2Line[1])
line.delete(Wr3Line[1])
line.delete(Ws3Line[1])
if not na(WpLine) and line.get_x2(WpLine) != bar_index
line.set_x2(Wr1Line, bar_index)
line.set_x2(WpLine, bar_index)
line.set_x2(Ws1Line, bar_index)
line.set_x2(Wr2Line, bar_index)
line.set_x2(Ws2Line, bar_index)
line.set_x2(Wr3Line, bar_index)
line.set_x2(Ws3Line, bar_index)
MchosenColor(c_)=> c_ == "aqua" ? color.aqua : c_ == "black" ? color.black : c_ ==
"blue" ? color.blue : c_ == "fuchsia" ? color.fuchsia : c_ == "gray" ? color.gray :
c_ == "green" ? color.green : c_ == "lime" ? color.lime : c_ == "maroon" ?
color.maroon : c_ == "navy" ? color.navy : c_ == "olive" ? color.olive : c_ ==
"orange" ? color.orange : c_ == "purple" ? color.purple : c_ == "red" ? color.red :
c_ == "silver" ? color.silver : c_ == "teal" ? color.teal : c_ == "white" ?
color.white : c_ == "yellow" ? color.yellow : color.black
MhigherTF = "M"
Mmy_color = input(title="Monthly Color", defval="green", options=["aqua", "black",
"blue", "fuchsia", "gray", "green", "lime", "maroon", "navy", "olive", "orange",
"purple", "red", "silver", "teal", "white", "yellow"])
MprevCloseHTF = security(syminfo.tickerid, MhigherTF, close[1], lookahead=true)
MprevOpenHTF = security(syminfo.tickerid, MhigherTF, open[1], lookahead=true)
MprevHighHTF = security(syminfo.tickerid, MhigherTF, high[1], lookahead=true)
MprevLowHTF = security(syminfo.tickerid, MhigherTF, low[1], lookahead=true)
MpLevel = (MprevHighHTF + MprevLowHTF + MprevCloseHTF) / 3
Mr1Level = MpLevel * 2 - MprevLowHTF
Ms1Level = MpLevel * 2 - MprevHighHTF
Mr2Level = MpLevel + (MprevHighHTF - MprevLowHTF)
Ms2Level = MpLevel - (MprevHighHTF - MprevLowHTF)
Mr3Level = MpLevel + 2*(MprevHighHTF - MprevLowHTF)
Ms3Level = MpLevel - 2*(MprevHighHTF - MprevLowHTF)
var line Mr1Line = na
var line MpLine = na
var line Ms1Line = na
var line Mr2Line = na
var line Ms2Line = na
var line Mr3Line = na
var line Ms3Line = na
var line Mm3Line = na
var label Mr3L = na
var label Mr1L = na
var label MpL = na
var label Ms1L = na
var label Ms2L = na
var label Ms3L = na
var label Mr2L = na
if MpLevel[1] != MpLevel
line.set_x2(Mr1Line, bar_index)
line.set_x2(MpLine, bar_index)
line.set_x2(Ms1Line, bar_index)
line.set_x2(Mr2Line, bar_index)
line.set_x2(Ms2Line, bar_index)
line.set_x2(Mr3Line, bar_index)
line.set_x2(Ms3Line, bar_index)
line.set_extend(Mr1Line, extend.none)
line.set_extend(MpLine, extend.none)
line.set_extend(Ms1Line, extend.none)
line.set_extend(Mr2Line, extend.none)
line.set_extend(Ms2Line, extend.none)
line.set_extend(Mr3Line, extend.none)
line.set_extend(Ms3Line, extend.none)
Mr1Line := line.new(bar_index, Mr1Level, bar_index, Mr1Level, width=2,
extend=extend.right, color=MchosenColor(Mmy_color))
MpLine := line.new(bar_index, MpLevel, bar_index, MpLevel, width=3,
extend=extend.right, color=MchosenColor(Mmy_color))
Ms1Line := line.new(bar_index, Ms1Level, bar_index, Ms1Level,
width=2,extend=extend.right, color=MchosenColor(Mmy_color))
Mr2Line := line.new(bar_index, Mr2Level, bar_index, Mr2Level, width=1,
extend=extend.right,style=line.style_dotted, color=MchosenColor(Mmy_color))
Ms2Line := line.new(bar_index, Ms2Level, bar_index, Ms2Level,
width=1,extend=extend.right,style=line.style_dotted, color=MchosenColor(Mmy_color))
Mr3Line := line.new(bar_index, Mr3Level, bar_index, Mr3Level, width=1,
extend=extend.right,style=line.style_dashed, color=MchosenColor(Mmy_color))
Ms3Line := line.new(bar_index, Ms3Level, bar_index, Ms3Level,
width=1,extend=extend.right,style=line.style_dashed, color=MchosenColor(Mmy_color))
Mr1L := label.new(bar_index, Mr1Level, MhigherTF+".R1", style=label.style_none)
var label label1 = na
MpL := label.new(bar_index, MpLevel, MhigherTF+".P", style=label.style_none)
label.set_textalign(label1, text.align_right)
Ms1L := label.new(bar_index, Ms1Level, MhigherTF+".S1", style=label.style_none)
Mr2L := label.new(bar_index, Mr2Level, MhigherTF+".R2", style=label.style_none)
Ms2L := label.new(bar_index, Ms2Level, MhigherTF+".S2", style=label.style_none)
Mr3L := label.new(bar_index, Mr3Level, MhigherTF+".R3", style=label.style_none)
Ms3L := label.new(bar_index, Ms3Level, MhigherTF+".S3", style=label.style_none)
label.delete(Mr3L[1])
label.delete(Ms3L[1])
label.delete(Mr2L[1])
label.delete(Mr1L[1])
label.delete(MpL[1])
label.delete(Ms1L[1])
label.delete(Ms2L[1])
line.delete(Mr2Line[1])
line.delete(Mr1Line[1])
line.delete(Mm3Line[1])
line.delete(MpLine[1])
line.delete(Ms1Line[1])
line.delete(Ms2Line[1])
line.delete(Mr3Line[1])
line.delete(Ms3Line[1])
if not na(MpLine) and line.get_x2(MpLine) != bar_index
line.set_x2(Mr1Line, bar_index)
line.set_x2(MpLine, bar_index)
line.set_x2(Ms1Line, bar_index)
line.set_x2(Mr2Line, bar_index)
line.set_x2(Ms2Line, bar_index)
line.set_x2(Mr3Line, bar_index)
line.set_x2(Ms3Line, bar_index)
///