Untitled

 avatar
unknown
plain_text
a month ago
2.7 kB
4
Indexable
//@version=5

indicator("trend ", overlay=true, precision=0, explicit_plot_zorder=true, max_labels_count=500)
////////////KIRILIM///////////


length = input.int(14)



k      = input.float(1.,'Eğim',minval=0,step=.1)



method = input.string('Normal','Eğim Modeli',



  options=['Normal','Az Eğimli','Çok Eğimli'])



show   = input(false,'Kırılımları Göster')



//----



upper = 0.,lower = 0.



slope_ph = 0.,slope_pl = 0.



src = close



n = bar_index



//----



ph = ta.pivothigh(length,length)



pl = ta.pivotlow(length,length)



slope = switch method



    'Normal'      => ta.atr(length)/length*k



    'Az Eğimli'    => ta.stdev(src,length)/length*k



    'Çok Eğimli'   => math.abs(ta.sma(src*bar_index,length)-ta.sma(src,length)*ta.sma(bar_index,length))/ta.variance(n,length)/2*k







slope_ph := ph ? slope : slope_ph[1]



slope_pl := pl ? slope : slope_pl[1]







upper := ph ? ph : upper[1] - slope_ph



lower := pl ? pl : lower[1] + slope_pl



//----



single_upper = 0



single_lower = 0



single_upper := src[length] > upper ? 0 : ph ? 1 : single_upper[1]



single_lower := src[length] < lower ? 0 : pl ? 1 : single_lower[1]



upper_breakout = single_upper[1] and src[length] > upper and (show ? src > src[length] : 1)



lower_breakout = single_lower[1] and src[length] < lower and (show ? src < src[length] : 1)







//----



var line up_l = na



var line dn_l = na



var label recent_up_break = na



var label recent_dn_break = na







if ph[1]



    line.delete(up_l[1])



    label.delete(recent_up_break[1])



    



    up_l := line.new(n-length-1,ph[1],n-length,upper,width = 3,color=#26ff00,



      extend=extend.right,style=line.style_solid)



if pl[1]



    line.delete(dn_l[1])



    label.delete(recent_dn_break[1])



    



    dn_l := line.new(n-length-1,pl[1],n-length,lower,width = 3,color=#ff0000,



      extend=extend.right,style=line.style_solid)







if ta.crossover(src,upper-slope_ph*length)



    label.delete(recent_up_break[1])



    recent_up_break := label.new(n,low,'KIRILIM',color=#26ff00,



      textcolor=#000000,style=label.style_label_up,size=size.small)







if ta.crossunder(src,lower+slope_pl*length)



    label.delete(recent_dn_break[1])



    recent_dn_break := label.new(n,high,'KIRILIM',color=#ff0000,



      textcolor=color.white,style=label.style_label_down,size=size.small)



    

Editor is loading...
Leave a Comment