Untitled
unknown
plain_text
a year ago
4.2 kB
9
Indexable
//@version=5 indicator(title="Birleşik SAR ve CTI", overlay=true, max_labels_count=500) // Parabolik SAR start = input(0.02) increment = input(0.02) maximum = input(0.2, "Maks Değer") sar_out = ta.sar(start, increment, maximum) plot(sar_out, "Parabolik SAR", style=plot.style_cross, color=#2962FF) var int sar_counter = 0 var label sar_label = na var int last_sar_label_before_change = na var int sar_label_bar_distance = 0 var int sar_distance_before_change = 0 label_color = input(color.new(color.white, 100), title="SAR Etiket Rengi") label_offset = input(5, title="SAR Etiket Ofset") if (sar_out > close and sar_out[1] > close[1]) or (sar_out < close and sar_out[1] < close[1]) sar_counter := sar_counter + 1 sar_distance_before_change += 1 sar_label_bar_distance := 0 else if sar_counter != 1 last_sar_label_before_change := sar_counter[1] sar_distance_before_change := 1 sar_counter := 1 sar_label_bar_distance += 1 if sar_counter == 10 sar_counter := 1 if barstate.isconfirmed sar_label := label.new(bar_index, sar_out + label_offset * syminfo.mintick, str.tostring(sar_counter), color=label_color, style=label.style_none) // Coral Trend Indicator (CTI) src = input(close, title='CTI Kaynak') sm = input(21, title='CTI Yumuşatma Periyodu') cd = input(0.4, title='CTI Sabit D') bar_col = input(false, title='CTI Renk Barları') flat = input(color.new(color.blue, 0), title='CTI Çizgi') raise = input(color.new(color.green, 0), title='CTI Yükseliş Rengi') fall = input(color.new(color.red, 0), title='CTI Düşüş Rengi') di = (sm - 1.0) / 2.0 + 1.0 c1 = 2 / (di + 1.0) c2 = 1 - c1 c3 = 3.0 * (cd * cd + cd * cd * cd) c4 = -3.0 * (2.0 * cd * cd + cd + cd * cd * cd) c5 = 3.0 * cd + 1.0 + cd * cd * cd + 3.0 * cd * cd var float cti_i1 = na var float cti_i2 = na var float cti_i3 = na var float cti_i4 = na var float cti_i5 = na var float cti_i6 = na cti_i1 := c1 * src + c2 * nz(cti_i1[1]) cti_i2 := c1 * cti_i1 + c2 * nz(cti_i2[1]) cti_i3 := c1 * cti_i2 + c2 * nz(cti_i3[1]) cti_i4 := c1 * cti_i3 + c2 * nz(cti_i4[1]) cti_i5 := c1 * cti_i4 + c2 * nz(cti_i5[1]) cti_i6 := c1 * cti_i5 + c2 * nz(cti_i6[1]) cti_Cto = -cd * cd * cd * cti_i6 + c3 * cti_i5 + c4 * cti_i4 + c5 * cti_i3 var int cti_counter = 0 var int last_cti_label = 1 var int cti_label_bar_distance = 0 cti_bfrC = cti_Cto > nz(cti_Cto[1]) ? raise : cti_Cto < nz(cti_Cto[1]) ? fall : na if cti_bfrC != nz(cti_bfrC[1]) last_cti_label := cti_counter cti_label_bar_distance := 1 else cti_label_bar_distance += 1 cti_tc = bar_col ? flat : cti_bfrC distance_between_bars = input(3, title='CTI Barlar Arası Mesafe') plot(cti_Cto, title='CTI Trend', linewidth=3, style=plot.style_circles, color=cti_tc, editable=false) if barstate.isconfirmed if cti_bfrC == cti_bfrC[1] cti_counter := cti_counter + 1 if cti_counter > 9 cti_counter := 1 else cti_counter := 1 if (sar_counter == 3 or sar_counter == 6 or sar_counter == 9) and (cti_counter == 3 or cti_counter == 6 or cti_counter == 9) label.new(bar_index, high + (distance_between_bars + 1) * syminfo.mintick, "★", color=color.new(color.yellow, 100), style=label.style_none) label.new(bar_index, cti_Cto + distance_between_bars * syminfo.mintick, str.tostring(cti_counter), color=color.new(#a33333, 100), style=label.style_none) // Tablo var table table_values = table.new(position.top_right, 3, 2) if barstate.isconfirmed table.cell(table_values, 0, 0, "PSAR", bgcolor=color.new(color.blue, 50)) table.cell(table_values, 0, 1, str.tostring(last_sar_label_before_change), bgcolor=color.new(color.blue, 50)) table.cell(table_values, 1, 0, "CTI", bgcolor=color.new(color.green, 50)) table.cell(table_values, 1, 1, str.tostring(last_cti_label), bgcolor=color.new(color.green, 50)) table.cell(table_values, 2, 0, "Bar Mesafesi", bgcolor=color.new(color.yellow, 50)) table.cell(table_values, 2, 1, str.tostring(sar_distance_before_change) + " / " + str.tostring(cti_label_bar_distance), bgcolor=color.new(color.yellow, 50))
Editor is loading...
Leave a Comment