Artan
Azalan
έώlem
BIST 30
BIST 50
BIST 100
NASDAQ 100
Hisse Fiyat Fark% Hacim (TL) Dόώόk / Yόksek
15,73 10% 16,70 Mn 14,21 / 15,73
19,14 10% 378,76 Mn 17,35 / 19,14
232,40 9.99% 456,47 Mn 226,40 / 232,40
79,25 9.99% 169,22 Mn 74,90 / 79,25
182,00 9.97% 488,95 Mn 165,60 / 182,00
Hisse Fiyat Fark% Hacim (TL) Dόώόk / Yόksek
3,87 -10% 2,97 Mn 3,87 / 4,35
23,76 -10% 494,00 Mn 23,76 / 27,68
114,40 -9.99% 127,33 Mn 114,40 / 127,10
3,22 -9.8% 283,76 Mn 3,22 / 3,57
2,94 -8.98% 2,53 Mr 2,91 / 3,37
Hisse Fiyat Fark% Hacim (TL) Dόώόk / Yόksek
192,00 -1.54% 24,03 Mr 190,00 / 201,80
3,06 2.34% 20,72 Mr 3,00 / 3,19
317,25 -0.63% 13,59 Mr 315,50 / 324,50
268,00 2.58% 7,53 Mr 261,50 / 268,00
78,10 -1.01% 6,65 Mr 77,50 / 80,50
Hisse Fiyat Fark% Hacim (TL) Dόώόk / Yόksek
18,58 -1.28% 756,46 Mn 18,49 / 19,09
78,10 -1.01% 6,65 Mr 77,50 / 80,50
411,00 -1.38% 6,39 Mr 406,00 / 422,50
192,00 -1.54% 24,03 Mr 190,00 / 201,80
746,00 -0.93% 2,59 Mr 744,00 / 765,00
Hisse Fiyat Fark% Hacim (TL) Dόώόk / Yόksek
18,58 -1.28% 756,46 Mn 18,49 / 19,09
78,10 -1.01% 6,65 Mr 77,50 / 80,50
93,20 -0.9% 525,81 Mn 92,65 / 95,75
116,00 -2.19% 231,93 Mn 115,50 / 120,40
411,00 -1.38% 6,39 Mr 406,00 / 422,50
Hisse Fiyat Fark% Hacim (TL) Dόώόk / Yόksek
18,58 -1.28% 756,46 Mn 18,49 / 19,09
30,82 -0.9% 95,64 Mn 30,68 / 31,60
78,10 -1.01% 6,65 Mr 77,50 / 80,50
10,70 0.66% 395,01 Mn 10,66 / 10,95
81,40 -0.91% 272,06 Mn 81,20 / 83,00

Masrafsύz Bankacύlύk + 1.000 TL Nakit! Enpara’dan Ηifte Avantaj

Masrafsύz Bankacύlύk + 1.000 TL Nakit! Enpara’dan Ηifte Avantaj
Sayfa 389/393 έlkέlk ... 289339379387388389390391 ... SonSon
Arama sonucu : 3138 madde; 3,105 - 3,112 arasύ.

Konu: Tradingview

  1. hurst dφnό-aynalύ-sarlύ-dalga mesafeli-boxlύ
    PHP Code:
    //@version=6
    indicator("]"overlay=truemax_boxes_count=500max_labels_count=500max_lines_count=500)

    // ─────────────────────────────────────────────────────────────────
    //  1. GέRDέLER 
    // ─────────────────────────────────────────────────────────────────
    c_start input.float(0.0"Ηύrak (Hύzlύ) Baώlangύη"step=0.1)
    c_inc   input.float(0.1"Ηύrak (Hύzlύ) έvme"step=0.1)
    c_max   input.float(0.3"Ηύrak (Hύzlύ) Max"step=0.1)

    u_start input.float(0.0"Usta (Ana Yφn) Baώlangύη"step=0.1)
    u_inc   input.float(0.1"Usta (Ana Yφn) έvme"step=0.1)
    u_max   input.float(0.1"Usta (Ana Yφn) Max"step=0.1)

    // YENέ: Gerilim Sύnύrύ (Kervan ile Atlύnύn aηύlma toleransύ)
    g_carpan input.float(4.5"Aώύrύ Gerilim Sύnύrύ (ATR Ηarpanύ)"step=0.1tooltip="Usta ile Ηύrak arasύndaki mesafe bu deπeri aώarsa Sarύ Ηarpύ (Mola/Geri Ηekilme) uyarύsύ verir.")

    // ─────────────────────────────────────────────────────────────────
    //  2. ZAMANDAN ARINDIRILMIή SAF SAR MOTORU
    // ─────────────────────────────────────────────────────────────────
    f_ozel_sar(src_hsrc_l_start_inc_max) =>
        var 
    int trend 0
        
    var float sar_val 0.0
        
    var float ep 0.0
        
    var float af 0.0

        
    if trend == and not na(src_h[1])
            
    trend   := src_h >= src_h[1] or src_l >= src_l[1] ? : -1
            sar_val 
    := trend src_l[1] : src_h[1]
            
    ep      := trend src_h[1] : src_l[1]
            
    af      := _start
        
    else 
            
    float nextsar sar_val
            
    if trend 0
                
    if src_h[1] > ep
                    ep 
    := src_h[1]
                    
    af := math.min(_maxaf _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(_maxaf _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_valtrend]

    // ─────────────────────────────────────────────────────────────────
    //  3. ΗIPLAK έKέLέ AYNA HESAPLAMASI
    // ─────────────────────────────────────────────────────────────────
    [sar_ciraktrend_cirak] = f_ozel_sar(highlowc_startc_incc_max)
    ayna_cirak trend_cirak close math.abs(close sar_cirak) : close math.abs(close sar_cirak)

    [
    sar_ustatrend_usta] = f_ozel_sar(highlowu_startu_incu_max)
    ayna_usta trend_usta close math.abs(close sar_usta) : close math.abs(close sar_usta)

    // ─────────────────────────────────────────────────────────────────
    //  4. KARAR MOTORU (Yφn ve Renk)
    // ─────────────────────────────────────────────────────────────────
    bool ayni_deger ayna_cirak == ayna_usta
    bool ayni_renk  
    trend_cirak == trend_usta

    int nihai_yon 
    1
    if ayni_deger and ayni_renk
        nihai_yon 
    := trend_cirak
    else
        
    nihai_yon := trend_usta

    color col_nihai 
    nihai_yon color.lime color.red

    // ─────────────────────────────────────────────────────────────────
    //  5. SέNYAL MOTORU (Kopuώ ve Gerilim)
    // ─────────────────────────────────────────────────────────────────
    // 1. KOPUή: Bir φnceki mumda beraberken, bu mumda ayrύldύklarύ an
    bool kopus_ani = (ayna_cirak != ayna_usta) and (ayna_cirak[1] == ayna_usta[1])

    // 2. AήIRI GERέLέM: έki ηizgi arasύndaki mesafe, dinamik ATR sύnύrύnύ aώtύπύnda
    float ayna_mesafe math.abs(ayna_cirak ayna_usta)
    float gerilim_haddi ta.atr(14) * g_carpan

    // Sinyal karmaώasύnύ φnlemek iηin sadece sύnύrύ geηtiπi "ilk" anύ alύrύz
    bool gerilim_ani = (ayna_mesafe gerilim_haddi) and (ayna_mesafe[1] <= gerilim_haddi[1])

    // ─────────────────────────────────────────────────────────────────
    //  6. ΗέZέMLER
    // ─────────────────────────────────────────────────────────────────
    p_cirak plot(ayna_ciraktitle="1"color=col_nihaistyle=plot.style_linelinewidth=1)
    p_usta  plot(ayna_usta,  title="0"color=col_nihaistyle=plot.style_linelinewidth=1)
    fill(p_cirakp_ustacolor=color.new(col_nihai85), title="Gόη Koridoru")

    // Sinyal Ηizimleri
    plotshape(kopus_ani ayna_cirak natitle="Kopuώ Sinyali"style=shape.circlelocation=location.absolutecolor=color.whitesize=size.small)
    plotshape(gerilim_ani ayna_cirak natitle="Aώύrύ Gerilim"style=shape.crosslocation=location.absolutecolor=color.yellowsize=size.small)
    //////////////////
    // ─────────────────────────────────────────────────────────────────
    //  LONESOME SAR MOTORU (Kesintisiz Akύώ)
    // ─────────────────────────────────────────────────────────────────
    f_ozel_sar22(src_hsrc_l_start_inc_max) =>
        var 
    int trend 0
        
    var float sar_val 0.0
        
    var float ep 0.0
        
    var float af 0.0

        
    if trend == and not na(src_h[1])
            
    trend   := src_h >= src_h[1] or src_l >= src_l[1] ? : -1
            sar_val 
    := trend src_l[1] : src_h[1]
            
    ep      := trend src_h[1] : src_l[1]
            
    af      := _start
        
    else 
            
    float nextsar sar_val
            
    if trend 0
                
    if src_h[1] > ep
                    ep 
    := src_h[1]
                    
    af := math.min(_maxaf _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(_maxaf _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_valtrend]

    // ─────────────────────────────────────────────────────────────────

    // ─────────────────────────────────────────────────────────────────
    //  2. ORTA KANAL (Denge / Dόnya) | έvme: 0.001 | Dolgusuz | Sarύ-Mavi
    // ─────────────────────────────────────────────────────────────────
    [sar2trend2] = f_ozel_sar22(highlow0.00.010.3)
    delta2 math.abs(close sar2)
    ayna_h2 trend2 close delta2 close delta2
    ayna_z2 
    trend2 close delta2 close delta2

    var float s2_ust na, var float s2_alt na
    if ta.change(trend2) != 0
        s2_ust 
    := math.max(ayna_h2ayna_z2)
        
    s2_alt := math.min(ayna_h2ayna_z2)

    col2 trend2 color.new(#00e677, 100) : color.new(#ff5252, 100)
    plot(s2_usttitle="Dir"color=col2style=plot.style_linelinewidth=1)
    plot(s2_alttitle="Des"color=col2style=plot.style_linelinewidth=1)

    // ─────────────────────────────────────────────────────────────────

    //  HESAPLAMALAR VE ΗEKέM
    // ─────────────────────────────────────────────────────────────────
    // Orijinal kodda belirtilen (0.01 - 0.02 - 0.03) ivme deπerlerine gφre ηekimler
    [roSarSlow_]     = f_ozel_sar22(highlow0.0.10.3)
    [
    roSarModerate_] = f_ozel_sar22(highlow0.0.20.3)
    [
    roSarFast_]     = f_ozel_sar22(highlow0.0.30.3)

    // ─────────────────────────────────────────────────────────────────
    //  ΗέZέMLER
    // ─────────────────────────────────────────────────────────────────
    plot(roSarSlow,     title="C"color=color.new(color.yellow0),  style=plot.style_crosslinewidth=1)
    plot(roSarModeratetitle="B",  color=color.new(color.yellow0), style=plot.style_crosslinewidth=1)
    plot(roSarFast,     title="A"color=color.new(color.yellow0),   style=plot.style_crosslinewidth=1)

    //////////////////
    // ─────────────────────────────────────────────────────────────────
    //  DALGA MESAFESέ (Daireleri Birbirinden Ayύran Boώluk)
    // ─────────────────────────────────────────────────────────────────
    // Fiyatύn hareketliliπine gφre aralarύndaki mesafeyi ayarlar
    dalga_araligi ta.atr(14) * 0.25 

    // ─────────────────────────────────────────────────────────────────
    //  OTONOM BEYέN (Φzelleώtirilmiώ MTK SAR Motoru)
    // ─────────────────────────────────────────────────────────────────
    type SARState
        float sar_value
        float extreme_point
        float accel_factor
        bool  isLong

    method f_initState
    (float accel_start) => SARState.new(nanaaccel_startfalse)

    method f_updateState(SARState statefloat high_valfloat low_valfloat close_valfloat accel_startfloat accel_incfloat accel_maxfloat atr_offset) =>
        
    bool isInitialTrend false
        
        
    // έLK BAήLANGIΗ
        
    if na(state.sar_value)
            if 
    close_val close_val[1]
                
    state.isLong        := true
                state
    .extreme_point := high_val
                
    // Baώlangύη ηizgisine offset (mesafe) eklendi
                
    state.sar_value     := low_val[1] - atr_offset 
            
    else
                
    state.isLong        := false
                state
    .extreme_point := low_val
                
    // Baώlangύη ηizgisine offset (mesafe) eklendi
                
    state.sar_value     := high_val[1] + atr_offset
            isInitialTrend          
    := true
            state
    .accel_factor      := accel_start
            
        state
    .sar_value += state.accel_factor * (state.extreme_point state.sar_value)
        
        
    // YΦN DEΠέήέMέ (KIRILIM ANI) - Daire Formunun Yaratύldύπύ Yer!
        
    if state.isLong
            
    if state.sar_value low_val
                isInitialTrend      
    := true
                state
    .isLong        := false
                
    // Dόώόώe geηerken her SAR farklύ bir mesafeden baώlar
                
    state.sar_value     := math.max(high_valstate.extreme_point) + atr_offset
                state
    .extreme_point := low_val
                state
    .accel_factor  := accel_start
        
    else
            if 
    state.sar_value high_val
                isInitialTrend      
    := true
                state
    .isLong        := true
                
    // Yόkseliώe geηerken her SAR farklύ bir mesafeden baώlar
                
    state.sar_value     := math.min(low_valstate.extreme_point) - atr_offset
                state
    .extreme_point := high_val
                state
    .accel_factor  := accel_start
                
        
    if not isInitialTrend
            
    if state.isLong
                
    if high_val state.extreme_point
                    state
    .extreme_point := high_val
                    state
    .accel_factor  := math.min(state.accel_factor accel_incaccel_max)
            else
                if 
    low_val state.extreme_point
                    state
    .extreme_point := low_val
                    state
    .accel_factor  := math.min(state.accel_factor accel_incaccel_max)
                    
        if 
    bar_index 1
            
    if state.isLong
                state
    .sar_value := math.min(state.sar_valuelow_val[1])
                if 
    bar_index 2
                    state
    .sar_value := math.min(state.sar_valuelow_val[2])
            else
                
    state.sar_value := math.max(state.sar_valuehigh_val[1])
                if 
    bar_index 2
                    state
    .sar_value := math.max(state.sar_valuehigh_val[2])
        
    state

    // ─────────────────────────────────────────────────────────────────
    //  ήAHέNLERέN YARATILMASI (6 Tabaka)
    // ─────────────────────────────────────────────────────────────────
    var SARState sar1_beyaz f_initState(0.04)
    var 
    SARState sar2_kirm  f_initState(0.01)
    var 
    SARState sar3_yesil f_initState(0.01)
    var 
    SARState sar4_mavi  f_initState(0.01)
    var 
    SARState sar5_sari  f_initState(0.01// Sarύ ayarύnύ ώimdilik 0.01 yaptύm
    var SARState sar6_kutup f_initState(0.001)

    // Her ώahine farklύ bir "Uzaklύk" (Offset) veriyoruz ki iη iηe daireler oluώsun
    sar1_beyaz := sar1_beyaz.f_updateState(highlowclose0.0.040.2dalga_araligi 0// En iη dalga
    sar2_kirm  := sar2_kirm.f_updateState(highlowclose0.0.0030.2dalga_araligi 1)
    sar3_yesil := sar3_yesil.f_updateState(highlowclose0.0.0020.2dalga_araligi 2)
    sar4_mavi  := sar4_mavi.f_updateState(highlowclose0.0.010.2dalga_araligi 3)
    sar5_sari  := sar5_sari.f_updateState(highlowclose0.0.0010.2dalga_araligi 4)
    sar6_kutup := sar6_kutup.f_updateState(highlowclose0.,0.001,0.2dalga_araligi 5// En dύώ dalga

    // ΗέZέMLER
    plot(sar1_beyaz.sar_value"yφrόk"color=color.fuchsia,  style=plot.style_circleslinewidth=1)
    //plot(sar2_kirm.sar_value,  "3", color=color.fuchsia,    style=plot.style_line, linewidth=1)
    //plot(sar3_yesil.sar_value, "SAR4", color=color.green,  style=plot.style_cross, linewidth=1)
    //plot(sar4_mavi.sar_value,  "2", color=color.fuchsia,   style=plot.style_line, linewidth=1)
    //plot(sar5_sari.sar_value,  "SAR5", color=color.yellow, style=plot.style_cross, linewidth=1)
    plot(sar6_kutup.sar_value"Trend"color=color.silver,style=plot.style_circleslinewidth=1)
    ///////////
    // ─────────────────────────────────────────────────────────────────
    //  1. GέRDέLER VE RέSK YΦNETέMέ
    // ─────────────────────────────────────────────────────────────────
    targetMult input.float(1.0title="Hedef Ηarpanύ (Risk/Φdόl Oranύ)")
    boxLength  input.int(2title="Kutu Uzunluπu (Gφrsel)")

    u_start99 input.float(0.0"Usta Ayna Baώlangύη"step=0.1)
    u_inc99   input.float(0.1"Usta Ayna έvme"step=0.1)
    u_max99   input.float(0.1"Usta Ayna Max"step=0.1)

    grpCool "Soπuma (Cooldown) Filtresi"
    useCooldown  input.bool(truetitle="έώlemler Arasύ Bekleme Sόresi"group=grpCool)
    cooldownBars input.int(2title="Bekleme Mum Sayύsύ"group=grpCool)

    // ─────────────────────────────────────────────────────────────────
    //  2. ZAMANDAN ARINDIRILMIή MTK-1-2-3 SAR MOTORU (USTA)
    // ─────────────────────────────────────────────────────────────────
    f_ozel_sar99(src_hsrc_l_start_inc_max) =>
        var 
    int trend 0
        
    var float sar_val 0.0
        
    var float ep 0.0
        
    var float af 0.0

        
    if trend == and not na(src_h[1])
            
    trend   := src_h >= src_h[1] or src_l >= src_l[1] ? : -1
            sar_val 
    := trend src_l[1] : src_h[1]
            
    ep      := trend src_h[1] : src_l[1]
            
    af      := _start
        
    else 
            
    float nextsar sar_val
            
    if trend 0
                
    if src_h[1] > ep
                    ep 
    := src_h[1]
                    
    af := math.min(_maxaf _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(_maxaf _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_valtrend]

    // ─────────────────────────────────────────────────────────────────
    //  3. USTA AYNA VE ZέRVE/DέP (BARAJ DUVARI) HAFIZASI
    // ─────────────────────────────────────────────────────────────────
    [sar_usta99trend_usta99] = f_ozel_sar99(highlowu_start99u_inc99u_max99)

    var 
    float son_zirve na
    var float son_dip   na
    var float aktif_tepe high
    var float aktif_dip  low
    var int lastTradeBar na

    donus_asagi  
    trend_usta99 and nz(trend_usta99[1]) > 0
    donus_yukari 
    trend_usta99 and nz(trend_usta99[1]) < 0

    if trend_usta99 0
        aktif_tepe 
    := math.max(aktif_tepehigh)
    if 
    donus_asagi
        son_zirve 
    := aktif_tepe
        aktif_dip 
    := low // Yφn aώaπύ dφndόπόnde yeni dip arayύώύ baώlar

    if trend_usta99 0
        aktif_dip 
    := math.min(aktif_diplow)
    if 
    donus_yukari
        son_dip 
    := aktif_dip
        aktif_tepe 
    := high // Yφn yukarύ dφndόπόnde yeni tepe arayύώύ baώlar

    // Gφrsel Teyit: Baraj duvarlarύnύ (Destek/Direnη) grafikte basamak olarak gφsteririz
    //plot(son_zirve, title="Usta Zirve (Direnη)", color=color.new(color.red, 70), style=plot.style_stepline, linewidth=1)
    //plot(son_dip, title="Usta Dip (Destek)", color=color.new(color.lime, 70), style=plot.style_stepline, linewidth=1)

    // ─────────────────────────────────────────────────────────────────
    //  4. BARAJIN YIKILMASI VE RέSK KUTULARININ ΗέZέMέ
    // ─────────────────────────────────────────────────────────────────
    canEnter useCooldown ? (na(lastTradeBar) or (bar_index lastTradeBar >= cooldownBars)) : true

    bool isBullishCandle 
    close open
    bool isBearishCandle 
    close open

    // ALIM: Fiyatύn Usta'nύn tescillediπi son zirveyi yukarύ kύrmasύ
    bool bullishBreakout isBullishCandle and ta.crossover(closeson_zirve) and canEnter
    // SATIM: Fiyatύn Usta'nύn tescillediπi son dibi aώaπύ kύrmasύ
    bool bearishBreakout isBearishCandle and ta.crossunder(closeson_dip) and canEnter

    if bullishBreakout
        float entryPrice 
    close
        float stopPrice  
    son_dip // Stop noktamύz Ustanύn belirlediπi en son saπlam diptir
        
    float risk       entryPrice stopPrice
        
        
    if risk 0
            float targetPrice 
    entryPrice + (risk targetMult)
            
    lastTradeBar := bar_index
            
            box
    .new(left=bar_indextop=entryPriceright=bar_index boxLengthbottom=stopPriceborder_color=color.new(color.red50), bgcolor=color.new(color.aqua50))
            
    box.new(left=bar_indextop=targetPriceright=bar_index boxLengthbottom=entryPriceborder_color=color.new(color.teal50), bgcolor=color.new(color.yellow50))

            
    //label.new(x=bar_index + boxLength, y=entryPrice, text="GέRέή", style=label.style_label_left, color=color.new(color.blue, 20), textcolor=color.white, size=size.small)
            //label.new(x=bar_index + boxLength, y=stopPrice, text="STOP", style=label.style_label_lower_left, color=color.new(color.red, 20), textcolor=color.white, size=size.small)
            //label.new(x=bar_index + boxLength, y=targetPrice, text="HEDEF", style=label.style_label_upper_left, color=color.new(color.teal, 20), textcolor=color.white, size=size.small)

    if bearishBreakout
        float entryPrice 
    close
        float stopPrice  
    son_zirve // Stop noktamύz Ustanύn belirlediπi en son aώύlamaz zirvedir
        
    float risk       stopPrice entryPrice
        
        
    if risk 0
            float targetPrice 
    entryPrice - (risk targetMult)
            
    lastTradeBar := bar_index
            
            box
    .new(left=bar_indextop=stopPriceright=bar_index boxLengthbottom=entryPriceborder_color=color.new(color.red50), bgcolor=color.new(color.aqua50))
            
    box.new(left=bar_indextop=entryPriceright=bar_index boxLengthbottom=targetPriceborder_color=color.new(color.teal50), bgcolor=color.new(color.yellow50))

            
    //label.new(x=bar_index + boxLength, y=entryPrice, text="GέRέή", style=label.style_label_left, color=color.new(color.blue, 20), textcolor=color.white, size=size.small)
            //label.new(x=bar_index + boxLength, y=stopPrice, text="STOP", style=label.style_label_upper_left, color=color.new(color.red, 20), textcolor=color.white, size=size.small)
            //label.new(x=bar_index + boxLength, y=targetPrice, text="HEDEF", style=label.style_label_lower_left, color=color.new(color.teal, 20), textcolor=color.white, size=size.small)
    //////////////////
    // Girdiler
    scl_t input.int(10title="Short Cycle Length")
    mcl_t input.int(30title="Medium Cycle Length")
    scm   input.float(1.0title="Short Cycle Multiplier")
    mcm   input.float(3.0title="Medium Cycle Multiplier")
    src   input.source(closetitle="Source")

    // Uzunluklarύn tam sayύya (integer) ηevrilmesi
    scl int(scl_t 2)
    mcl int(mcl_t 2)

    // Hareketli Ortalamalar
    ma_scl ta.rma(srcscl)
    ma_mcl ta.rma(srcmcl)

    // ATR ile sapma hesaplamalarύ
    scm_off scm ta.atr(scl)
    mcm_off mcm ta.atr(mcl)

    // Geriye dφnόk indekslerin tam sayύ olmasύ
    scl_2 int(scl 2)
    mcl_2 int(mcl 2)

    // Bant Sύnύrlarύ
    sct nz(ma_scl[scl_2], src) + scm_off
    scb 
    nz(ma_scl[scl_2], src) - scm_off
    mct 
    nz(ma_mcl[mcl_2], src) + mcm_off
    mcb 
    nz(ma_mcl[mcl_2], src) - mcm_off

    // Ηizgilerin grafikte gφrόnmemesi iηin display.none parametresi eklendi
    sctl plot(scttitle="ShortCycleTop"display=display.none)
    scbl plot(scbtitle="ShortCycleBottom"display=display.none)
    plot(math.avg(sctscb), title="ShortCycleMedian"style=plot.style_linedisplay=display.none)

    mctl plot(mcttitle="MediumCycleTop"style=plot.style_linedisplay=display.none)
    mcbl plot(mcbtitle="MediumCycleBottom"style=plot.style_linedisplay=display.none)
    plot(math.avg(mctmcb), title="MediumCycleMedian"style=plot.style_linedisplay=display.none)

    // Dolgularύn renkleri ve tam %50 ώeffaflύk ayarύ
    fill(sctlscblcolor=color.new(color.red50), title="Short Cycle Fill")
    fill(mctlmcblcolor=color.new(color.green50), title="Medium Cycle Fill"
    16.07.2024 - 10.12.2024

  2. stratejisini kendinize gφre deπiώtirip test edin...
    PHP Code:
    //@version=5
    indicator("🌷"overlay=truemax_lines_count=500max_labels_count=500)
    ////

    // ─────────────────────────────────────────────────────────────────
    //  MOTOR AYARLARI (PSAR)
    // ─────────────────────────────────────────────────────────────────
    grpCore "Motor Ayarlarύ"
    p1_acc  input.float(0.4"1. SAR (Φncό)"step=0.01group=grpCore)
    p2_acc  input.float(0.02"2. SAR (Hύzlύ)"step=0.01group=grpCore)
    p3_acc  input.float(0.1"3. SAR (Ana Hedef)"step=0.01group=grpCore)

    p1 ta.sar(p1_accp1_acc0.2)
    p2 ta.sar(p2_accp2_acc0.2)
    p3 ta.sar(p3_accp3_acc0.1)

    p1_bull close p1
    p2_bull 
    close p2
    p3_bull 
    close p3

    p1_bear 
    close p1
    p2_bear 
    close p2
    p3_bear 
    close p3

    p1_al  
    ta.crossover(closep1)
    p1_sat ta.crossunder(closep1)

    p2_al  ta.crossover(closep2)
    p2_sat ta.crossunder(closep2)

    p3_al  ta.crossover(closep3)
    p3_sat ta.crossunder(closep3)

    // ─────────────────────────────────────────────────────────────────
    //  YAPI VE DέNAMέK FέBONACCέ (MέZAN)
    // ─────────────────────────────────────────────────────────────────
    swing_len 3
    ph 
    ta.pivothigh(highswing_lenswing_len)
    pl ta.pivotlow(lowswing_lenswing_len)

    var 
    float res_level na
    var float sup_level na
    if not na(ph)
        
    res_level := ph
    if not na(pl)
        
    sup_level := pl

    // Dinamik Fibo Hesaplamasύ
    float fibo_top   not na(res_level) ? (high res_level high res_level) : high
    float fibo_bot   
    not na(sup_level) ? (low sup_level low sup_level) : low
    float fibo_range 
    fibo_top fibo_bot

    f_618 
    fibo_bot fibo_range 0.618
    f_500 
    fibo_bot fibo_range 0.500
    f_382 
    fibo_bot fibo_range 0.382

    // ─────────────────────────────────────────────────────────────────
    //  MTK DAέRE FORMU: SέNYAL VE HEDEF KURALLARI
    // ─────────────────────────────────────────────────────────────────
    // LONG (AL)
    mtk1_long   p1_al and p2_bear and p3_bear
    mtk2_long   
    p2_al and p3_bear
    mtk1_2_long 
    p1_al and p2_al and p3_bear
    devam_long  
    p3_al and p1_bull and p2_bull

    // SHORT (SAT)
    mtk1_short   p1_sat and p2_bull and p3_bull
    mtk2_short   
    p2_sat and p3_bull
    mtk1_2_short 
    p1_sat and p2_sat and p3_bull
    devam_short  
    p3_sat and p1_bear and p2_bear

    // Hedef Takip Mekanizmasύ
    var string aktif_faz "BEKLEMEDE"
    var string yon "YATAY"

    if mtk1_long or mtk1_short
        aktif_faz 
    := "FAZ 1 (Hedef 2. SAR)"
        
    yon := mtk1_long "BOΠA" "AYI"

    if mtk2_long or mtk1_2_long or mtk2_short or mtk1_2_short
        aktif_faz 
    := "FAZ 2 (Hedef 3. SAR)"
        
    yon := (mtk2_long or mtk1_2_long) ? "BOΠA" "AYI"

    if devam_long or devam_short
        aktif_faz 
    := "FAZ 3 (DEVAM)"
        
    yon := devam_long "BOΠA" "AYI"

    if (yon == "BOΠA" and p1_sat) or (yon == "AYI" and p1_al)
        
    aktif_faz := "TREND YORULDU"
        
    yon := "YATAY"

    // Grafik άzerinde Gφsterilecek Gφrsel Hedef Deπeri (Dinamik)
    float gorsel_hedef na
    if aktif_faz == "FAZ 1 (Hedef 2. SAR)"
        
    gorsel_hedef := p2
    else if aktif_faz == "FAZ 2 (Hedef 3. SAR)"
        
    gorsel_hedef := p3

    // ─────────────────────────────────────────────────────────────────
    //  GΦRSELLEήTέRME
    // ─────────────────────────────────────────────────────────────────
    // Fibo Seviyeleri
    plot(f_618"0.618"color=color.new(color.silver100), style=plot.style_linebr)
    plot(f_500"0.500"color=color.new(color.silver100), style=plot.style_linebr)
    plot(f_382"0.382"color=color.new(color.silver100), style=plot.style_linebr)

    // Motorlar
    plot(p1"1."color=color.new(color.white00), style=plot.style_linebrlinewidth=1)
    plot(p2"2."color=color.new(color.aqua00), style=plot.style_linebrlinewidth=1)
    plot(p3"3."color=color.new(color.yellow0), style=plot.style_linebrlinewidth=1)

    // Gφrsel Hedef έzleyici (Gόmόώ Halkalar)
    plot(gorsel_hedef"Hedef"color=color.new(color.orange00), style=plot.style_circleslinewidth=4)

    // Etiketler
    plotshape(mtk1_long,   "1L"shape.triangleuplocation.belowbarcolor.whitesize=size.smalltext="1")
    plotshape(mtk2_long,   "2L"shape.triangleuplocation.belowbarcolor.aquasize=size.smalltext="2")
    plotshape(mtk1_2_long"1+2L"shape.triangleuplocation.belowbarcolor.limesize=size.smalltext="1+2")
    plotshape(devam_long,  "DEVAM"shape.flaglocation.belowbarcolor.yellowsize=size.smalltext="@")

    plotshape(mtk1_short,   "1S"shape.triangledownlocation.abovebarcolor.whitesize=size.smalltext="1")
    plotshape(mtk2_short,   "2S"shape.triangledownlocation.abovebarcolor.aquasize=size.smalltext="2")
    plotshape(mtk1_2_short"1+2S"shape.triangledownlocation.abovebarcolor.redsize=size.smalltext="1+2")
    plotshape(devam_short,  "DEVAM"shape.flaglocation.abovebarcolor.yellowsize=size.smalltext="@")

    // ─────────────────────────────────────────────────────────────────
    //  v6 BέLGέ TABLOSU (DASHBOARD)
    // ─────────────────────────────────────────────────────────────────
    var table v6Table table.new(position.top_right26bgcolor=color.new(color.black30), border_width=1)

    if 
    barstate.islast
        table
    .cell(v6Table00"@yφrόk@"text_color=color.graytext_size=size.small)
        
    table.cell(v6Table10"Yatύrύm Tavsiyesi DEΠέLDέR."text_color=color.graytext_size=size.small)
        
        
    table.cell(v6Table01"1.(0.04)"text_color=color.whitetext_size=size.small)
        
    table.cell(v6Table11p1_bull "BOΠA" "AYI"text_color=p1_bull color.lime color.red)
        
        
    table.cell(v6Table02"2.(0.02)"text_color=color.aquatext_size=size.small)
        
    table.cell(v6Table12p2_bull "BOΠA" "AYI"text_color=p2_bull color.lime color.red)
        
        
    table.cell(v6Table03"Ana(0.01)"text_color=color.yellowtext_size=size.small)
        
    table.cell(v6Table13p3_bull "BOΠA" "AYI"text_color=p3_bull color.lime color.red)

        
    table.cell(v6Table04"Sistem Yφnό"text_color=color.whitetext_size=size.small)
        
    table.cell(v6Table14yontext_color=yon == "BOΠA" color.lime yon == "AYI" color.red color.gray)

        
    table.cell(v6Table05"Durum"text_color=color.whitetext_size=size.small)
        
    table.cell(v6Table15aktif_faztext_color=color.silvertext_size=size.small)
    ////////////////////////
    swingLen     input.int(3,   "Swing Length (bars)",        minval=3,  maxval=50,  group="Swing Detection")
    maxSwings    input.int(4,   "Max Swings per Side",        minval=4,  maxval=15,  group="Swing Detection")
    useFib236    input.bool(false,  "0.236"group="Retracement Levels"inline="r1")
    useFib382    input.bool(false,  "0.382"group="Retracement Levels"inline="r1")
    useFib500    input.bool(false,  "0.500"group="Retracement Levels"inline="r1")
    useFib618    input.bool(true,  "0.618"group="Retracement Levels"inline="r2")
    useFib786    input.bool(false,  "0.786"group="Retracement Levels"inline="r2")
    useFib1000   input.bool(false"1.000"group="Retracement Levels"inline="r2")
    showExt113   input.bool(false"1.130 (above high)"group="Extension Zones"inline="e1")
    showExt127   input.bool(false"1.270 (above high)"group="Extension Zones"inline="e1")
    showExtN013  input.bool(false"-0.130 (below low)"group="Extension Zones"inline="e2")
    showExtN027  input.bool(false"-0.270 (below low)"group="Extension Zones"inline="e2")
    atrMult      input.float(0.5"Cluster Tolerance (x ATR)"minval=0.1maxval=3.0step=0.1group="Clustering",
         
    tooltip="Two Fib levels from different swing pairs must be within this distance to be counted as confluent. Default 0.5x ATR.")
    minStr       input.int(2,     "Min Cluster Strength",      minval=2,   maxval=20,             group="Clustering",
         
    tooltip="Minimum number of distinct swing pairs that must agree on a zone for it to be displayed.")
    maxClusters  input.int(5,     "Max Clusters to Display",   minval=1,   maxval=10,             group="Clustering")
    sepMult      input.float(1.5"Min Separation (x ATR)",    minval=0.5maxval=5.0step=0.1,  group="Clustering",
         
    tooltip="Minimum center-to-center distance between displayed zones. Prevents visual crowding.")
    zoneHalfMult input.float(0.2"Zone Half-Height (x ATR)"minval=0.1maxval=2.0step=0.1group="Display")
    showDots     input.bool(false"Show Swing Dots",          group="Display")
    showLabels   input.bool(false,  "Show Zone Labels",         group="Display")
    showDash     input.bool(false,  "Show Dashboard",           group="Display")
    dashSize     input.string("normal""Dashboard Text Size"options=["tiny","small","normal","large"], group="Display")
    extRight     input.int(60,     "Extend Right (bars)",      minval=5maxval=300group="Display")
    colElite     input.color(#21c997, "Cluster Elite  (>=6)", group="Colors")
    colStrong    input.color(#26a69a, "Cluster Strong (4-5)", group="Colors")
    colMedium    input.color(#00897b, "Cluster Medium (2-3)", group="Colors")
    colExt1      input.color(#cc24e2, "Ext 1.130 / -0.130",  group="Colors")
    colExt2      input.color(#880e4f, "Ext 1.270 / -0.270",  group="Colors")
    boxTransp    input.int(75"Box Transparency",    minval=0maxval=100group="Colors")
    brdTransp    input.int(40"Border Transparency"minval=0maxval=100group="Colors")
    colLabel     input.color(color.white"Label Text"group="Colors")
    type SwingPt
        float price
        int   barIdx
        bool  isHigh
    type FibCluster
        float center
        int   strength
    type DashEntry
        float price
        int   strength
        bool  isExt
        bool  isAbove
    getDashSize
    (string s) =>
        switch 
    s
            
    "tiny"   => size.tiny
            
    "small"  => size.small
            
    "large"  => size.large
            
    => size.normal
    getCurrentSession
    () =>
        
    int h hour(time"GMT")
        
    string sess >= and "Asian" >= and 13 "London" >= 13 and 17 "London-NY" >= 17 and 22 "New York" "Asian"
        
    sess
    float atr14 
    ta.atr(14)
    float phVal ta.pivothigh(highswingLenswingLen)
    float plVal ta.pivotlow(low,  swingLenswingLen)
    float adr10 ta.sma(high low10)
    var array<
    SwingPtswingHighs = array.new<SwingPt>()
    var array<
    SwingPtswingLows  = array.new<SwingPt>()
    int swingCap math.min(maxSwings15)
    if 
    not na(phVal)
        array.
    unshift(swingHighsSwingPt.new(phValbar_index[swingLen], true))
        if array.
    size(swingHighs) > swingCap
            
    array.pop(swingHighs)
    if 
    not na(plVal)
        array.
    unshift(swingLowsSwingPt.new(plValbar_index[swingLen], false))
        if array.
    size(swingLows) > swingCap
            
    array.pop(swingLows)
    plotshape(showDots and not na(phVal), title="SH"location=location.abovebarstyle=shape.circlecolor=color.new(#21c997, 20), size=size.tiny)
    plotshape(showDots and not na(plVal), title="SL"location=location.belowbar,  style=shape.circlecolor=color.new(#cc24e2, 20), size=size.tiny)
    var array<box>   drawnBoxes  = array.new<box>()
    var array<
    line>  drawnLines  = array.new<line>()
    var array<
    labeldrawnLabels = array.new<label>()
    var 
    table        dashTbl     na
    if barstate.islast
        
    for bx in drawnBoxes
            box
    .delete(bx)
        for 
    ln in drawnLines
            line
    .delete(ln)
        for 
    lb in drawnLabels
            label
    .delete(lb)
        array.
    clear(drawnBoxes)
        array.
    clear(drawnLines)
        array.
    clear(drawnLabels)
        
    int   nH          = array.size(swingHighs)
        
    int   nL          = array.size(swingLows)
        
    float clusterTol  atr14 atrMult
        float minRange    
    atr14 2.0
        
    array<FibClusterclusters    = array.new<FibCluster>()
        array<
    int>        pairHits    = array.new_int()
        
    float domHigh  na
        float domLow   
    na
        float domRange 
    0.0
        
    if nH and nL 0
            
    for hi 0 to nH 1
                SwingPt sh 
    = array.get(swingHighshi)
                for 
    li 0 to nL 1
                    SwingPt sl  
    = array.get(swingLowsli)
                    
    float   rng sh.price sl.price
                    
    if rng minRange
                        
    continue
                    if 
    rng domRange
                        domRange 
    := rng
                        domHigh  
    := sh.price
                        domLow   
    := sl.price
                    
    array<floatpairLevels = array.new_float()
                    if 
    useFib236
                        
    array.push(pairLevelssh.price rng 0.236)
                    if 
    useFib382
                        
    array.push(pairLevelssh.price rng 0.382)
                    if 
    useFib500
                        
    array.push(pairLevelssh.price rng 0.500)
                    if 
    useFib618
                        
    array.push(pairLevelssh.price rng 0.618)
                    if 
    useFib786
                        
    array.push(pairLevelssh.price rng 0.786)
                    if 
    useFib1000
                        
    array.push(pairLevelssh.price rng 1.000)
                    
    int nLevels = array.size(pairLevels)
                    if 
    nLevels == 0
                        
    continue
                    
    int nC = array.size(clusters)
                    array<
    boolpairContributed = array.new<bool>()
                    for 
    0 to math.max(0nC 1)
                        array.
    push(pairContributedfalse)
                    for 
    lv 0 to nLevels 1
                        float lp 
    = array.get(pairLevelslv)
                        
    int   bestK    = -1
                        float bestDist 
    clusterTol 1.0
                        int nCurr 
    = array.size(clusters)
                        if 
    nCurr 0
                            
    for 0 to nCurr 1
                                FibCluster ck 
    = array.get(clustersk)
                                
    float dist    math.abs(lp ck.center)
                                if 
    dist <= clusterTol and dist bestDist
                                    bestDist 
    := dist
                                    bestK    
    := k
                        
    if bestK >= 0
                            FibCluster ck 
    = array.get(clustersbestK)
                            
    bool alreadyHit = array.size(pairContributed) > bestK ? array.get(pairContributedbestK) : false
                            float newCenter 
    = (ck.center ck.strength lp) / (ck.strength 1)
                            
    ck.center := newCenter
                            
    if not alreadyHit
                                ck
    .strength := ck.strength 1
                                
    if array.size(pairContributed) > bestK
                                    
    array.set(pairContributedbestKtrue)
                            array.
    set(clustersbestKck)
                        else
                            array.
    push(clustersFibCluster.new(lp1))
                            array.
    push(pairContributedtrue)
        
    int nRaw = array.size(clusters)
        array<
    FibClusterqualified = array.new<FibCluster>()
        if 
    nRaw 0
            
    for 0 to nRaw 1
                FibCluster ck 
    = array.get(clustersk)
                if 
    ck.strength >= minStr
                    
    array.push(qualifiedck)
        
    int nQ = array.size(qualified)
        if 
    nQ 1
            
    for 0 to nQ 2
                
    for 0 to nQ i
                    FibCluster ca 
    = array.get(qualifiedj)
                    
    FibCluster cb = array.get(qualified1)
                    if 
    ca.strength cb.strength
                        
    array.set(qualifiedj,     cb)
                        array.
    set(qualified1ca)
        array<
    FibClusterselected = array.new<FibCluster>()
        
    float minSep atr14 sepMult
        
    if nQ 0
            
    for 0 to nQ 1
                
    if array.size(selected) >= maxClusters
                    
    break
                
    FibCluster cand = array.get(qualifiedi)
                
    bool overlaps   false
                int nSel 
    = array.size(selected)
                if 
    nSel 0
                    
    for 0 to nSel 1
                        FibCluster ex 
    = array.get(selectedj)
                        if 
    math.abs(cand.center ex.center) < minSep
                            overlaps 
    := true
                            
    break
                if 
    not overlaps
                    
    array.push(selectedcand)
        
    int nSel = array.size(selected)
        
    float zoneHalf atr14 zoneHalfMult
        
    if nSel 0
            
    for 0 to nSel 1
                FibCluster cl 
    = array.get(selectedi)
                
    int    rank   1
                int    s      
    cl.strength
                float zTop    
    cl.center zoneHalf
                float zBottom 
    cl.center zoneHalf
                color baseCol 
    >= colElite >= colStrong colMedium
                color bgCol   
    color.new(baseColboxTransp)
                
    color bdCol   color.new(baseColbrdTransp)
                
    box newBox box.new(left=bar_index 300top=zTopright=bar_index extRightbottom=zBottombgcolor=bgColborder_color=bdColborder_width=1extend=extend.none)
                array.
    push(drawnBoxesnewBox)
                
    line newLine line.new(x1=bar_index 300y1=cl.centerx2=bar_index extRighty2=cl.centercolor=color.new(baseColmath.max(0brdTransp 10)), style=line.style_dashedwidth=1)
                array.
    push(drawnLinesnewLine)
                if 
    showLabels
                    string tier    
    >= "ELITE" >= "STRONG" "MEDIUM"
                    
    float  distPct math.abs(close cl.center) / close 100.0
                    string txt     
    "#" str.tostring(rank) + "  STR " str.tostring(s) + "  " tier "  " str.tostring(distPct"#.##") + "% away"
                    
    label newLabel label.new(x=bar_index extRighty=cl.centertext=txtcolor=color.new(color.black100), textcolor=colLabelsize=size.normalstyle=label.style_label_leftxloc=xloc.bar_index)
                    array.
    push(drawnLabelsnewLabel)
        
    bool hasDomSwing not na(domHigh) and not na(domLow) and domRange 0.0
        float ep1 
    na
        float ep2 
    na
        float en1 
    na
        float en2 
    na
        
    if hasDomSwing
            
    if showExt113
                ep1 
    := domHigh domRange 0.130
                
    array.push(drawnBoxesbox.new(left=bar_index 300top=ep1 zoneHalfright=bar_index extRightbottom=ep1 zoneHalfbgcolor=color.new(colExt1boxTransp), border_color=color.new(colExt1brdTransp), border_width=1extend=extend.none))
                array.
    push(drawnLines,  line.new(x1=bar_index 300y1=ep1x2=bar_index extRighty2=ep1color=color.new(colExt1math.max(0brdTransp 10)), style=line.style_dashedwidth=1))
                if 
    showLabels
                    float dp1 
    math.abs(close ep1) / close 100.0
                    
    array.push(drawnLabelslabel.new(x=bar_index extRighty=ep1text="EXT 1.130  " str.tostring(dp1"#.##") + "% away"color=color.new(color.black100), textcolor=colLabelsize=size.normalstyle=label.style_label_leftxloc=xloc.bar_index))
            if 
    showExt127
                ep2 
    := domHigh domRange 0.270
                
    array.push(drawnBoxesbox.new(left=bar_index 300top=ep2 zoneHalfright=bar_index extRightbottom=ep2 zoneHalfbgcolor=color.new(colExt2boxTransp), border_color=color.new(colExt2brdTransp), border_width=1extend=extend.none))
                array.
    push(drawnLines,  line.new(x1=bar_index 300y1=ep2x2=bar_index extRighty2=ep2color=color.new(colExt2math.max(0brdTransp 10)), style=line.style_dashedwidth=1))
                if 
    showLabels
                    float dp2 
    math.abs(close ep2) / close 100.0
                    
    array.push(drawnLabelslabel.new(x=bar_index extRighty=ep2text="EXT 1.270  " str.tostring(dp2"#.##") + "% away"color=color.new(color.black100), textcolor=colLabelsize=size.normalstyle=label.style_label_leftxloc=xloc.bar_index))
            if 
    showExtN013
                en1 
    := domLow domRange 0.130
                
    array.push(drawnBoxesbox.new(left=bar_index 300top=en1 zoneHalfright=bar_index extRightbottom=en1 zoneHalfbgcolor=color.new(colExt1boxTransp), border_color=color.new(colExt1brdTransp), border_width=1extend=extend.none))
                array.
    push(drawnLines,  line.new(x1=bar_index 300y1=en1x2=bar_index extRighty2=en1color=color.new(colExt1math.max(0brdTransp 10)), style=line.style_dashedwidth=1))
                if 
    showLabels
                    float dn1 
    math.abs(close en1) / close 100.0
                    
    array.push(drawnLabelslabel.new(x=bar_index extRighty=en1text="EXT -0.130  " str.tostring(dn1"#.##") + "% away"color=color.new(color.black100), textcolor=colLabelsize=size.normalstyle=label.style_label_leftxloc=xloc.bar_index))
            if 
    showExtN027
                en2 
    := domLow domRange 0.270
                
    array.push(drawnBoxesbox.new(left=bar_index 300top=en2 zoneHalfright=bar_index extRightbottom=en2 zoneHalfbgcolor=color.new(colExt2boxTransp), border_color=color.new(colExt2brdTransp), border_width=1extend=extend.none))
                array.
    push(drawnLines,  line.new(x1=bar_index 300y1=en2x2=bar_index extRighty2=en2color=color.new(colExt2math.max(0brdTransp 10)), style=line.style_dashedwidth=1))
                if 
    showLabels
                    float dn2 
    math.abs(close en2) / close 100.0
                    
    array.push(drawnLabelslabel.new(x=bar_index extRighty=en2text="EXT -0.270  " str.tostring(dn2"#.##") + "% away"color=color.new(color.black100), textcolor=colLabelsize=size.normalstyle=label.style_label_leftxloc=xloc.bar_index))
        
    /////////////
    ///////////////////////
    // --- 1. AYARLAR: KUTU VE GΦRSELLέK ---
    i_boxColor        input.color(color.new(#787b86, 92), "Ana Kutu (Range) Arka Planύ", group="Gφrsel Ayarlar")
    i_gpBullishColor  input.color(color.new(#4caf50, 60), "Destek GP Rengi", group="Gφrsel Ayarlar")
    i_gpBearishColor  input.color(color.new(#f44336, 60), "Direnη GP Rengi", group="Gφrsel Ayarlar")
    i_liqColor        input.color(color.new(#ffeb3b, 85), "Likidite Bφlgeleri Rengi", group="Gφrsel Ayarlar")
    i_lineColor       input.color(color.white"Ηizgi Rengi"group="Gφrsel Ayarlar")

    i_autoFit         input.bool(true"Kutuyu Son Tepe/Dibe Otomatik Uyarla"group="Hesaplama Ayarlarύ")
    i_dynamicExpand   input.bool(false"Dinamik Geniώlemeyi Etkinleώtir"group="Hesaplama Ayarlarύ")
    i_lookback        input.int(500"Geriye Dφnόk Tarama (Max 300)"minval=2maxval=500group="Hesaplama Ayarlarύ")
    i_offsetR         input.int(10"Kutuyu Saπa Uzat (Bar Sayύsύ)"minval=0group="Hesaplama Ayarlarύ")
    i_showLabels      input.bool(true"Fiyat Ηizgilerini ve Etiketleri Gφster"group="Gφrsel Ayarlar")

    // --- 2. HESAPLAMALAR: YAPI VE SINIRLAR ---
    float windowHigh ta.highest(highi_lookback)
    float windowLow  ta.lowest(lowi_lookback)

    var 
    float rHigh na
    var float rLow  na

    if barstate.islast
        
    if i_dynamicExpand
            rHigh 
    := windowHigh
            rLow  
    := windowLow
        
    else
            
    rHigh := high[i_lookback] > windowHigh high[i_lookback] : windowHigh
            rLow  
    := low[i_lookback] < windowLow low[i_lookback] : windowLow

    int hOffLookback 
    ta.highestbars(highi_lookback)
    int lOffLookback ta.lowestbars(lowi_lookback)
    int anchorBar i_autoFit math.min(bar_index hOffLookbackbar_index lOffLookback) : (bar_index i_lookback)

    // Golden Pocket (Altύn Oran) Mesafe Hesaplarύ
    float rDiff rHigh rLow
    float bUp 
    rLow + (rDiff 0.382)
    float bLo rLow + (rDiff 0.35)
    float sUp rHigh - (rDiff 0.35)
    float sLo rHigh - (rDiff 0.382)

    // --- 3. GΦRSELLEήTέRME: KUTULAR VE ETέKETLER ---
    var box b_Range   box.new(nanananaxloc=xloc.bar_indexbgcolor=i_boxColorborder_color=color.gray)
    var 
    box b_Bullish box.new(nanananaxloc=xloc.bar_indexbgcolor=i_gpBullishColorborder_color=natext=""text_color=color.whitetext_size=size.small)
    var 
    box b_Bearish box.new(nanananaxloc=xloc.bar_indexbgcolor=i_gpBearishColorborder_color=natext=""text_color=color.whitetext_size=size.small)
    var 
    box b_LiqTop  box.new(nanananaxloc=xloc.bar_indexbgcolor=i_liqColorborder_color=natext=""text_color=color.whitetext_size=size.tiny)
    var 
    box b_LiqBot  box.new(nanananaxloc=xloc.bar_indexbgcolor=i_liqColorborder_color=natext=""text_color=color.whitetext_size=size.tiny)

    var 
    line[] l_levels = array.new_line()
    var 
    label[] lb_prices = array.new_label()

    if 
    barstate.isfirst
        
    for 0 to 7
            
    array.push(l_levelsline.new(nanananaxloc=xloc.bar_indexcolor=i_lineColor))
            array.
    push(lb_priceslabel.new(nana""xloc=xloc.bar_indexcolor=color.new(color.black100), textcolor=i_lineColorsize=size.smallstyle=label.style_label_left))

    if 
    barstate.islast
        int rightBar 
    bar_index i_offsetR
        
        
    // Kutularύ Yatay ve Dikey Olarak Ηiz
        
    box.set_lefttop(b_RangeanchorBarrHigh)
        
    box.set_rightbottom(b_RangerightBarrLow)
        
        
    box.set_lefttop(b_BullishanchorBarbUp)
        
    box.set_rightbottom(b_BullishrightBarbLo)
        
        
    box.set_lefttop(b_BearishanchorBarsUp)
        
    box.set_rightbottom(b_BearishrightBarsLo)
        
        
    box.set_lefttop(b_LiqTopanchorBarrHigh)
        
    box.set_rightbottom(b_LiqToprightBarrHigh - (rDiff 0.05))
        
        
    box.set_lefttop(b_LiqBotanchorBarrLow + (rDiff 0.05))
        
    box.set_rightbottom(b_LiqBotrightBarrLow)

        
    // Sύnύr Ηizgilerini ve Fiyat Etiketlerini Yerleώtir
        
    if i_showLabels
            float
    [] p_vals = array.from(rHighrHigh - (rDiff 0.05), sUpsLobUpbLorLow + (rDiff 0.05), rLow)
            for 
    0 to 7
                float v 
    = array.get(p_valsi)
                
    line.set_xy1(array.get(l_levelsi), anchorBarv)
                
    line.set_xy2(array.get(l_levelsi), rightBarv)
                
    label.set_xy(array.get(lb_pricesi), rightBarv)
                
    label.set_text(array.get(lb_pricesi), " " str.tostring(vformat.mintick)) 
    16.07.2024 - 10.12.2024

  3. sar hesaplamasύ denemeleri....
    PHP Code:
    //@version=6
    indicator(":)"overlay=truemax_labels_count=500max_lines_count=500max_boxes_count=500


    // ─────────────────────────────────────────────────────────────────
    //  DALGA MESAFESέ (Daireleri Birbirinden Ayύran Boώluk)
    // ─────────────────────────────────────────────────────────────────
    // Fiyatύn hareketliliπine gφre aralarύndaki mesafeyi ayarlar
    dalga_araligi ta.atr(14) * 0.25 

    // ─────────────────────────────────────────────────────────────────
    //  OTONOM BEYέN (Φzelleώtirilmiώ MTK SAR Motoru)
    // ─────────────────────────────────────────────────────────────────
    type SARState
        float sar_value
        float extreme_point
        float accel_factor
        bool  isLong

    method f_initState
    (float accel_start) => SARState.new(nanaaccel_startfalse)

    method f_updateState(SARState statefloat high_valfloat low_valfloat close_valfloat accel_startfloat accel_incfloat accel_maxfloat atr_offset) =>
        
    bool isInitialTrend false
        
        
    // έLK BAήLANGIΗ
        
    if na(state.sar_value)
            if 
    close_val close_val[1]
                
    state.isLong        := true
                state
    .extreme_point := high_val
                
    // Baώlangύη ηizgisine offset (mesafe) eklendi
                
    state.sar_value     := low_val[1] - atr_offset 
            
    else
                
    state.isLong        := false
                state
    .extreme_point := low_val
                
    // Baώlangύη ηizgisine offset (mesafe) eklendi
                
    state.sar_value     := high_val[1] + atr_offset
            isInitialTrend          
    := true
            state
    .accel_factor      := accel_start
            
        state
    .sar_value += state.accel_factor * (state.extreme_point state.sar_value)
        
        
    // YΦN DEΠέήέMέ (KIRILIM ANI) - Daire Formunun Yaratύldύπύ Yer!
        
    if state.isLong
            
    if state.sar_value low_val
                isInitialTrend      
    := true
                state
    .isLong        := false
                
    // Dόώόώe geηerken her SAR farklύ bir mesafeden baώlar
                
    state.sar_value     := math.max(high_valstate.extreme_point) + atr_offset
                state
    .extreme_point := low_val
                state
    .accel_factor  := accel_start
        
    else
            if 
    state.sar_value high_val
                isInitialTrend      
    := true
                state
    .isLong        := true
                
    // Yόkseliώe geηerken her SAR farklύ bir mesafeden baώlar
                
    state.sar_value     := math.min(low_valstate.extreme_point) - atr_offset
                state
    .extreme_point := high_val
                state
    .accel_factor  := accel_start
                
        
    if not isInitialTrend
            
    if state.isLong
                
    if high_val state.extreme_point
                    state
    .extreme_point := high_val
                    state
    .accel_factor  := math.min(state.accel_factor accel_incaccel_max)
            else
                if 
    low_val state.extreme_point
                    state
    .extreme_point := low_val
                    state
    .accel_factor  := math.min(state.accel_factor accel_incaccel_max)
                    
        if 
    bar_index 1
            
    if state.isLong
                state
    .sar_value := math.min(state.sar_valuelow_val[1])
                if 
    bar_index 2
                    state
    .sar_value := math.min(state.sar_valuelow_val[2])
            else
                
    state.sar_value := math.max(state.sar_valuehigh_val[1])
                if 
    bar_index 2
                    state
    .sar_value := math.max(state.sar_valuehigh_val[2])
        
    state

    // ─────────────────────────────────────────────────────────────────
    //  ήAHέNLERέN YARATILMASI (6 Tabaka)
    // ─────────────────────────────────────────────────────────────────
    var SARState sar1_beyaz f_initState(0.04)
    var 
    SARState sar2_kirm  f_initState(0.01)
    var 
    SARState sar3_yesil f_initState(0.01)
    var 
    SARState sar4_mavi  f_initState(0.01)
    var 
    SARState sar5_sari  f_initState(0.01// Sarύ ayarύnύ ώimdilik 0.01 yaptύm
    var SARState sar6_kutup f_initState(0.001)

    // Her ώahine farklύ bir "Uzaklύk" (Offset) veriyoruz ki iη iηe daireler oluώsun
    sar1_beyaz := sar1_beyaz.f_updateState(highlowclose0.0.040.2dalga_araligi 0// En iη dalga
    sar2_kirm  := sar2_kirm.f_updateState(highlowclose0.0.0030.2dalga_araligi 1)
    sar3_yesil := sar3_yesil.f_updateState(highlowclose0.0.0020.2dalga_araligi 2)
    sar4_mavi  := sar4_mavi.f_updateState(highlowclose0.0.010.2dalga_araligi 3)
    sar5_sari  := sar5_sari.f_updateState(highlowclose0.0.0010.2dalga_araligi 4)
    sar6_kutup := sar6_kutup.f_updateState(highlowclose0.,0.001,0.2dalga_araligi 5// En dύώ dalga

    // ΗέZέMLER
    plot(sar1_beyaz.sar_value"1"color=color.white,  style=plot.style_linelinewidth=1)
    plot(sar2_kirm.sar_value,  "3"color=color.red,    style=plot.style_linelinewidth=1)
    //plot(sar3_yesil.sar_value, "SAR4", color=color.green,  style=plot.style_cross, linewidth=1)
    plot(sar4_mavi.sar_value,  "2"color=color.blue,   style=plot.style_linelinewidth=1)
    //plot(sar5_sari.sar_value,  "SAR5", color=color.yellow, style=plot.style_cross, linewidth=1)
    plot(sar6_kutup.sar_value"Trend"color=color.fuchsia,style=plot.style_linelinewidth=1)
    ///////////
    // ==========================================

    ///////////////////

    // ─────────────────────────────────────────────────────────────────
    //  1. GέRDέLER 
    // ─────────────────────────────────────────────────────────────────
    h_start input.float(0."Hύzlύ SAR Baώlangύη"step=0.01group="Hύzlύ Ayna (Kalύn)")
    h_inc   input.float(0.06"Hύzlύ SAR έvme"step=0.01group="Hύzlύ Ayna (Kalύn)")
    h_max   input.float(0.30"Hύzlύ SAR Max"step=0.1group="Hύzlύ Ayna (Kalύn)")

    y_start input.float(0."Yavaώ SAR Baώlangύη"step=0.005group="Yavaώ Ayna (έnce)")
    y_inc   input.float(0.01"Yavaώ SAR έvme"step=0.005group="Yavaώ Ayna (έnce)")
    y_max   input.float(0.10"Yavaώ SAR Max"step=0.1group="Yavaώ Ayna (έnce)")

    // ─────────────────────────────────────────────────────────────────
    //  2. GELέήMέή LONESOME SAR MOTORU
    // ─────────────────────────────────────────────────────────────────
    f_ozel_sar(src_hsrc_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 == and not na(src_h[1])
            
    trend   := src_h >= src_h[1] or src_l >= src_l[1] ? : -1
            sar_val 
    := trend src_l[1] : src_h[1]
            
    ep      := trend 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(_maxaf _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(_maxaf _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_valtrend]

    // ─────────────────────────────────────────────────────────────────
    //  3. ΗIPLAK AYNA HESAPLAMASI
    // ─────────────────────────────────────────────────────────────────
    yeni_gun ta.change(time("D")) != 0

    // Hύzlύ Ayna
    [sar_hizlitrend_hizli] = f_ozel_sar(highlowh_starth_inch_maxyeni_gun)
    ayna_hizli trend_hizli close math.abs(close sar_hizli) : close math.abs(close sar_hizli)

    // Yavaώ Ayna
    [sar_yavastrend_yavas] = f_ozel_sar(highlowy_starty_incy_maxyeni_gun)
    ayna_yavas trend_yavas close math.abs(close sar_yavas) : close math.abs(close sar_yavas)

    // ─────────────────────────────────────────────────────────────────
    //  4. RENK VE ΗέZέMLER
    // ─────────────────────────────────────────────────────────────────
    bool hizli_yesil ayna_hizli close
    bool yavas_yesil 
    ayna_yavas close

    color col_hizli 
    hizli_yesil color.lime color.red
    color col_yavas 
    yavas_yesil color.lime color.red

    plot
    (ayna_hizlititle="Trend"color=col_hizlistyle=plot.style_linelinewidth=1)
    //plot(ayna_yavas, title="Yavaώ Ayna", color=col_yavas, style=plot.style_line, linewidth=1)
    // ==========================================

    /////////////////

    // ─────────────────────────────────────────────────────────────────
    //  MTK-1-2-3 DAέRE FORMLU PSAR MOTORU
    // ─────────────────────────────────────────────────────────────────
    f_ozel_sar33(src_hsrc_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 == and not na(src_h[1])
            
    trend   := src_h >= src_h[1] or src_l >= src_l[1] ? : -1
            sar_val 
    := trend src_l[1] : src_h[1]
            
    ep      := trend 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(_maxaf _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(_maxaf _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_valtrend]

    // ─────────────────────────────────────────────────────────────────
    //  HESAPLAMALAR VE ΗEKέM
    // ─────────────────────────────────────────────────────────────────
    //yeni_gun = ta.change(time("D")) != 0

    // Orijinal kodda belirtilen (0.01 - 0.02 - 0.03) ivme deπerlerine gφre ηekimler
    [roSarSlow_]     = f_ozel_sar33(highlow0.0.010.2yeni_gun)
    [
    roSarModerate_] = f_ozel_sar33(highlow0.0.020.2yeni_gun)
    [
    roSarFast_]     = f_ozel_sar33(highlow0.0.030.2yeni_gun)

    // ─────────────────────────────────────────────────────────────────
    //  ΗέZέMLER
    // ─────────────────────────────────────────────────────────────────
    plot(roSarSlow,     title="C"color=color.new(color.lime0),  style=plot.style_crosslinewidth=1)
    plot(roSarModeratetitle="B",  color=color.new(color.yellow0), style=plot.style_crosslinewidth=1)
    plot(roSarFast,     title="A"color=color.new(color.red0),   style=plot.style_crosslinewidth=1
    16.07.2024 - 10.12.2024

  4. sarlara gφre deπiώen ayna rengi ηalύώmasύ...
    PHP Code:
    //@version=6
    indicator(":)"overlay=truemax_labels_count=500max_lines_count=500max_boxes_count=500


    // ─────────────────────────────────────────────────────────────────
    //  DALGA MESAFESέ (Daireleri Birbirinden Ayύran Boώluk)
    // ─────────────────────────────────────────────────────────────────
    // Fiyatύn hareketliliπine gφre aralarύndaki mesafeyi ayarlar
    dalga_araligi ta.atr(14) * 0.15 

    // ─────────────────────────────────────────────────────────────────
    //  OTONOM BEYέN (Φzelleώtirilmiώ MTK SAR Motoru)
    // ─────────────────────────────────────────────────────────────────
    type SARState
        float sar_value
        float extreme_point
        float accel_factor
        bool  isLong

    method f_initState
    (float accel_start) => SARState.new(nanaaccel_startfalse)

    method f_updateState(SARState statefloat high_valfloat low_valfloat close_valfloat accel_startfloat accel_incfloat accel_maxfloat atr_offset) =>
        
    bool isInitialTrend false
        
        
    // έLK BAήLANGIΗ
        
    if na(state.sar_value)
            if 
    close_val close_val[1]
                
    state.isLong        := true
                state
    .extreme_point := high_val
                
    // Baώlangύη ηizgisine offset (mesafe) eklendi
                
    state.sar_value     := low_val[1] - atr_offset 
            
    else
                
    state.isLong        := false
                state
    .extreme_point := low_val
                
    // Baώlangύη ηizgisine offset (mesafe) eklendi
                
    state.sar_value     := high_val[1] + atr_offset
            isInitialTrend          
    := true
            state
    .accel_factor      := accel_start
            
        state
    .sar_value += state.accel_factor * (state.extreme_point state.sar_value)
        
        
    // YΦN DEΠέήέMέ (KIRILIM ANI) - Daire Formunun Yaratύldύπύ Yer!
        
    if state.isLong
            
    if state.sar_value low_val
                isInitialTrend      
    := true
                state
    .isLong        := false
                
    // Dόώόώe geηerken her SAR farklύ bir mesafeden baώlar
                
    state.sar_value     := math.max(high_valstate.extreme_point) + atr_offset
                state
    .extreme_point := low_val
                state
    .accel_factor  := accel_start
        
    else
            if 
    state.sar_value high_val
                isInitialTrend      
    := true
                state
    .isLong        := true
                
    // Yόkseliώe geηerken her SAR farklύ bir mesafeden baώlar
                
    state.sar_value     := math.min(low_valstate.extreme_point) - atr_offset
                state
    .extreme_point := high_val
                state
    .accel_factor  := accel_start
                
        
    if not isInitialTrend
            
    if state.isLong
                
    if high_val state.extreme_point
                    state
    .extreme_point := high_val
                    state
    .accel_factor  := math.min(state.accel_factor accel_incaccel_max)
            else
                if 
    low_val state.extreme_point
                    state
    .extreme_point := low_val
                    state
    .accel_factor  := math.min(state.accel_factor accel_incaccel_max)
                    
        if 
    bar_index 1
            
    if state.isLong
                state
    .sar_value := math.min(state.sar_valuelow_val[1])
                if 
    bar_index 2
                    state
    .sar_value := math.min(state.sar_valuelow_val[2])
            else
                
    state.sar_value := math.max(state.sar_valuehigh_val[1])
                if 
    bar_index 2
                    state
    .sar_value := math.max(state.sar_valuehigh_val[2])
        
    state

    // ─────────────────────────────────────────────────────────────────
    //  ήAHέNLERέN YARATILMASI (6 Tabaka)
    // ─────────────────────────────────────────────────────────────────
    var SARState sar1_beyaz f_initState(0.04)
    var 
    SARState sar2_kirm  f_initState(0.01)
    var 
    SARState sar3_yesil f_initState(0.01)
    var 
    SARState sar4_mavi  f_initState(0.01)
    var 
    SARState sar5_sari  f_initState(0.01// Sarύ ayarύnύ ώimdilik 0.01 yaptύm
    var SARState sar6_kutup f_initState(0.001)

    // Her ώahine farklύ bir "Uzaklύk" (Offset) veriyoruz ki iη iηe daireler oluώsun
    sar1_beyaz := sar1_beyaz.f_updateState(highlowclose0.040.040.2dalga_araligi 0// En iη dalga
    sar2_kirm  := sar2_kirm.f_updateState(highlowclose0.010.0030.2dalga_araligi 1)
    sar3_yesil := sar3_yesil.f_updateState(highlowclose0.010.0020.2dalga_araligi 2)
    sar4_mavi  := sar4_mavi.f_updateState(highlowclose0.010.010.2dalga_araligi 3)
    sar5_sari  := sar5_sari.f_updateState(highlowclose0.010.0010.2dalga_araligi 4)
    sar6_kutup := sar6_kutup.f_updateState(highlowclose0.001,0.001,0.2dalga_araligi 5// En dύώ dalga

    // ΗέZέMLER
    plot(sar1_beyaz.sar_value"SAR1"color=color.white,  style=plot.style_crosslinewidth=1)
    plot(sar2_kirm.sar_value,  "SAR3"color=color.red,    style=plot.style_crosslinewidth=1)
    plot(sar3_yesil.sar_value"SAR4"color=color.green,  style=plot.style_crosslinewidth=1)
    plot(sar4_mavi.sar_value,  "SAR2"color=color.blue,   style=plot.style_crosslinewidth=1)
    plot(sar5_sari.sar_value,  "SAR5"color=color.yellowstyle=plot.style_crosslinewidth=1)
    plot(sar6_kutup.sar_value"SAR6"color=color.fuchsia,style=plot.style_crosslinewidth=1)
    ///////////
    // ==========================================

    // ┌──────────────────────────────────────────────────────────────────────────────┐
    // │ 3. ΗέFT AYNALI OMURGA MOTORU (13 ve 34)                                      │
    // └──────────────────────────────────────────────────────────────────────────────┘
    float s_start_sabit 0.08
    float s_inc_sabit   
    0.05
    float s_max_sabit   
    0.2

    f_katman_ana
    (_start_inc_max_smooth) =>
        
    float _sar ta.sar(_start_inc_max)
        
    float _delta math.abs(close _sar)
        
    bool _is_up  close _sar
        float _raw_mirror 
    _is_up close _delta close _delta
        ta
    .hma(_raw_mirror_smooth)

    // GάNEή (32) VE AY (12) YΦRάNGELERέ
    float ayna_12 f_katman_ana(s_start_sabits_inc_sabits_max_sabit13)
    float ayna_32 f_katman_ana(s_start_sabits_inc_sabits_max_sabit34)

    bool makro_al_12 ayna_12 close
    color col_ayna_12 
    makro_al_12 ? (ayna_12 ayna_12[1] ? color.blue color.lime) : (ayna_12 ayna_12[1] ? color.yellow color.red)

    bool makro_al_32 ayna_32 close
    color col_ayna_32 
    makro_al_32 ? (ayna_32 ayna_32[1] ? color.blue color.lime) : (ayna_32 ayna_32[1] ? color.yellow color.red)

    aort= (ayna_12+ayna_32)/2
    bool is_sari_12 
    col_ayna_12 == color.yellow
    bool is_mavi_12 
    col_ayna_12 == color.blue
    bool is_sari_32 
    col_ayna_32 == color.yellow
    bool is_mavi_32 
    col_ayna_32 == color.blue

    bool ikisi_sari 
    is_sari_12 and is_sari_32
    bool ikisi_mavi 
    is_mavi_12 and is_mavi_32

    //plot(ayna_12, "Ayna έlk", color=col_ayna_12, linewidth=2, style=plot.style_stepline)
    //plot(ayna_32, "Ayna Son", color=col_ayna_32, linewidth=2, style=plot.style_stepline)
    plot(aort"@yφrόk@"color=col_ayna_32linewidth=3style=plot.style_stepline)
    /////////////////// 
    16.07.2024 - 10.12.2024

  5. 13-34 iki ayna ortalamasύ... 4 renk deπiώimli ηalύώma...
    PHP Code:
    //@version=6
    indicator(":)"overlay=truemax_labels_count=500max_lines_count=500max_boxes_count=500


    ///////////
    // ==========================================

    // ┌──────────────────────────────────────────────────────────────────────────────┐
    // │ 3. ΗέFT AYNALI OMURGA MOTORU (13 ve 34)                                      │
    // └──────────────────────────────────────────────────────────────────────────────┘
    float s_start_sabit 0.08
    float s_inc_sabit   
    0.05
    float s_max_sabit   
    0.2

    f_katman_ana
    (_start_inc_max_smooth) =>
        
    float _sar ta.sar(_start_inc_max)
        
    float _delta math.abs(close _sar)
        
    bool _is_up  close _sar
        float _raw_mirror 
    _is_up close _delta close _delta
        ta
    .hma(_raw_mirror_smooth)

    // GάNEή (32) VE AY (12) YΦRάNGELERέ
    float ayna_12 f_katman_ana(s_start_sabits_inc_sabits_max_sabit13)
    float ayna_32 f_katman_ana(s_start_sabits_inc_sabits_max_sabit34)

    bool makro_al_12 ayna_12 close
    color col_ayna_12 
    makro_al_12 ? (ayna_12 ayna_12[1] ? color.blue color.lime) : (ayna_12 ayna_12[1] ? color.yellow color.red)

    bool makro_al_32 ayna_32 close
    color col_ayna_32 
    makro_al_32 ? (ayna_32 ayna_32[1] ? color.blue color.lime) : (ayna_32 ayna_32[1] ? color.yellow color.red)

    aort= (ayna_12+ayna_32)/2
    bool is_sari_12 
    col_ayna_12 == color.yellow
    bool is_mavi_12 
    col_ayna_12 == color.blue
    bool is_sari_32 
    col_ayna_32 == color.yellow
    bool is_mavi_32 
    col_ayna_32 == color.blue

    bool ikisi_sari 
    is_sari_12 and is_sari_32
    bool ikisi_mavi 
    is_mavi_12 and is_mavi_32

    //plot(ayna_12, "Ayna έlk", color=col_ayna_12, linewidth=2, style=plot.style_stepline)
    //plot(ayna_32, "Ayna Son", color=col_ayna_32, linewidth=2, style=plot.style_stepline)
    plot(aort"@yφrόk@"color=col_ayna_32linewidth=3style=plot.style_stepline)
    /////////////////// 
    16.07.2024 - 10.12.2024

  6. 13-34 ort aynanύn... hurst dφngόsyle birleώtirme ηalύώmasύ....
    PHP Code:
    //@version=6
    indicator("Hurst Cycyle- Yφrόk"shorttitle=".."overlay=true)

    // Girdiler
    scl_t input.int(10title="Short Cycle Length")
    mcl_t input.int(30title="Medium Cycle Length")
    scm   input.float(1.0title="Short Cycle Multiplier")
    mcm   input.float(3.0title="Medium Cycle Multiplier")
    src   input.source(closetitle="Source")

    // Uzunluklarύn tam sayύya (integer) ηevrilmesi
    scl int(scl_t 2)
    mcl int(mcl_t 2)

    // Hareketli Ortalamalar
    ma_scl ta.rma(srcscl)
    ma_mcl ta.rma(srcmcl)

    // ATR ile sapma hesaplamalarύ
    scm_off scm ta.atr(scl)
    mcm_off mcm ta.atr(mcl)

    // Geriye dφnόk indekslerin tam sayύ olmasύ
    scl_2 int(scl 2)
    mcl_2 int(mcl 2)

    // Bant Sύnύrlarύ
    sct nz(ma_scl[scl_2], src) + scm_off
    scb 
    nz(ma_scl[scl_2], src) - scm_off
    mct 
    nz(ma_mcl[mcl_2], src) + mcm_off
    mcb 
    nz(ma_mcl[mcl_2], src) - mcm_off

    // Ηizgilerin grafikte gφrόnmemesi iηin display.none parametresi eklendi
    sctl plot(scttitle="ShortCycleTop"display=display.none)
    scbl plot(scbtitle="ShortCycleBottom"display=display.none)
    plot(math.avg(sctscb), title="ShortCycleMedian"style=plot.style_linedisplay=display.none)

    mctl plot(mcttitle="MediumCycleTop"style=plot.style_linedisplay=display.none)
    mcbl plot(mcbtitle="MediumCycleBottom"style=plot.style_linedisplay=display.none)
    plot(math.avg(mctmcb), title="MediumCycleMedian"style=plot.style_linedisplay=display.none)

    // Dolgularύn renkleri ve tam %50 ώeffaflύk ayarύ
    fill(sctlscblcolor=color.new(color.red50), title="Short Cycle Fill")
    fill(mctlmcblcolor=color.new(color.green50), title="Medium Cycle Fill")
    ////////////////

    // ┌──────────────────────────────────────────────────────────────────────────────┐
    // │ 3. ΗέFT AYNALI OMURGA MOTORU (13 ve 34)                                      │
    // └──────────────────────────────────────────────────────────────────────────────┘
    float s_start_sabit 0.08
    float s_inc_sabit   
    0.05
    float s_max_sabit   
    0.2

    f_katman_ana
    (_start_inc_max_smooth) =>
        
    float _sar ta.sar(_start_inc_max)
        
    float _delta math.abs(close _sar)
        
    bool _is_up  close _sar
        float _raw_mirror 
    _is_up close _delta close _delta
        ta
    .hma(_raw_mirror_smooth)

    // GάNEή (32) VE AY (12) YΦRάNGELERέ
    float ayna_12 f_katman_ana(s_start_sabits_inc_sabits_max_sabit13)
    float ayna_32 f_katman_ana(s_start_sabits_inc_sabits_max_sabit34)

    bool makro_al_12 ayna_12 close
    color col_ayna_12 
    makro_al_12 ? (ayna_12 ayna_12[1] ? color.blue color.lime) : (ayna_12 ayna_12[1] ? color.yellow color.red)

    bool makro_al_32 ayna_32 close
    color col_ayna_32 
    makro_al_32 ? (ayna_32 ayna_32[1] ? color.blue color.lime) : (ayna_32 ayna_32[1] ? color.yellow color.red)

    aort= (ayna_12+ayna_32)/2
    bool is_sari_12 
    col_ayna_12 == color.yellow
    bool is_mavi_12 
    col_ayna_12 == color.blue
    bool is_sari_32 
    col_ayna_32 == color.yellow
    bool is_mavi_32 
    col_ayna_32 == color.blue

    bool ikisi_sari 
    is_sari_12 and is_sari_32
    bool ikisi_mavi 
    is_mavi_12 and is_mavi_32

    //plot(ayna_12, "Ayna έlk", color=col_ayna_12, linewidth=2, style=plot.style_stepline)
    //plot(ayna_32, "Ayna Son", color=col_ayna_32, linewidth=2, style=plot.style_stepline)
    plot(aort"@yφrόk@"color=col_ayna_32linewidth=3style=plot.style_stepline)
    /////////////////// 
    16.07.2024 - 10.12.2024

  7. reverse sinyalli-bar color ηalύώmasύ....
    PHP Code:
    //@version=5
    indicator("🌷"overlay=truemax_lines_count=500max_labels_count=500)

    // ─────────────────────────────────────────────────────────────────
    //  3. MTK 6-SAR DAέRE FORMU (TάM KATMANLAR)
    // ─────────────────────────────────────────────────────────────────
    grpHedef "SAR Ayarlarύ"
    sari_ayar input.float(0.005"Ayarlanabilir Sarύ SAR"step=0.001group=grpHedef)

    sar6_kutup ta.sar(0.0010.0010.2// 6. En Dip Kaya (Mor)
    sar5_sari  ta.sar(sari_ayarsari_ayar0.2// 5. Ayarlanabilir (Sarύ)
    sar4_mavi  ta.sar(0.010.010.2// 4. Artηύ (Mavi)
    sar3_yesil ta.sar(0.010.020.2// 3. Artηύ (Yeώil)
    sar2_kirm  ta.sar(0.010.030.2// 2. Kilit (Kύrmύzύ)
    sar1_beyaz ta.sar(0.040.040.2// 1. Kilit (Beyaz)

    // 6 SAR'ύn Tamamύ (Daire Formunda)
    plot(sar6_kutup"6. ",  color=color.new(color.red0),  style=plot.style_circleslinewidth=2)
    plot(sar5_sari,  "5. ",  color=color.new(color.red0), style=plot.style_circleslinewidth=2)
    plot(sar4_mavi,  "4. ",  color=color.new(color.yellow0),  style=plot.style_crosslinewidth=1)
    plot(sar3_yesil"3. ",  color=color.new(color.yellow0),  style=plot.style_crosslinewidth=1)
    plot(sar2_kirm,  "2. ",  color=color.new(color.yellow0),    style=plot.style_crosslinewidth=1)
    plot(sar1_beyaz"1.",   color=color.new(color.blue0),  style=plot.style_circleslinewidth=2)
    ///////

    // ─────────────────────────────────────────────────────────────────
    //  ORέJέNAL MATEMATέKSEL FONKSέYONLAR (HέΗ DOKUNULMADI)
    // ─────────────────────────────────────────────────────────────────
    cosh(float x) =>
        (
    math.exp(x) + math.exp(-x)) / 2

    acosh
    (float x) =>
        
    na math.log(math.sqrt(1))

    sinh(float x) =>
        (
    math.exp(x) - math.exp(-x)) / 2

    asinh
    (float x) =>
        
    math.log(math.sqrt(1))

    atan(float x) =>
        
    math.pi math.atan(x)

    chebyshevI(float srcint lenfloat ripple) =>
        
    0.0.0.chebyshev 0.
        a 
    := cosh(len acosh(/ (ripple)))
        
    := sinh(len asinh(ripple))
        
    := (b) / (b)
        
    chebyshev := (g) * src nz(chebyshev[1])
        
    chebyshev

    bool_to_float
    (bool source) =>
        
    source 0

    ema
    (source)=>
        var 
    float ema 0.0
        
    var int count 0
        count 
    := nz(count[1]) + 1
        ema 
    := (1.0 2.0 / (count 1.0)) * nz(ema[1]) + 2.0 / (count 1.0) * source
        ema

    atan2
    (yx) =>
        var 
    float angle 0.0
        
    if 0
            angle 
    := math.atan(x)
        else
            if 
    and >= 0
                angle 
    := math.atan(x) + math.pi
            
    else
                if 
    and 0
                    angle 
    := math.atan(x) - math.pi
                
    else
                    if 
    == and 0
                        angle 
    := math.pi 2
                    
    else
                        if 
    == and 0
                            angle 
    := -math.pi 2
        angle

    degrees
    (float source) =>
        
    source 180 math.pi

    tra
    ()=>
        
    atr ema(ta.tr)
        
    slope = (close close[10]) / (atr 10)
        
    angle_rad atan2(slope1)
        
    degrees degrees(angle_rad)
        
    source ta.sma((degrees high low), 2)

    mats(sourcelength) =>
        
    smooth 0.
        higher_high 
    math.max(math.sign(ta.change(ta.highest(length))), 0)
        
    lower_low math.max(math.sign(ta.change(ta.lowest(length)) * -1), 0)
        
    time_constant math.pow(ta.sma(bool_to_float(higher_high or lower_low), length), 2)
        
    smooth := nz(smooth[1] + time_constant * (source smooth[1]), source)

        
    wilders_period length 1
        atr 
    math.abs(nz(smooth[1]) - smooth)
        
    ma_atr ta.ema(atrwilders_period)
        
    delta_fast_atr ta.ema(ma_atrwilders_period) * length 0.4

        result 
    0.0
        
    if smooth nz(result[1])
            if 
    smooth delta_fast_atr result[1]
                
    result := result[1]
            else
                
    result := smooth delta_fast_atr
        
    else
            if 
    smooth delta_fast_atr result[1]
                
    result := result[1]
            else
                
    result := smooth delta_fast_atr
        result

    // ─────────────────────────────────────────────────────────────────
    //  3'Lά MOTOR AYARLARI VE HESAPLAMALARI
    // ─────────────────────────────────────────────────────────────────
    len1 input.int(5,  "1. Motor (Hύzlύ)")
    //len2 = input.int(20, "2. Motor (Orta)")
    len3 input.int(50"3. Motor (Yavaώ / Ana)")

    up_color   input.color(#00E676, "Yόkseliώ Rengi")
    down_color input.color(#FF1744, "Dόώόώ Rengi")

    // Eπim deπeri her bar iηin sadece BέR KEZ hesaplanύr (Hafύza bozulmamasύ iηin)
    src_tra tra()

    // 3 Farklύ Uzunluk iηin MATS Hesaplamasύ
    mats_1 mats(src_tralen1)
    //mats_2 = mats(src_tra, len2)
    mats_3 mats(src_tralen3)

    // Renk Belirleme (Orijinal koddaki gibi SMA(2) ile kύyaslama)
    sma_ref ta.sma(close2)
    c1 sma_ref mats_1 up_color down_color
    //c2 = sma_ref > mats_2 ? up_color : down_color
    c3 sma_ref mats_3 up_color down_color

    // ─────────────────────────────────────────────────────────────────
    //  GΦRSELLEήTέRME (ΗέZέMLER)
    // ─────────────────────────────────────────────────────────────────
    // 1. Motor (Saniye)
    plot(mats_1"άst"color=c1linewidth=1)

    // 2. Motor (Dakika)
    //plot(mats_2, "20", color=c2, linewidth=1)

    // 3. Motor (Akrep) - Orijinal Glow/Parlama efektiyle
    plot(mats_3"Alt"color=c3linewidth=1)
    //plot(mats_3, "MATS 50 Parlama 1", color=color.new(c3, 70), linewidth=5, editable=false)
    //plot(mats_3, "MATS 50 Parlama 2", color=color.new(c3, 85), linewidth=8, editable=false)
    /////////////////

    // ==========================================
    // 1. 5 KADEMELέ EXTENDED SAR MOTORU
    // ==========================================
    sarext(simple float start_value=0.0simple float offset_on_reverse=0.0,
           
    simple float af_init_long=0.02simple float af_long=0.02simple float af_max_long=0.20,
           
    simple float af_init_short=0.02simple float af_short=0.02simple float af_max_short=0.20) =>
        if 
    af_init_long 0
            runtime
    .error("AF init long must be >= 0")
        if 
    af_long 0
            runtime
    .error("AF long must be >= 0")
        if 
    af_max_long af_init_long
            runtime
    .error("AF max long must be >= AF init long")
        if 
    af_init_short 0
            runtime
    .error("AF init short must be >= 0")
        if 
    af_short 0
            runtime
    .error("AF short must be >= 0")
        if 
    af_max_short af_init_short
            runtime
    .error("AF max short must be >= AF init short")

        var 
    bool is_long true
        
    var float sar na
        
    var float ep na
        
    var float af af_init_long
        
    var float result na

        
    if bar_index == 0
            result 
    := na
        
    else if bar_index == 1
            
    if start_value 0
                is_long 
    := true
                sar 
    := math.abs(start_value)
            else if 
    start_value 0
                is_long 
    := false
                sar 
    := math.abs(start_value)
            else
                
    float plus_dm high high[1]
                
    float minus_dm low[1] - low
                
    if plus_dm 0
                    plus_dm 
    := 0
                
    if minus_dm 0
                    minus_dm 
    := 0
                is_long 
    := plus_dm minus_dm
                sar 
    := is_long low[1] : high[1]

            
    ep := is_long high low
            af 
    := is_long af_init_long af_init_short

            
    if is_long
                
    if sar low[1]
                    
    sar := low[1]
                if 
    sar low
                    sar 
    := low
            
    else
                if 
    sar high[1]
                    
    sar := high[1]
                if 
    sar high
                    sar 
    := high

            result 
    := is_long sar : -sar
        
    else
            
    float new_sar sar af * (ep sar)

            if 
    is_long
                new_sar 
    := math.min(new_sarlow[1])
                
    new_sar := math.min(new_sarlow[2])
                if 
    low new_sar
                    is_long 
    := false
                    new_sar 
    := ep
                    
    if offset_on_reverse != 0
                        new_sar 
    := new_sar offset_on_reverse
                    ep 
    := low
                    af 
    := af_init_short
                
    else
                    if 
    high ep
                        ep 
    := high
                        af 
    := math.min(af af_longaf_max_long)
            else
                
    new_sar := math.max(new_sarhigh[1])
                
    new_sar := math.max(new_sarhigh[2])
                if 
    high new_sar
                    is_long 
    := true
                    new_sar 
    := ep
                    
    if offset_on_reverse != 0
                        new_sar 
    := new_sar offset_on_reverse
                    ep 
    := high
                    af 
    := af_init_long
                
    else
                    if 
    low ep
                        ep 
    := low
                        af 
    := math.min(af af_shortaf_max_short)

            
    sar := new_sar
            result 
    := is_long new_sar : -new_sar
        result

    // έvme (AF) Deπerleri
    i_af_h1 0.20   // Hύzlύ 1
    i_af_h2 0.05   // Hύzlύ 2
    i_af_de 0.02   // Denge
    i_af_y1 0.005  // Yavaώ 1
    i_af_y2 0.001  // Yavaώ 2
    i_af_mx 0.2    

    // Motorlarύ Ηalύώtύr
    s_h1 sarext(0.00.0i_af_h1i_af_h1math.max(i_af_h1i_af_mx), i_af_h1i_af_h1math.max(i_af_h1i_af_mx))
    s_h2 sarext(0.00.0i_af_h2i_af_h2math.max(i_af_h2i_af_mx), i_af_h2i_af_h2math.max(i_af_h2i_af_mx))
    s_de sarext(0.00.0i_af_dei_af_demath.max(i_af_dei_af_mx), i_af_dei_af_demath.max(i_af_dei_af_mx))
    s_y1 sarext(0.00.0i_af_y1i_af_y1math.max(i_af_y1i_af_mx), i_af_y1i_af_y1math.max(i_af_y1i_af_mx))
    s_y2 sarext(0.00.0i_af_y2i_af_y2math.max(i_af_y2i_af_mx), i_af_y2i_af_y2math.max(i_af_y2i_af_mx))


    // ==========================================
    // 2. HAKέKέ AYNA (SέMETRέK HEDEF HESAPLAMASI)
    // ==========================================
    // Denge (0.02) motorunun mesafesini alύp fiyatύn karώύ tarafύna yansύtan Ayna Formόlό
    float s_de_abs math.abs(s_de)
    bool is_de_up s_de 0
    float delta_de 
    math.abs(close s_de_abs)
    float raw_mirror is_de_up close delta_de close delta_de
    float ayna_hma 
    ta.hma(raw_mirror55// Pόrόzsόzleώtirilmiώ Yansύma Hedefi


    // ==========================================

    // ┌──────────────────────────────────────────────────────────────────────────────┐
    // │ 3. ΗέFT AYNALI OMURGA MOTORU (12 ve 32)                                      │
    // └──────────────────────────────────────────────────────────────────────────────┘
    float s_start_sabit 0.08
    float s_inc_sabit   
    0.05
    float s_max_sabit   
    0.2

    f_katman_ana
    (_start_inc_max_smooth) =>
        
    float _sar ta.sar(_start_inc_max)
        
    float _delta math.abs(close _sar)
        
    bool _is_up  close _sar
        float _raw_mirror 
    _is_up close _delta close _delta
        ta
    .hma(_raw_mirror_smooth)

    // GάNEή (32) VE AY (12) YΦRάNGELERέ
    float ayna_12 f_katman_ana(s_start_sabits_inc_sabits_max_sabit22)
    float ayna_32 f_katman_ana(s_start_sabits_inc_sabits_max_sabit32)

    bool makro_al_12 ayna_12 close
    color col_ayna_12 
    makro_al_12 ? (ayna_12 ayna_12[1] ? color.blue color.lime) : (ayna_12 ayna_12[1] ? color.yellow color.red)

    bool makro_al_32 ayna_32 close
    color col_ayna_32 
    makro_al_32 ? (ayna_32 ayna_32[1] ? color.blue color.lime) : (ayna_32 ayna_32[1] ? color.yellow color.red)

    aort= (ayna_12+ayna_32)/2
    bool is_sari_12 
    col_ayna_12 == color.yellow
    bool is_mavi_12 
    col_ayna_12 == color.blue
    bool is_sari_32 
    col_ayna_32 == color.yellow
    bool is_mavi_32 
    col_ayna_32 == color.blue

    bool ikisi_sari 
    is_sari_12 and is_sari_32
    bool ikisi_mavi 
    is_mavi_12 and is_mavi_32

    //plot(ayna_12, "Ayna έlk", color=col_ayna_12, linewidth=2, style=plot.style_stepline)
    //plot(ayna_32, "Ayna Son", color=col_ayna_32, linewidth=2, style=plot.style_stepline)
    plot(aort"@yφrόk@"color=col_ayna_32linewidth=2style=plot.style_stepline)

    // ==========================================
    // ┌──────────────────────────────────────────────────────────────────────────────┐
    // │ 1. SAR MOTORLARI (HIZLI VE YAVAή)                                            │
    // └──────────────────────────────────────────────────────────────────────────────┘
    float yemre ta.sar(0.010.010.2
    float yusuf ta.sar(0.010.050.2)
    float fato ta.sar(0.010.090.2)
    float mf = (yemre yusuf fato) / 3

    // ==========================================
    // 5. KALKAN GάCά (MUM BOYAMA)
    // ==========================================
    int kalkan 0
    if close yemre 
        kalkan 
    += 1
    if close yusuf 
        kalkan 
    += 1
    if close fato 
        kalkan 
    += 1

    if close yemre and close mf
        kalkan 
    += 1
    if close yusuf and close mf
        kalkan 
    += 1
    if close fato and close mf
        kalkan 
    += 1

    color bar_col 
    na
    if kalkan >= 3
        bar_col 
    := close mf color.rgb(025513250) : color.rgb(2504450)
    else if 
    kalkan == 2
        bar_col 
    := color.rgb(215249)
    else
        
    bar_col := color.rgb(2123249)

    barcolor(bar_col)

    // ==========================================

    //////////////////

    //---------------------------------------------------------------------------------------------------------------------}
    // Constants
    //---------------------------------------------------------------------------------------------------------------------{
    color BULL_COLOR #089981
    color BEAR_COLOR #f23645

    //---------------------------------------------------------------------------------------------------------------------}
    // Inputs
    //---------------------------------------------------------------------------------------------------------------------{
    int   fastLengthInput       input.int(3"Fast Slope Length"minval 1group "Slopes")
    int   slowLengthInput       input.int(3"Slow Slope Length"minval 1group "Slopes")
    int   atrLengthInput        input.int(2"ATR Length"minval 1group "ATR Settings")
    float fastThresholdInput    input.float(1.0"Fast Slope Threshold (ATR Multiplier)"minval 0step 0.1group "Thresholds")
    float reverseThresholdInput input.float(2.0"Reverse Threshold (ATR Multiplier)"minval 0step 0.1group "Thresholds")

    //---------------------------------------------------------------------------------------------------------------------}
    // Calculations
    //---------------------------------------------------------------------------------------------------------------------{
    float atr ta.atr(atrLengthInput)

    var 
    float rollSeg     close
    var int   trend       1
    var float activeSlope 0.0
    var bool  isFastMode  false

    bool bullReversal 
    false
    bool bearReversal 
    false

    // Logic processing
    if not na(atr)
        
    float distFromSeg close rollSeg
        
        
    // Check for reversal
        
    bullReversal := trend == -and distFromSeg reverseThresholdInput atr
        bearReversal 
    := trend == and -distFromSeg reverseThresholdInput atr
        
        
    if bullReversal
            trend 
    := 1
        
    else if bearReversal
            trend 
    := -1
        
        
    // Check for speed change
        
    bool newIsFastMode math.abs(distFromSeg) > fastThresholdInput atr
        bool speedChanged  
    newIsFastMode != isFastMode
        
        
    // Freeze ATR and update activeSlope when trend or speed mode changes
        
    if bullReversal or bearReversal or speedChanged or activeSlope == 0.0
            isFastMode  
    := newIsFastMode
            activeSlope 
    := isFastMode atr fastLengthInput atr slowLengthInput
        
        
    // Update Rolling Segment with linear movement
        
    rollSeg := rollSeg + (trend activeSlope)
    else
        
    rollSeg := close

    //---------------------------------------------------------------------------------------------------------------------}
    // Visuals
    //---------------------------------------------------------------------------------------------------------------------{
    color trendColor trend == BULL_COLOR BEAR_COLOR

    //plotSeg   = plot(rollSeg, "Rolling Segment", color = trendColor, linewidth = 2)
    //plotPrice = plot(close, "Price Reference", display = display.none)

    // Reversal signals
    if bullReversal
        label
    .new(bar_index 5rollSeg"▲"color #00000000, textcolor = BULL_COLOR, style = label.style_label_up, size = size.huge)
    if bearReversal
        label
    .new(bar_index 5rollSeg"▼"color #00000000, textcolor = BEAR_COLOR, style = label.style_label_down, size = size.huge)

    //-----------------------------------------------------------------------------------------------------------}

    //////////////////

    // ─────────────────────────────────────────────────────────────────
    //  1. DέNAMέK MέZAN (έki Farklύ Akύntύ)
    // ─────────────────────────────────────────────────────────────────
    // 3-Bar (Hύzlύ Yόzey Akύntύsύ)
    ADAM3 close[1]
    TX3   ta.highest(high2)[1]
    RX3   ta.lowest(low2)[1]
    YGT3  = (ADAM3 RX3 TX3) / 3

    // 5-Bar (Aπύr Dip Akύntύsύ)
    ADAM5 close[1]
    TX5   ta.highest(high3)[1]
    RX5   ta.lowest(low3)[1]
    YGT5  = (ADAM5 RX5 TX5) / 3

    // ─────────────────────────────────────────────────────────────────
    //  2. MTK-1-2-3 DAέRE FORMU (PSAR MOTORU)
    // ─────────────────────────────────────────────────────────────────
    psar_oncu ta.sar(0.040.040.2// 1. Daire (Φncό)
    psar_hizli ta.sar(0.020.020.2// 2. Daire (Hύzlύ)
    psar_ana   ta.sar(0.010.010.2// 3. Daire (Ana Taώ)

    // PSAR motorlarύ fiyatύn neresinde? (Yφn onayύ)
    psar_bull = (close psar_oncu) and (close psar_hizli) and (close psar_ana)
    psar_bear = (close psar_oncu) and (close psar_hizli) and (close psar_ana)

    // ─────────────────────────────────────────────────────────────────
    //  3. SέNYAL MANTIΠI (KESέήέM + PSAR MUTABAKATI)
    // ─────────────────────────────────────────────────────────────────
    // Hύzlύ akύntύ, yavaώ akύntύyύ kesiyor
    akim_al_kesisimi  ta.crossover(YGT3YGT5)
    akim_sat_kesisimi ta.crossunder(YGT3YGT5)

    // Kusursuz nizam: Hem akύntύlar kesiώmeli, hem de 3'lό PSAR Daireleri bu yφnό desteklemeli!
    al_sinyali  akim_al_kesisimi and psar_bull
    sat_sinyali 
    akim_sat_kesisimi and psar_bear

    // ─────────────────────────────────────────────────────────────────
    //  4. GΦRSELLEήTέRME (ΗέZGέLER VE DAέRELER)
    // ─────────────────────────────────────────────────────────────────
    // έki Akύntύnύn Ηizimleri
    //plot(YGT3, "3-Bar Hύzlύ Akύntύ", color=color.new(color.aqua, 0), linewidth=2)
    //plot(YGT5, "5-Bar Yavaώ Akύntύ", color=color.new(color.orange, 0), linewidth=2)

    // MTK Daire Formu (Gφrsel Derinlik)
    //plot(psar_ana,   "3",  color=color.new(color.yellow, 0), style=plot.style_circles, linewidth=1)
    //plot(psar_hizli, "2", color=color.new(color.lime, 0), style=plot.style_circles, linewidth=1)
    //plot(psar_oncu,  "1",  color=color.new(color.white, 0), style=plot.style_circles, linewidth=1)

    // Sinyal Etiketleri
    plotshape(al_sinyali"AL"shape.triangleuplocation.belowbarcolor.yellowsize=size.smalltext="AL")
    plotshape(sat_sinyali"SAT"shape.triangledownlocation.abovebarcolor.aquasize=size.smalltext="SAT")
    //////////////////

    // έMZA
    var table ytd_table table.new(position.bottom_center11)
    if 
    barstate.islast
        table
    .cell(ytd_table00"(Aέ) Eπitim ηalύώmasύdύr. Yatύrύm tavsiyesi KULLANILAMAZ."text_color=color.new(color.white00), text_size=size.normal)
    ///////////////// 
    16.07.2024 - 10.12.2024

  8. deneme...
    PHP Code:
    //@version=5
    indicator("."overlay=truemax_lines_count=500max_labels_count=500)

    // ─────────────────────────────────────────────────────────────────
    //  3. MTK 6-SAR DAέRE FORMU (TάM KATMANLAR)
    // ─────────────────────────────────────────────────────────────────
    grpHedef "SAR Ayarlarύ"
    sari_ayar input.float(0.005"Ayarlanabilir Sarύ SAR"step=0.001group=grpHedef)

    sar6_kutup ta.sar(0.0010.0010.2// 6. En Dip Kaya (Mor)
    sar5_sari  ta.sar(sari_ayarsari_ayar0.2// 5. Ayarlanabilir (Sarύ)
    sar4_mavi  ta.sar(0.010.010.2// 4. Artηύ (Mavi)
    sar3_yesil ta.sar(0.010.020.2// 3. Artηύ (Yeώil)
    sar2_kirm  ta.sar(0.010.030.2// 2. Kilit (Kύrmύzύ)
    sar1_beyaz ta.sar(0.040.040.2// 1. Kilit (Beyaz)

    // 6 SAR'ύn Tamamύ (Daire Formunda)
    //plot(sar6_kutup, "6. ",  color=color.new(color.red, 0),  style=plot.style_circles, linewidth=2)
    plot(sar5_sari,  "SAR5. ",  color=color.new(color.yellow0), style=plot.style_crosslinewidth=1)
    plot(sar4_mavi,  "SAR4. ",  color=color.new(color.yellow0),  style=plot.style_crosslinewidth=1)
    plot(sar3_yesil"SAR3. ",  color=color.new(color.yellow0),  style=plot.style_crosslinewidth=1)
    plot(sar2_kirm,  "SAR2. ",  color=color.new(color.yellow0),    style=plot.style_crosslinewidth=1)
    plot(sar1_beyaz"SAR1.",   color=color.new(color.yellow0),  style=plot.style_crosslinewidth=1)
    ///////

    // ─────────────────────────────────────────────────────────────────

    // ==========================================
    // 1. 5 KADEMELέ EXTENDED SAR MOTORU
    // ==========================================
    sarext(simple float start_value=0.0simple float offset_on_reverse=0.0,
           
    simple float af_init_long=0.02simple float af_long=0.02simple float af_max_long=0.20,
           
    simple float af_init_short=0.02simple float af_short=0.02simple float af_max_short=0.20) =>
        if 
    af_init_long 0
            runtime
    .error("AF init long must be >= 0")
        if 
    af_long 0
            runtime
    .error("AF long must be >= 0")
        if 
    af_max_long af_init_long
            runtime
    .error("AF max long must be >= AF init long")
        if 
    af_init_short 0
            runtime
    .error("AF init short must be >= 0")
        if 
    af_short 0
            runtime
    .error("AF short must be >= 0")
        if 
    af_max_short af_init_short
            runtime
    .error("AF max short must be >= AF init short")

        var 
    bool is_long true
        
    var float sar na
        
    var float ep na
        
    var float af af_init_long
        
    var float result na

        
    if bar_index == 0
            result 
    := na
        
    else if bar_index == 1
            
    if start_value 0
                is_long 
    := true
                sar 
    := math.abs(start_value)
            else if 
    start_value 0
                is_long 
    := false
                sar 
    := math.abs(start_value)
            else
                
    float plus_dm high high[1]
                
    float minus_dm low[1] - low
                
    if plus_dm 0
                    plus_dm 
    := 0
                
    if minus_dm 0
                    minus_dm 
    := 0
                is_long 
    := plus_dm minus_dm
                sar 
    := is_long low[1] : high[1]

            
    ep := is_long high low
            af 
    := is_long af_init_long af_init_short

            
    if is_long
                
    if sar low[1]
                    
    sar := low[1]
                if 
    sar low
                    sar 
    := low
            
    else
                if 
    sar high[1]
                    
    sar := high[1]
                if 
    sar high
                    sar 
    := high

            result 
    := is_long sar : -sar
        
    else
            
    float new_sar sar af * (ep sar)

            if 
    is_long
                new_sar 
    := math.min(new_sarlow[1])
                
    new_sar := math.min(new_sarlow[2])
                if 
    low new_sar
                    is_long 
    := false
                    new_sar 
    := ep
                    
    if offset_on_reverse != 0
                        new_sar 
    := new_sar offset_on_reverse
                    ep 
    := low
                    af 
    := af_init_short
                
    else
                    if 
    high ep
                        ep 
    := high
                        af 
    := math.min(af af_longaf_max_long)
            else
                
    new_sar := math.max(new_sarhigh[1])
                
    new_sar := math.max(new_sarhigh[2])
                if 
    high new_sar
                    is_long 
    := true
                    new_sar 
    := ep
                    
    if offset_on_reverse != 0
                        new_sar 
    := new_sar offset_on_reverse
                    ep 
    := high
                    af 
    := af_init_long
                
    else
                    if 
    low ep
                        ep 
    := low
                        af 
    := math.min(af af_shortaf_max_short)

            
    sar := new_sar
            result 
    := is_long new_sar : -new_sar
        result

    // έvme (AF) Deπerleri
    i_af_h1 0.20   // Hύzlύ 1
    i_af_h2 0.05   // Hύzlύ 2
    i_af_de 0.02   // Denge
    i_af_y1 0.005  // Yavaώ 1
    i_af_y2 0.001  // Yavaώ 2
    i_af_mx 0.2    

    // Motorlarύ Ηalύώtύr
    s_h1 sarext(0.00.0i_af_h1i_af_h1math.max(i_af_h1i_af_mx), i_af_h1i_af_h1math.max(i_af_h1i_af_mx))
    s_h2 sarext(0.00.0i_af_h2i_af_h2math.max(i_af_h2i_af_mx), i_af_h2i_af_h2math.max(i_af_h2i_af_mx))
    s_de sarext(0.00.0i_af_dei_af_demath.max(i_af_dei_af_mx), i_af_dei_af_demath.max(i_af_dei_af_mx))
    s_y1 sarext(0.00.0i_af_y1i_af_y1math.max(i_af_y1i_af_mx), i_af_y1i_af_y1math.max(i_af_y1i_af_mx))
    s_y2 sarext(0.00.0i_af_y2i_af_y2math.max(i_af_y2i_af_mx), i_af_y2i_af_y2math.max(i_af_y2i_af_mx))


    // ==========================================
    // 2. HAKέKέ AYNA (SέMETRέK HEDEF HESAPLAMASI)
    // ==========================================
    // Denge (0.02) motorunun mesafesini alύp fiyatύn karώύ tarafύna yansύtan Ayna Formόlό
    float s_de_abs math.abs(s_de)
    bool is_de_up s_de 0
    float delta_de 
    math.abs(close s_de_abs)
    float raw_mirror is_de_up close delta_de close delta_de
    float ayna_hma 
    ta.hma(raw_mirror55// Pόrόzsόzleώtirilmiώ Yansύma Hedefi


    // ==========================================

    // ┌──────────────────────────────────────────────────────────────────────────────┐
    // │ 3. ΗέFT AYNALI OMURGA MOTORU (12 ve 32)                                      │
    // └──────────────────────────────────────────────────────────────────────────────┘
    float s_start_sabit 0.08
    float s_inc_sabit   
    0.05
    float s_max_sabit   
    0.2

    f_katman_ana
    (_start_inc_max_smooth) =>
        
    float _sar ta.sar(_start_inc_max)
        
    float _delta math.abs(close _sar)
        
    bool _is_up  close _sar
        float _raw_mirror 
    _is_up close _delta close _delta
        ta
    .hma(_raw_mirror_smooth)

    // GάNEή (32) VE AY (12) YΦRάNGELERέ
    float ayna_12 f_katman_ana(s_start_sabits_inc_sabits_max_sabit13)
    float ayna_32 f_katman_ana(s_start_sabits_inc_sabits_max_sabit21)

    bool makro_al_12 ayna_12 close
    color col_ayna_12 
    makro_al_12 ? (ayna_12 ayna_12[1] ? color.blue color.lime) : (ayna_12 ayna_12[1] ? color.yellow color.red)

    bool makro_al_32 ayna_32 close
    color col_ayna_32 
    makro_al_32 ? (ayna_32 ayna_32[1] ? color.blue color.lime) : (ayna_32 ayna_32[1] ? color.yellow color.red)

    aort= (ayna_12+ayna_32)/2
    bool is_sari_12 
    col_ayna_12 == color.yellow
    bool is_mavi_12 
    col_ayna_12 == color.blue
    bool is_sari_32 
    col_ayna_32 == color.yellow
    bool is_mavi_32 
    col_ayna_32 == color.blue

    bool ikisi_sari 
    is_sari_12 and is_sari_32
    bool ikisi_mavi 
    is_mavi_12 and is_mavi_32

    //plot(ayna_12, "Ayna έlk", color=col_ayna_12, linewidth=2, style=plot.style_stepline)
    //plot(ayna_32, "Ayna Son", color=col_ayna_32, linewidth=2, style=plot.style_stepline)
    plot(aort"@yφrόk@"color=col_ayna_32linewidth=3style=plot.style_stepline)
    //////////////


    // ─────────────────────────────────────────────────────────────────
    //  GέRDέLER (Inputs)
    // ─────────────────────────────────────────────────────────────────
    // Hύzlύ Blok (13)
    len_hizli input.int(13'Hύzlύ Regresyon (έη Zύrh)'group="Hύzlύ (13)")
    up_color_hizli input.color(color.rgb(1422321650), 'Hύzlύ Yόkseliώ'group="Hύzlύ (13)")
    down_color_hizli input.color(color.rgb(1328522650), 'Hύzlύ Dόώόώ'group="Hύzlύ (13)")

    // Yavaώ Blok (34)
    len_yavas input.int(34'Yavaώ Regresyon (Dύώ Zύrh)'group="Yavaώ (34)")
    up_color_yavas input.color(color.rgb(14223216100), 'Yavaώ Yόkseliώ (ήeffaf)'group="Yavaώ (34)")
    down_color_yavas input.color(color.rgb(13285226100), 'Yavaώ Dόώόώ (ήeffaf)'group="Yavaώ (34)")

    // ─────────────────────────────────────────────────────────────────
    //  DOΠRUSAL REGRESYON HESAPLAMASI (Linear Regression)
    // ─────────────────────────────────────────────────────────────────
    calc_lr(srclen) =>
        
    ta.linreg(srclen0)

    // Hύzlύ (13) Hesaplamalarύ
    lr_open_h calc_lr(openlen_hizli)
    lr_high_h calc_lr(highlen_hizli)
    lr_low_h  calc_lr(lowlen_hizli)
    lr_close_hcalc_lr(closelen_hizli)

    // Yavaώ (34) Hesaplamalarύ
    lr_open_y calc_lr(openlen_yavas)
    lr_high_y calc_lr(highlen_yavas)
    lr_low_y  calc_lr(lowlen_yavas)
    lr_close_ycalc_lr(closelen_yavas)

    // ─────────────────────────────────────────────────────────────────
    //  FέTέLLERέ GΦVDEYE HAPSETME (Blok Mum άretimi)
    // ─────────────────────────────────────────────────────────────────
    // Yavaώ (34) Blok Mantύπύ
    is_up_y lr_close_y >= lr_open_y
    blok_open_y  
    is_up_y lr_low_y  lr_high_y
    blok_close_y 
    is_up_y lr_high_y lr_low_y
    color_y 
    is_up_y up_color_yavas down_color_yavas

    // Hύzlύ (13) Blok Mantύπύ
    is_up_h lr_close_h >= lr_open_h
    blok_open_h  
    is_up_h lr_low_h  lr_high_h
    blok_close_h 
    is_up_h lr_high_h lr_low_h
    color_h 
    is_up_h up_color_hizli down_color_hizli

    // ─────────────────────────────────────────────────────────────────
    //  ΗέZέM (Ηift Zύrh Katmanύ)
    // ─────────────────────────────────────────────────────────────────
    plotcandle(blok_open_ylr_high_ylr_low_yblok_close_ytitle 'DENGE'color color_ywickcolor color_ybordercolor color_y)
    plotcandle(blok_open_hlr_high_hlr_low_hblok_close_htitle 'HIZLI',  color color_hwickcolor color_hbordercolor color_h)


    /////////////////
    //  AYARLAR: Asimetrik Damύtma Deπerleri
    // ─────────────────────────────────────────────────────────────────
    ilk_damitma input.int(34"1. Damύtma (Kalύn Elek - EMA)"minval=1tooltip="Ηύplak fiyatύn gόrόltόsόnό emen ilk aπύr filtre.")
    ikinci_damitma input.int(13"2. Damύtma (έnce Tόlbent - EMA)"minval=1tooltip="Heikin Ashi sonrasύ tepki hύzύnύ belirleyen ince filtre.")

    // ─────────────────────────────────────────────────────────────────
    //  1. ήAM ΗELέΠέ: ASέMETRέK SIVI ZIRH [Saf Blok Versiyonu]
    // ─────────────────────────────────────────────────────────────────
    // Birinci Damύtma (Kalύn Elek: Φrn. 20 veya 34)
    o16 ta.ema(openilk_damitma)
    c16 ta.ema(closeilk_damitma)
    h16 ta.ema(highilk_damitma)
    l16 ta.ema(lowilk_damitma)

    // Heikin Ashi Havuzu
    haclose6 = (o16 h16 l16 c16) / 4
    var float haopen6 na
    haopen6 
    := na(haopen6[1]) ? (o16 c16) / : (haopen6[1] + haclose6[1]) / 2
    hahigh6 
    math.max(h16math.max(haopen6haclose6))
    halow6  math.min(l16math.min(haopen6haclose6))

    // έkinci Damύtma (έnce Tόlbent: Φrn. 10 veya 13)
    o26 ta.ema(haopen6ikinci_damitma)
    c26 ta.ema(haclose6ikinci_damitma)
    h26 ta.ema(hahigh6ikinci_damitma)
    l2_val6 ta.ema(halow6ikinci_damitma)

    zirh_yesil6 = (c26 >= o26)
    zirh_renk6 zirh_yesil6 color.new(color.lime100) : color.new(color.red100)

    // ─────────────────────────────────────────────────────────────────
    //  FέTέLLERέ GΦVDEYE HAPSETME (Kalύba Dφkme)
    // ─────────────────────────────────────────────────────────────────
    // Eπer Yόkseliώse (Yeώil): Gφvde en dipten (halow) baώlar, en tepede (hahigh) biter.
    // Eπer Dόώόώse (Kύrmύzύ): Gφvde en tepeden (hahigh) baώlar, en dipte (halow) biter.
    blok_open6  zirh_yesil6 l2_val6 h26
    blok_close6 
    zirh_yesil6 h26 l2_val6

    // ΗέZέM (Artύk fitiller yok, saf pόrόzsόz bloklar var)
    plotcandle(blok_open6h26l2_val6blok_close6title="YAVAή"color=zirh_renk6wickcolor=zirh_renk6bordercolor=zirh_renk6editable=false)

    // ─────────────────────────────────────────────────────────────────

    // ─────────────────────────────────────────────────────────────────
    //  1. LONESOME SAR MATEMATέΠέ (BAΠIMSIZ FONKSέYON)
    // ─────────────────────────────────────────────────────────────────
    // Bu fonksiyon, her ηaπrύldύπύnda kendi iηinde baπύmsύz bir hafύza (var) oluώturur.
    f_ozel_sar(_start_inc_max) =>
        var 
    int trend 0
        
    var float sar_val 0.0
        
    var float ep 0.0
        
    var float af 0.0

        
    if trend == and not na(high[1])
            
    trend   := high >= high[1] or low >= low[1] ? : -1
            sar_val 
    := trend low[1] : high[1]
            
    ep      := trend high[1] : low[1]
            
    af      := _start
        
    else 
            
    float nextsar sar_val
            
    if trend 0
                
    if high[1] > ep
                    ep 
    := high[1]
                    
    af := math.min(_maxaf _inc)
                
                
    nextsar := sar_val af * (ep sar_val)
                
    nextsar := math.min(math.min(low[1], low[2]), nextsar)
                
                
    // Dφnόώ (Reversal) Aώaπύ
                
    if nextsar low
                    trend   
    := -1
                    nextsar 
    := ep
                    ep      
    := low
                    af      
    := _start
            
    else 
                if 
    low[1] < ep
                    ep 
    := low[1]
                    
    af := math.min(_maxaf _inc)
                
                
    nextsar := sar_val af * (ep sar_val)
                
    nextsar := math.max(math.max(high[1], high[2]), nextsar)
                
                
    // Dφnόώ (Reversal) Yukarύ
                
    if nextsar high
                    trend   
    := 1
                    nextsar 
    := ep
                    ep      
    := high
                    af      
    := _start
                    
            sar_val 
    := nextsar
        
        
    // Fonksiyon, hesaplanan SAR deπerini ve mevcut trend yφnόnό dύώarύ verir
        
    [sar_valtrend]

    // ─────────────────────────────────────────────────────────────────
    //  2. MTK 1-2-3 DAέRE MOTORUNUN ΗALIήTIRILMASI
    // ─────────────────────────────────────────────────────────────────
    // Baώlangύη: 0.01, Artύώ (έvme): 0.1
    [sar_02trend_02] = f_ozel_sar(0.0.10.2// έη Daire
    [sar_03trend_03] = f_ozel_sar(0.0.010.5// Orta Daire
    [sar_04trend_04] = f_ozel_sar(0.0.0010.9// Dύώ Daire

    // ─────────────────────────────────────────────────────────────────
    //  3. GΦRSELLEήTέRME (FUήYA HALKALAR)
    // ─────────────────────────────────────────────────────────────────
    // 3 Daire de Fuώya renginde, kalύnlύklarύ ile birbirinden ayrύlύyor.
    plot(sar_04"3"color=color.fuchsialinewidth=1style=plot.style_steplinebr)
    plot(sar_03"2",color=color.redlinewidth=1style=plot.style_steplinebr)
    plot(sar_02"1",  color=color.whitelinewidth=1style=plot.style_steplinebr)
    //////////////// 
    16.07.2024 - 10.12.2024

Sayfa 389/393 έlkέlk ... 289339379387388389390391 ... SonSon

Yer έmleri

Yer έmleri

Gφnderi Kurallarύ

  • Yeni konu aηamazsύnύz
  • Konulara cevap yazamazsύnύz
  • Yazύlara ek gφnderemezsiniz
  • Yazύlarύnύzύ deπiώtiremezsiniz
  •