Untitled
unknown
plain_text
5 months ago
4.6 kB
13
Indexable
//@version=5 indicator("Zig Zag Trend Kanalı", overlay = true, max_lines_count = 500, max_labels_count = 500, max_boxes_count = 500, max_bars_back = 1000) //------------------------------------------------------------------------------ length1 = input(100) extend = input(true,'Kanalı Uzat') show_ext = input(true,'Kanalı Göster') show_labels = input(true,'Yazıları Göster') //Style upcol = input(#ff1100,'Üst Kanal Rengi',group='Style') midcol = input(#ff5d00,'Zig Zag Rengi',group='Style') dncol = input(#2157f3,'Alt Kanal Rengi',group='Style') //------------------------------------------------------------------------------ os1 = 0 src1 = close var float valtop = na var float valbtm = na //------------------------------------------------------------------------------ upper = ta.highest(src1,length1) lower = ta.lowest(src1,length1) os1 := src1[length1] > upper ? 0 : src1[length1] < lower ? 1 : os1[1] btm = os1 == 1 and os1[1] != 1 top = os1 == 0 and os1[1] != 0 //------------------------------------------------------------------------------ n = bar_index btm_n = ta.valuewhen(btm,n,0) top_n = ta.valuewhen(top,n,0) len = math.abs(btm_n - top_n) if btm max_diff_up = 0. max_diff_dn = 0. valbtm := low[length1] for i = 0 to len-1 point = low[length1] + i/(len-1)*(valtop - low[length1]) max_diff_up := math.max(math.max(src1[length1+i],open[length1+i]) - point,max_diff_up) max_diff_dn := math.max(point - math.min(src1[length1+i],open[length1+i]),max_diff_dn) line.new(n[len+length1],valtop,n[length1],low[length1],color=midcol) if show_ext line.new(n[len+length1],valtop+max_diff_up,n[length1],low[length1]+max_diff_up ,color=upcol,style=line.style_dotted) line.new(n[len+length1],valtop-max_diff_dn,n[length1],low[length1]-max_diff_dn ,color=dncol,style=line.style_dotted) if show_labels label.new(n[length1],low[length1],str.tostring(low[length1],'#.####'),color=#00000000 ,style=label.style_label_up,textcolor=dncol,textalign=text.align_left,size=size.small) if top max_diff_up = 0. max_diff_dn = 0. valtop := high[length1] for i = 0 to len-1 point = high[length1] + i/(len-1)*(valbtm - high[length1]) max_diff_up := math.max(math.max(src1[length1+i],open[length1+i]) - point,max_diff_up) max_diff_dn := math.max(point - math.min(src1[length1+i],open[length1+i]),max_diff_dn) line.new(n[len+length1],valbtm,n[length1],high[length1],color=midcol) if show_ext line.new(n[len+length1],valbtm+max_diff_up,n[length1],high[length1]+max_diff_up ,color=upcol,style=line.style_dotted) line.new(n[len+length1],valbtm-max_diff_dn,n[length1],high[length1]-max_diff_dn ,color=dncol,style=line.style_dotted) if show_labels label.new(n[length1],high[length1],str.tostring(high[length1],'#.####'),color=#00000000 ,style=label.style_label_down,textcolor=upcol,textalign=text.align_left,size=size.small) if barstate.islast and extend max_diff_up = 0. max_diff_dn = 0. x1 = 0 y1 = 0. if os1 == 1 x1 := btm_n-length1 y1 := valbtm for i = 0 to n-btm_n+length1-1 point = src1 + i/(n-btm_n+length1-1)*(valbtm - src1) max_diff_up := math.max(math.max(src1[i],open[i]) - point,max_diff_up) max_diff_dn := math.max(point - math.min(src1[i],open[i]),max_diff_dn) else x1 := top_n-length1 y1 := valtop for i = 0 to n-top_n+length1-1 point = src1 + i/(n-top_n+length1-1)*(valtop - src1) max_diff_up := math.max(math.max(src1[i],open[i]) - point,max_diff_up) max_diff_dn := math.max(point - math.min(src1[i],open[i]),max_diff_dn) line.delete(line.new(x1,y1,n,src1,color=midcol,extend=extend.right)[1]) if show_ext line.delete(line.new(x1,y1+max_diff_up,n,src1+max_diff_up ,color=upcol,style=line.style_dotted,extend=extend.right)[1]) line.delete(line.new(x1,y1-max_diff_dn,n,src1-max_diff_dn ,color=dncol,style=line.style_dotted,extend=extend.right)[1]) //------------------------------------------------------------------------------ plot(btm ? low[length1] : top ? high[length1] : na,'Circles' ,color = btm ? dncol : upcol ,style=plot.style_circles ,offset=-length1) //-----------------------------------------------------------------------------}
Editor is loading...
Leave a Comment