0% found this document useful (0 votes)
26 views10 pages

CPR Sutrading

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views10 pages

CPR Sutrading

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 10

// 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)

///

You might also like