0% found this document useful (0 votes)
272 views6 pages

CPR Indicator Script for Trading

The document contains source code for an indicator that plots daily and weekly pivot points, support and resistance levels on a chart. It defines inputs for color settings and toggling EMAs. Daily and weekly pivot points, resistance and support levels are calculated from high, low, close data. The levels and EMAs are plotted on the chart along with lines extending the levels for the next period. Color fill and labels are also added.

Uploaded by

nishantm.3016
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)
272 views6 pages

CPR Indicator Script for Trading

The document contains source code for an indicator that plots daily and weekly pivot points, support and resistance levels on a chart. It defines inputs for color settings and toggling EMAs. Daily and weekly pivot points, resistance and support levels are calculated from high, low, close data. The levels and EMAs are plotted on the chart along with lines extending the levels for the next period. Color fill and labels are also added.

Uploaded by

nishantm.3016
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

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

You might also like