PHP Code:
//@version=6
indicator("30'lu Modler SAR Radar", overlay=true)
// ─────────────────────────────────────────────────────────────────
// 0. TABLO KONUM AYARI (YAN YANA DZMEK N)
// ─────────────────────────────────────────────────────────────────
grp_pos = "Tablo Konumu ve Yerleimi"
pos_secim = input.string("Sa Alt", title="Tabloyu Nereye Koyalm?", options=["Sol Alt", "Orta Alt", "Sa Alt"], group=grp_pos, tooltip="Ayn indikatr 3 kere ekleyip her birini farkl konuma alarak 90 varlk izleyebilirsiniz.")
var pos_konum = pos_secim == "Sol Alt" ? position.bottom_left : pos_secim == "Orta Alt" ? position.bottom_center : position.bottom_right
// ─────────────────────────────────────────────────────────────────
// 1. GRDLER (30 Farkl Varlk - Ayarlardan Deitirilebilir)
// ─────────────────────────────────────────────────────────────────
grp1 = "Varlklar 1-10"
s01 = input.symbol("BIST:THYAO", "01", group=grp1, inline="1")
s02 = input.symbol("BIST:TUPRS", "02", group=grp1, inline="1")
s03 = input.symbol("BIST:ASELS", "03", group=grp1, inline="2")
s04 = input.symbol("BIST:KCHOL", "04", group=grp1, inline="2")
s05 = input.symbol("BIST:EREGL", "05", group=grp1, inline="3")
s06 = input.symbol("BIST:AKBNK", "06", group=grp1, inline="3")
s07 = input.symbol("BIST:YKBNK", "07", group=grp1, inline="4")
s08 = input.symbol("BIST:ISCTR", "08", group=grp1, inline="4")
s09 = input.symbol("BIST:GARAN", "09", group=grp1, inline="5")
s10 = input.symbol("BIST:SAHOL", "10", group=grp1, inline="5")
grp2 = "Varlklar 11-20"
s11 = input.symbol("BIST:SISE", "11", group=grp2, inline="6")
s12 = input.symbol("BIST:PETKM", "12", group=grp2, inline="6")
s13 = input.symbol("BIST:BIMAS", "13", group=grp2, inline="7")
s14 = input.symbol("BIST:PGSUS", "14", group=grp2, inline="7")
s15 = input.symbol("BIST:FROTO", "15", group=grp2, inline="8")
s16 = input.symbol("BIST:TOASO", "16", group=grp2, inline="8")
s17 = input.symbol("BIST:TCELL", "17", group=grp2, inline="9")
s18 = input.symbol("BIST:TTKOM", "18", group=grp2, inline="9")
s19 = input.symbol("BIST:ENKAI", "19", group=grp2, inline="10")
s20 = input.symbol("BIST:KOZAL", "20", group=grp2, inline="10")
grp3 = "Varlklar 21-30"
s21 = input.symbol("BIST:HEKTS", "21", group=grp3, inline="11")
s22 = input.symbol("BIST:SASA", "22", group=grp3, inline="11")
s23 = input.symbol("BIST:ASTOR", "23", group=grp3, inline="12")
s24 = input.symbol("BIST:ALARK", "24", group=grp3, inline="12")
s25 = input.symbol("BIST:TAVHL", "25", group=grp3, inline="13")
s26 = input.symbol("BIST:DOAS", "26", group=grp3, inline="13")
s27 = input.symbol("BIST:MGROS", "27", group=grp3, inline="14")
s28 = input.symbol("BIST:OTKAR", "28", group=grp3, inline="14")
s29 = input.symbol("BIST:VESBE", "29", group=grp3, inline="15")
s30 = input.symbol("BIST:ARCLK", "30", group=grp3, inline="15")
// ─────────────────────────────────────────────────────────────────
// 2. MTK-1-2-3 DARE FORMLU PSAR MOTORU
// ─────────────────────────────────────────────────────────────────
f_ozel_sar(src_h, src_l, _start, _inc, _max, _reset_hiz) =>
var int trend = 0
var float sar_val = 0.0
var float ep = 0.0
var float af = 0.0
if trend == 0 and not na(src_h[1])
trend := src_h >= src_h[1] or src_l >= src_l[1] ? 1 : -1
sar_val := trend > 0 ? src_l[1] : src_h[1]
ep := trend > 0 ? src_h[1] : src_l[1]
af := _start
else
if _reset_hiz
af := _start
float nextsar = sar_val
if trend > 0
if src_h[1] > ep
ep := src_h[1]
af := math.min(_max, af + _inc)
nextsar := sar_val + af * (ep - sar_val)
nextsar := math.min(math.min(src_l[1], src_l[2]), nextsar)
if nextsar > src_l
trend := -1
nextsar := ep
ep := src_l
af := _start
else
if src_l[1] < ep
ep := src_l[1]
af := math.min(_max, af + _inc)
nextsar := sar_val + af * (ep - sar_val)
nextsar := math.max(math.max(src_h[1], src_h[2]), nextsar)
if nextsar < src_h
trend := 1
nextsar := ep
ep := src_h
af := _start
sar_val := nextsar
[sar_val, trend]
// ─────────────────────────────────────────────────────────────────
// 3. KAPSLLENM OKLU SAR SORGUSU
// ─────────────────────────────────────────────────────────────────
f_sar_data() =>
yeni_gun = ta.change(time("D")) != 0
[sar_hizli, _] = f_ozel_sar(high, low, 0.06, 0.06, 0.30, yeni_gun)
[sar_orta, _] = f_ozel_sar(high, low, 0.02, 0.02, 0.20, yeni_gun)
[sar_yavas, _] = f_ozel_sar(high, low, 0.01, 0.01, 0.10, yeni_gun)
is_hizli_up = close > sar_hizli
is_orta_up = close > sar_orta
is_yavas_up = close > sar_yavas
[sar_hizli, sar_orta, sar_yavas, is_hizli_up, is_orta_up, is_yavas_up]
// ─────────────────────────────────────────────────────────────────
// 4. 30 VARLIKTAN KUSURSUZ VER EKM
// ─────────────────────────────────────────────────────────────────
[vh01, vo01, vy01, bh01, bo01, by01] = request.security(s01, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh02, vo02, vy02, bh02, bo02, by02] = request.security(s02, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh03, vo03, vy03, bh03, bo03, by03] = request.security(s03, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh04, vo04, vy04, bh04, bo04, by04] = request.security(s04, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh05, vo05, vy05, bh05, bo05, by05] = request.security(s05, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh06, vo06, vy06, bh06, bo06, by06] = request.security(s06, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh07, vo07, vy07, bh07, bo07, by07] = request.security(s07, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh08, vo08, vy08, bh08, bo08, by08] = request.security(s08, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh09, vo09, vy09, bh09, bo09, by09] = request.security(s09, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh10, vo10, vy10, bh10, bo10, by10] = request.security(s10, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh11, vo11, vy11, bh11, bo11, by11] = request.security(s11, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh12, vo12, vy12, bh12, bo12, by12] = request.security(s12, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh13, vo13, vy13, bh13, bo13, by13] = request.security(s13, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh14, vo14, vy14, bh14, bo14, by14] = request.security(s14, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh15, vo15, vy15, bh15, bo15, by15] = request.security(s15, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh16, vo16, vy16, bh16, bo16, by16] = request.security(s16, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh17, vo17, vy17, bh17, bo17, by17] = request.security(s17, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh18, vo18, vy18, bh18, bo18, by18] = request.security(s18, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh19, vo19, vy19, bh19, bo19, by19] = request.security(s19, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh20, vo20, vy20, bh20, bo20, by20] = request.security(s20, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh21, vo21, vy21, bh21, bo21, by21] = request.security(s21, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh22, vo22, vy22, bh22, bo22, by22] = request.security(s22, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh23, vo23, vy23, bh23, bo23, by23] = request.security(s23, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh24, vo24, vy24, bh24, bo24, by24] = request.security(s24, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh25, vo25, vy25, bh25, bo25, by25] = request.security(s25, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh26, vo26, vy26, bh26, bo26, by26] = request.security(s26, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh27, vo27, vy27, bh27, bo27, by27] = request.security(s27, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh28, vo28, vy28, bh28, bo28, by28] = request.security(s28, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh29, vo29, vy29, bh29, bo29, by29] = request.security(s29, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
[vh30, vo30, vy30, bh30, bo30, by30] = request.security(s30, timeframe.period, f_sar_data(), lookahead=barmerge.lookahead_off)
// ─────────────────────────────────────────────────────────────────
// 5. DEVASA TABLO OLUTURMA VE DOLDURMA MOTORU
// ─────────────────────────────────────────────────────────────────
var string tab_size = size.small
// pos_konum deikeni sayesinde tabloyu ayarlardan nereye setiysen oraya izer
var table radar = table.new(pos_konum, 5, 31, border_width=1, border_color=color.gray)
f_hucre_boya(is_up) =>
is_up ? color.new(color.lime, 40) : color.new(color.red, 40)
f_karar_ver(h_up, o_up, y_up) =>
if h_up and o_up and y_up
["TAM HCUM", color.new(color.lime, 10)]
else if not h_up and not o_up and not y_up
["GER EKL", color.new(color.red, 10)]
else
["BEKLE", color.new(color.gray, 10)]
f_satir_ekle(r_idx, sym, vh, vo, vy, b_h, b_o, b_y) =>
[karar, col] = f_karar_ver(b_h, b_o, b_y)
sym_isim = str.split(sym, ":").last()
val_h_str = str.tostring(vh, format.mintick) + (b_h ? " ▲" : " ▼")
val_o_str = str.tostring(vo, format.mintick) + (b_o ? " ▲" : " ▼")
val_y_str = str.tostring(vy, format.mintick) + (b_y ? " ▲" : " ▼")
table.cell(radar, 0, r_idx, sym_isim, text_color=color.white, bgcolor=color.black, text_size=tab_size)
table.cell(radar, 1, r_idx, val_h_str, text_color=color.white, bgcolor=f_hucre_boya(b_h), text_size=tab_size)
table.cell(radar, 2, r_idx, val_o_str, text_color=color.white, bgcolor=f_hucre_boya(b_o), text_size=tab_size)
table.cell(radar, 3, r_idx, val_y_str, text_color=color.white, bgcolor=f_hucre_boya(b_y), text_size=tab_size)
table.cell(radar, 4, r_idx, karar, text_color=color.white, bgcolor=col, text_size=tab_size)
if barstate.islast
// Balklar
table.cell(radar, 0, 0, "VARLIK", text_color=color.white, bgcolor=color.black, text_size=tab_size)
table.cell(radar, 1, 0, "HIZLI SAR", text_color=color.white, bgcolor=color.black, text_size=tab_size)
table.cell(radar, 2, 0, "ORTA SAR", text_color=color.white, bgcolor=color.black, text_size=tab_size)
table.cell(radar, 3, 0, "YAVA SAR", text_color=color.white, bgcolor=color.black, text_size=tab_size)
table.cell(radar, 4, 0, "KARAR", text_color=color.white, bgcolor=color.black, text_size=tab_size)
// 30 Satrn izdirilmesi
f_satir_ekle(1, s01, vh01, vo01, vy01, bh01, bo01, by01)
f_satir_ekle(2, s02, vh02, vo02, vy02, bh02, bo02, by02)
f_satir_ekle(3, s03, vh03, vo03, vy03, bh03, bo03, by03)
f_satir_ekle(4, s04, vh04, vo04, vy04, bh04, bo04, by04)
f_satir_ekle(5, s05, vh05, vo05, vy05, bh05, bo05, by05)
f_satir_ekle(6, s06, vh06, vo06, vy06, bh06, bo06, by06)
f_satir_ekle(7, s07, vh07, vo07, vy07, bh07, bo07, by07)
f_satir_ekle(8, s08, vh08, vo08, vy08, bh08, bo08, by08)
f_satir_ekle(9, s09, vh09, vo09, vy09, bh09, bo09, by09)
f_satir_ekle(10, s10, vh10, vo10, vy10, bh10, bo10, by10)
f_satir_ekle(11, s11, vh11, vo11, vy11, bh11, bo11, by11)
f_satir_ekle(12, s12, vh12, vo12, vy12, bh12, bo12, by12)
f_satir_ekle(13, s13, vh13, vo13, vy13, bh13, bo13, by13)
f_satir_ekle(14, s14, vh14, vo14, vy14, bh14, bo14, by14)
f_satir_ekle(15, s15, vh15, vo15, vy15, bh15, bo15, by15)
f_satir_ekle(16, s16, vh16, vo16, vy16, bh16, bo16, by16)
f_satir_ekle(17, s17, vh17, vo17, vy17, bh17, bo17, by17)
f_satir_ekle(18, s18, vh18, vo18, vy18, bh18, bo18, by18)
f_satir_ekle(19, s19, vh19, vo19, vy19, bh19, bo19, by19)
f_satir_ekle(20, s20, vh20, vo20, vy20, bh20, bo20, by20)
f_satir_ekle(21, s21, vh21, vo21, vy21, bh21, bo21, by21)
f_satir_ekle(22, s22, vh22, vo22, vy22, bh22, bo22, by22)
f_satir_ekle(23, s23, vh23, vo23, vy23, bh23, bo23, by23)
f_satir_ekle(24, s24, vh24, vo24, vy24, bh24, bo24, by24)
f_satir_ekle(25, s25, vh25, vo25, vy25, bh25, bo25, by25)
f_satir_ekle(26, s26, vh26, vo26, vy26, bh26, bo26, by26)
f_satir_ekle(27, s27, vh27, vo27, vy27, bh27, bo27, by27)
f_satir_ekle(28, s28, vh28, vo28, vy28, bh28, bo28, by28)
f_satir_ekle(29, s29, vh29, vo29, vy29, bh29, bo29, by29)
f_satir_ekle(30, s30, vh30, vo30, vy30, bh30, bo30, by30)
Yer mleri