hi community.i have created a script.in this script i cn only draw trend lines but i wanted to creat indicator.
//@version=4
//this study simply draws a trend line base on pivot strength configuration,
// and also provide configuration by using the close price and show historical trend lines
study( title=MZR AutoTrendlines
, shorttitle=MZR AutoTrendlines
, overlay=true)
useclose=input(false)
h=useclose?close:high
l=useclose?close:low
strength=input(10,title=left Strength
, minval=5, maxval=200)
draw_trend(High, Low, leftlen,rightlen,n)=>
//upper trend line
var int startx=0
var float starty=0.0
var int startx2=0
var float starty2=0.0
var int endx=0
var float endy=0.0
var float endy0=0.0
var float slope=0.0
var bool ispivothigh =false
ispivothigh:=High[rightlen] == pivothigh(High,leftlen,rightlen)
starty2:=valuewhen(ispivothigh,High[rightlen],n+2)
startx2 := valuewhen(ispivothigh,bar_index,n+2)
starty:=valuewhen(ispivothigh,High[rightlen],n+1)
startx := valuewhen(ispivothigh,bar_index,n+1)
endy:=valuewhen(ispivothigh,High[rightlen],n)
endx := valuewhen(ispivothigh,bar_index,n)
slope:=(endy-starty)/(endx-startx)
valend = endy
var float Endy=0.0
Endy:=abs(endx-startx+rightlen)*slope + starty
if slope<0
if n==0
upper0 = line.new(endx, Endy, startx-rightlen, starty, width = 1, color=color.red, extend=extend.left)
line.delete(upper0[1])
upper1 = line.new(endx, Endy, startx-rightlen, starty, width = 1, color=color.red, extend=extend.none)
line.delete(upper1[1])
var float slope2= (endy-starty2)/(endx-startx2)
var float Endy2=0.0
Endy:=abs(endx-startx2+rightlen)*slope + starty2
if slope2<0
upper2 = line.new(endx, Endy2, startx2-rightlen, starty2, width = 1, color=color.red, extend=extend.none)
line.delete(upper2[1])
//lower trend line
var int lstartx=0
var float lstarty=0.0
var int lstartx2=0
var float lstarty2=0.0
var int lendx=0
var float lendy=0.0
var float lendy0=0.0
var float lslope=0.0
var bool ispivotlow =false
ispivotlow:=Low[rightlen] == pivotlow(Low,leftlen,rightlen)
lstarty2:=valuewhen(ispivotlow,Low[rightlen],n+2)
lstartx2 := valuewhen(ispivotlow,bar_index,n+2)
lstarty:=valuewhen(ispivotlow,Low[rightlen],n+1)
lstartx := valuewhen(ispivotlow,bar_index,n+1)
lendy:=valuewhen(ispivotlow,Low[rightlen],n)
lendx := valuewhen(ispivotlow,bar_index,n)
lslope:=(lendy-lstarty)/(lendx-lstartx)
var float lEndy=0.0
lEndy:=abs(lendx-lstartx+rightlen)*lslope + lstarty
if lslope>0
if n==0
Lower0 = line.new(lendx, lEndy, lstartx-rightlen, lstarty, width = 1, color=color.green, extend=extend.left)
line.delete(Lower0[1])
Lower1 = line.new(lendx, lEndy, lstartx-rightlen, lstarty, width = 1, color=color.green, extend=extend.none)
line.delete(Lower1[1])
var float lslope2= (lendy-lstarty2)/(lendx-lstartx2)
var float lEndy2=0.0
lEndy:=abs(lendx-lstartx2+rightlen)*lslope + lstarty2
if lslope2>0
lower2 = line.new(lendx, lEndy2, lstartx2-rightlen, lstarty2, width = 1, color=color.green, extend=extend.none)
line.delete(lower2[1])
left=strength
right=strength
//draw current trendling
draw_trend(h, l,left,right,0)
showhtrend=input(true, title=Show History Trend Line
)
if showhtrend
//show history trendling
draw_trend(h, l,left,right,1)
draw_trend(h, l,left,right,2)
draw_trend(h, l,left,right,3)
draw_trend(h, l,left,right,4)
draw_trend(h, l,left,right,5)
draw_trend(h, l,left,right,6)
draw_trend(h, l,left,right,7)
draw_trend(h, l,left,right,8)
draw_trend(h, l,left,right,9)
draw_trend(h, l,left,right,10)
draw_trend(h, l,left,right,11)
draw_trend(h, l,left,right,12)