// This source code is subject to the terms of the Mozilla Public License 2.
0 at
[Link]
// ©Tradingdirection
//@version=5
indicator("CPR By Trading Direction V3",overlay = true)
cprdaily = [Link](defval = [Link],title = "daily cprcolor",group =
"CPR")
cprweekly = [Link](defval = [Link],title = "weekly cprcolor",group =
"CPR")
dailyR=[Link](defval = [Link],title = "daily R Levels",group =
"Resistance")
dailyS=[Link](defval = [Link],title = "daily S Levels",group = "Support")
weeklyR=[Link](defval = [Link],title = "weekly R Levels",group =
"Resistance")
weeklyS=[Link](defval = [Link],title = "weekly S Levels",group = "Support")
vwapclr = [Link](defval = [Link],title = "vwap color")
showvwap = [Link](defval = false,title = "show/hide vwap")
show8ema = [Link](defval = false,title = "show/hide 8ema")
show50ema = [Link](defval = false,title = "show/hide 50ema")
show20ema = [Link](defval = true,title = "show/hide 20ema")
show200ema = [Link](defval = true,title = "show/hide 200ema")
vwap = [Link](hlcc4)
plot(showvwap ? vwap:na,title="VWap",color=vwapclr,style=plot.style_stepline)
Hd =
[Link]([Link],"D",high[1],barmerge.gaps_off,barmerge.lookahead_
on)
Ld =
[Link]([Link],"D",low[1],barmerge.gaps_off,barmerge.lookahead_o
n)
Cd =
[Link]([Link],"D",close[1],barmerge.gaps_off,[Link]
_on)
Hw =
[Link]([Link],"W",high[1],barmerge.gaps_off,barmerge.lookahead_
on)
Lw =
[Link]([Link],"W",low[1],barmerge.gaps_off,barmerge.lookahead_o
n)
Cw =
[Link]([Link],"W",close[1],barmerge.gaps_off,[Link]
_on)
//daily pivot calculations
PP = (Hd + Ld + Cd)/3
R1 = 2*PP - Ld
S1 = 2*PP - Hd
R2= PP + (Hd - Ld)
S2 = PP - (Hd-Ld)
R3 = 2*PP + (Hd - 2*Ld)
S3 = 2*PP - (2*Hd - Ld)
BC = (Hd+Ld)/2
TC = PP + (PP - BC)
//end of daily pivot calculations
//weekly pivot calculations
Pw = (Hw + Lw + Cw)/3
Rw1 = 2*Pw - Lw
Sw1 = 2*Pw - Hw
Sw2 = Pw - (Hw - Lw)
Rw2= Pw + (Hw - Lw)
Rw3 = 2*Pw + (Hw - 2*Lw)
Sw3 = 2*Pw - (2*Hw - Lw)
BCw = (Hw+Lw)/2
TCw = Pw + (Pw - BCw)
//end of weekly pivot calculations
ema8= [Link](close,8)
ema20= [Link](close,20)
ema200= [Link](close,200)
ema50= [Link](close,50)
plot(show8ema ? ema8:na,title="8 EMA",color = [Link])
plot(show50ema ? ema50:na, title="50 EMA",color = [Link])
plot(show200ema ? ema200:na, title="200 EMA",color = [Link])
plot(show20ema ? ema20:na, title="20 EMA",color = [Link])
time_y = year(time)
time_m = month(time)
time_d = dayofmonth(time)
if time_m == 12
time_y += 1
time_m := 1
time_m
else
time_m += 1
time_m
next_month = timestamp(time_y, time_m, 1, 0, 0)
nextDay = time + 1000*60*60*24
startDay = nextDay - 1000*60*60*24
endDay = time+1000*60*60*24
//daily plot
_Hd = plot(Hd,title="PDH",color=Hd != Hd[1]?
na:[Link]([Link],0),style=plot.style_cross,linewidth=1)
_Ld = plot(Ld,title="PDL",color=Ld!=Ld[1]?na:[Link]([Link],0),style =
plot.style_cross,linewidth=1)
_Cd = plot(Cd,title="PDC",color=Cd!=Cd[1]?na:[Link]([Link],0),style =
plot.style_circles,linewidth=1)
_R1 = plot(R1,title="Daily R1",color=R1!=R1[1]?na:[Link](dailyR,0),style =
plot.style_line,linewidth=1)
_R2 = plot(R2,title="Daily R2",color=R2!=R2[1]?na:[Link](dailyR,0),style =
plot.style_line,linewidth=1)
_R3 = plot(R3,title="Daily R3",color=R3!=R3[1]?na:[Link](dailyR,0),style =
plot.style_line,linewidth=1)
_S3 = plot(S3,title="Daily S3",color=S3!=S3[1]?na:[Link](dailyS,0),style =
plot.style_line,linewidth=1)
_S1 = plot(S1,title="Daily S1",color=S1!=S1[1]?na:[Link](dailyS,0),style =
plot.style_line,linewidth=1)
_S2 = plot(S2,title="Daily S2",color=S2!=S2[1]?na:[Link](dailyS,0),style =
plot.style_line,linewidth=1)
_PP = plot(PP,title="Daily Pivot Point",color=PP!=PP[1]?
na:[Link](cprdaily,0),style = plot.style_line,linewidth=3)
_BC = plot(BC,title = "Daily BC",color = BC != BC[1]?na:[Link](cprdaily,0),style
= plot.style_line,linewidth=3)
_TC = plot(TC,title = "Daily TC",color = TC != TC[1]?na:[Link](cprdaily,0),style
= plot.style_line,linewidth=3)
fill(plot1 = _Hd,plot2 = _R1,color = [Link]([Link],80))
fill(plot1 = _Ld,plot2 = _S1,color = [Link]([Link],80))
fill(plot1 = _TC,plot2 = _BC,color = [Link]([Link],80))
//end of daily plot
_Hw = plot(Hw,title="Weekly High",color=Hw != Hw[1]?
na:[Link]([Link],0),style=plot.style_circles,linewidth=1)
_Lw = plot(Lw,title="Weekly Low",color=Lw!=Lw[1]?na:[Link]([Link],0),style
= plot.style_circles,linewidth=1)
_Rw1 = plot(Rw1,title="Weekly R1",color=Rw1!=Rw1[1]?na:[Link](weeklyR,0),style =
plot.style_line,linewidth=1)
_Sw1 = plot(Sw1,title="Weekly S1",color=Sw1!=Sw1[1]?na:[Link](weeklyS,0),style =
plot.style_line,linewidth=1)
_Rw2 = plot(Rw2,title="Weekly R2",color=Rw2!=Rw2[1]?na:[Link](weeklyR,0),style =
plot.style_line,linewidth=1)
_Sw2 = plot(Sw2,title="Weekly S2",color=Sw2!=Sw2[1]?na:[Link](weeklyS,0),style =
plot.style_line,linewidth=1)
_Rw3 = plot(Rw3,title="Weekly R3",color=Rw3!=Rw3[1]?na:[Link](weeklyR,0),style =
plot.style_line,linewidth=1)
_Sw3 = plot(Sw3,title="Weekly S3",color=Sw3!=Sw3[1]?na:[Link](weeklyS,0),style =
plot.style_line,linewidth=1)
_Pw = plot(Pw,title="Weekly Pivot",color=Pw!=Pw[1]?na:[Link](cprweekly,0),style
= plot.style_line,linewidth=3)
_BCw = plot(BCw,title = "Weekly BC",color = BCw != BCw[1]?
na:[Link](cprweekly,0),style = plot.style_line,linewidth=3)
_TCw = plot(TCw,title = "Weekly TC",color = TCw != TCw[1]?
na:[Link](cprweekly,0),style = plot.style_line,linewidth=3)
_t_Hw = [Link](startDay, Hw, endDay, Hw, xloc.bar_time, extend=[Link], style
= line.style_dotted, color=[Link], width=1)
[Link](_t_Hw[1])
_t_Lw = [Link](startDay, Lw, endDay, Lw, xloc.bar_time, extend=[Link], style
= line.style_dotted, color=[Link], width=1)
[Link](_t_Lw[1])
_t_rw1 = [Link](startDay, Rw1, endDay, Rw1, xloc.bar_time, extend=[Link],
style = line.style_solid, color=weeklyR, width=1)
[Link](_t_rw1[1])
_t_rw2 = [Link](startDay, Rw2, endDay, Rw2, xloc.bar_time, extend=[Link],
style = line.style_solid, color=weeklyR, width=1)
[Link](_t_rw2[1])
_t_rw3 = [Link](startDay, Rw3, endDay, Rw3, xloc.bar_time, extend=[Link],
style = line.style_solid, color=weeklyR, width=1)
[Link](_t_rw3[1])
_t_sw1 = [Link](startDay, Sw1, endDay, Sw1, xloc.bar_time, extend=[Link],
style = line.style_solid, color=weeklyS, width=1)
[Link](_t_sw1[1])
_t_sw2 = [Link](startDay, Sw2, endDay, Sw2, xloc.bar_time, extend=[Link],
style = line.style_solid, color=weeklyS, width=1)
[Link](_t_sw2[1])
_t_sw3 = [Link](startDay, Sw3, endDay, Sw3, xloc.bar_time, extend=[Link],
style = line.style_solid, color=weeklyS, width=1)
[Link](_t_sw3[1])
fill(plot1 = _TCw,plot2 = _BCw,color = [Link]([Link],85))
//_t_pp = [Link](startDay, PP, endDay, PP, xloc.bar_time, extend=[Link],
style = line.style_solid, color=cprdaily, width=1)
//[Link](_t_pp[1])
_t_hd = [Link](startDay, Hd, endDay, Hd, xloc.bar_time, extend=[Link], style
= line.style_dotted, color=[Link], width=1)
[Link](_t_hd[1])
_t_ld = [Link](startDay, Ld, endDay, Ld, xloc.bar_time, extend=[Link], style
= line.style_dotted, color=[Link], width=1)
[Link](_t_ld[1])
_t_cd = [Link](startDay, Cd, endDay, Cd, xloc.bar_time, extend=[Link], style
= line.style_dotted, color=[Link], width=1)
[Link](_t_cd[1])
_t_r1 = [Link](startDay, R1, endDay, R1, xloc.bar_time, extend=[Link], style
= line.style_solid, color=dailyR, width=1)
[Link](_t_r1[1])
_t_r2 = [Link](startDay, R2, endDay, R2, xloc.bar_time, extend=[Link], style
= line.style_solid, color=dailyR, width=1)
[Link](_t_r2[1])
_t_r3 = [Link](startDay, R3, endDay, R3, xloc.bar_time, extend=[Link], style
= line.style_solid, color=dailyR, width=1)
[Link](_t_r3[1])
_t_s1 = [Link](startDay, S1, endDay, S1, xloc.bar_time, extend=[Link], style
= line.style_solid, color=dailyS, width=1)
[Link](_t_s1[1])
_t_s2 = [Link](startDay, S2, endDay, S2, xloc.bar_time, extend=[Link], style
= line.style_solid, color=dailyS, width=1)
[Link](_t_s2[1])
_t_s3 = [Link](startDay, S3, endDay, S3, xloc.bar_time, extend=[Link], style
= line.style_solid, color=dailyS, width=1)
[Link](_t_s3[1])
_t_bc = [Link](startDay, BC, endDay, BC, xloc.bar_time, extend=[Link], style
= line.style_solid, color=cprdaily, width=3)
[Link](_t_bc[1])
_t_tc = [Link](startDay, TC, endDay, TC, xloc.bar_time, extend=[Link], style
= line.style_solid, color=cprdaily, width=3)
[Link](_t_tc[1])
_t_tp = [Link](startDay, PP, endDay, PP, xloc.bar_time, extend=[Link], style
= line.style_solid, color=cprdaily, width=3)
[Link](_t_tp[1])
_t_bcw = [Link](startDay, BCw, endDay, BCw, xloc.bar_time, extend=[Link],
style = line.style_solid, color=cprweekly, width=3)
[Link](_t_bcw[1])
_t_tcw = [Link](startDay, TCw, endDay, TCw, xloc.bar_time, extend=[Link],
style = line.style_solid, color=cprweekly, width=3)
[Link](_t_tcw[1])
_t_tpw = [Link](startDay, Pw, endDay, Pw, xloc.bar_time, extend=[Link],
style = line.style_solid, color=cprweekly, width=3)
[Link](_t_tpw[1])
[Link](_t_hd,_t_r1,color = [Link]([Link],85))
[Link](_t_ld,_t_s1,color = [Link]([Link],85))
//[Link](_t_tc,_t_bc,color = [Link]([Link],90))
//labels daily
var line R1Line = na
var line PPLine = na
var line S1Line = na
var line S2Line = na
var line S3Line = na
var line R2Line = na
var line R3Line = na
var line HdLine = na
var line LdLine = na
var line CdLine = na
var line TCLine = na
var line BCLine = na
if PP[1] != PP
line.set_x2(R1Line, bar_index)
line.set_xy2(PPLine, bar_index,bar_index)
line.set_x2(S1Line, bar_index)
line.set_x2(S2Line, bar_index)
line.set_x2(S3Line, bar_index)
line.set_x2(R2Line, bar_index)
line.set_x2(R3Line, bar_index)
[Link](bar_index, R1, "R1", style=label.style_none,textcolor = dailyR,size
= [Link])
[Link](bar_index, R2, "R2", style=label.style_none,textcolor = dailyR,size
= [Link])
[Link](bar_index, R3, "R3", style=label.style_none,textcolor = dailyR,size
= [Link])
[Link](bar_index, PP, "P", style=label.style_none,textcolor =
cprdaily,size = [Link])
[Link](bar_index, S1, "S1", style=label.style_none,textcolor = dailyS,size
= [Link])
[Link](bar_index, S2, "S2", style=label.style_none,textcolor =
dailyS,size=[Link])
[Link](bar_index, S3, "S3", style=label.style_none,textcolor = dailyS,size
= [Link])
[Link](bar_index, Hd, "PDH", style=label.style_none,textcolor =
[Link],size = [Link])
[Link](bar_index, Ld, "PDL", style=label.style_none,textcolor =
[Link],size = [Link])
[Link](bar_index, Cd, "PDClose", style=label.style_none,textcolor =
[Link],size = [Link])
[Link](bar_index, TC, "TC", style=label.style_none,textcolor = cprdaily,size
= [Link])
[Link](bar_index, BC, "BC", style=label.style_none,textcolor = cprdaily,size
= [Link])
if not na(PPLine) and line.get_x2(PPLine) != bar_index
line.set_x2(R1Line, bar_index)
line.set_x2(PPLine, bar_index)
line.set_x2(S1Line, bar_index)
//end of daily labels
//box
cprbox_d = [Link](startDay,TC,endDay,BC,border_color = [Link]( cprdaily,
100),border_width = 1,extend = [Link],xloc = xloc.bar_time,bgcolor =
[Link]([Link],90),text="Daily CPR",text_halign = text.align_left,text_valign
= text.align_center,text_wrap=text.wrap_none)
[Link](cprbox_d[1])
cprbox_w = [Link](startDay,TCw,endDay,BCw,border_color =
[Link]( cprweekly,100),border_width = 1,extend = [Link],xloc =
xloc.bar_time,bgcolor = [Link]([Link],90),text="Weekly CPR",text_halign =
text.align_left,text_valign = text.align_center,text_wrap=text.wrap_none)
[Link](cprbox_w[1])
//end of box
//labels weekly
var line Rw1Line = na
var line Rw2Line = na
var line Rw3Line = na
var line Sw1Line = na
var line Sw2Line = na
var line Sw3Line = na
var line PwLine = na
var line HwLine = na
var line LwLine = na
if Pw[1] != Pw
line.set_x2(Rw1Line, bar_index)
line.set_x2(Rw2Line, bar_index)
line.set_x2(Rw3Line, bar_index)
line.set_x2(Sw1Line, bar_index)
line.set_x2(Sw2Line, bar_index)
line.set_x2(Sw3Line, bar_index)
line.set_x2(HwLine, bar_index)
line.set_x2(LwLine, bar_index)
[Link](bar_index, Rw1, "Rw1", style=label.style_none,textcolor =
weeklyR,size=[Link],textalign = text.align_right)
[Link](bar_index, Rw2, "Rw2", style=label.style_none,textcolor =
weeklyR,size=[Link],textalign = text.align_right)
[Link](bar_index, Rw3, "Rw3", style=label.style_none,textcolor =
weeklyR,size=[Link],textalign = text.align_right)
[Link](bar_index, Sw1, "Sw1", style=label.style_none,textcolor =
weeklyS,size=[Link],textalign = text.align_right)
[Link](bar_index, Sw2, "Sw2", style=label.style_none,textcolor =
weeklyS,size=[Link],textalign = text.align_right)
[Link](bar_index, Sw3, "Sw3", style=label.style_none,textcolor =
weeklyS,size=[Link],textalign = text.align_right)
[Link](bar_index, Hw, "PWH", style=label.style_none,textcolor =
weeklyR,size=[Link],textalign = text.align_right)
[Link](bar_index, Lw, "PWL", style=label.style_none,textcolor =
weeklyR,size=[Link],textalign = text.align_right)
//end of labels weekly