PHP Code:
//@version=6
indicator("."overlay=truemax_bars_back=1000)

// ==========================================
// 1. DL MOTORU ÇEKİRDEĞİ
// ==========================================
tanh(v) => (math.exp(-v)) / (math.exp(-v))
td(s)   => nz((nz(s[1])) / nz(s[1]))
w_c = array.from(22.4271, -26.69174.93719.0349, -10.6929, -38.288010.0500, -44.7063, -17.816330.5662, -33.995414.5017, -43.2865, -13.387424.7080, -14.392928.4830, -22.9793, -7.6582, -5.650528.8379, -26.35440.520625.0049, -17.8832, -4.8113, -4.0364, -8.3327, -1.15710.4667, -22.05333.6525, -4.39042.103020.027211.5101, -0.4150)
n_in = array.from(tanh(td(open)), tanh(td(high)), tanh(td(low)), tanh(td(close)))

f_calc_dl(n_arrw_arr) =>
    
float out 0.0
    
for 0 to 5
        float s 
0.0
        
for 0 to 3
            s 
+= array.get(n_arrj) * array.get(w_arr, (5) + j)
        
out += tanh(+ array.get(w_arr, (5) + 4)) * array.get(w_arr30 i)
    
tanh(out + array.get(w_arr36))

float dl_val f_calc_dl(n_inw_c)

// ==========================================
// 3. REAKTÖR VE ENERJİ TÜPLERİ
// ==========================================
float mtk_p89 ta.sar(0.0020.020.2)
float tork89 ta.sma(math.abs(mtk_p89 nz(mtk_p89[1])), 50) * 10
float doluluk 
math.abs(close mtk_p89) / (tork89 == tork89) * 100

float mtk_p 
ta.sar(0.020.020.2)
float tork ta.sma(math.abs(mtk_p nz(mtk_p[1])), 100) * 10
float bar_ust 
close mtk_p mtk_p tork mtk_p tork
plotcandle
(bar_ustmtk_pbar_ustmtk_p"KAPasite"color=color.rgb(25525525575), bordercolor=na)
plotcandle(closemtk_p89closemtk_p89"GÜÇlenme"color=doluluk >= 100 color.rgb(333100) : color.rgb(333100), bordercolor=na)

// ==========================================
///////////İMZA//////////////
var table ytd_table table.new(position.bottom_center11)
if 
barstate.islast
    table
.cell(ytd_table00"Eğitim çalışmasıdır.  YATIRIM TAVSİYESİ olarak KULLANILAMAZ."text_color=color.new(color.white00), text_size=size.normal)
// ==========================================
// 1. 9-SAR HESAPLAMA (ANA ÇEKİRDEK)
// ==========================================
// Sarı (0.02), Mavi (0.015), Kırmızı (0.01)
kv1 ta.sar(0.020.020.2), kv2 ta.sar(0.0020.0020.02), kv3 ta.sar(0.00020.00020.002)
ov1 ta.sar(0.0150.0150.15), ov2 ta.sar(0.00150.00150.015), ov3 ta.sar(0.000150.000150.0015)
uv1 ta.sar(0.010.010.1), uv2 ta.sar(0.0010.0010.01), uv3 ta.sar(0.00010.00010.001)
  
plot(kv1"1"color=color.yellowstyle=plot.style_circleslinewidth=1)
plot(ov1"2"color=color.bluestyle=plot.style_circleslinewidth=1)
plot(uv1"3"color=color.redstyle=plot.style_circleslinewidth=1)
float KV11 ta.sar(0.020.0020.2)     
float UV11   ta.sar(0.010.0010.1)  
plot(KV11"1-DÖNGÜ"color=color.whitestyle=plot.style_crosslinewidth=1)
plot(UV11"2-DÖNGÜ"color=color.whitestyle=plot.style_crosslinewidth=1)
float KV111 ta.sar(0.00020.0020.2)    
plot(KV111"3-DÖNGÜ"color=color.whitestyle=plot.style_crosslinewidth=1)
// kısa vade Ortalama Hattı
float sur_agresif78 ta.sar(0.020.020.2)
float sur_sabirli78  ta.sar(0.0150.0150.15)
float sur_patron78  ta.sar(0.010.010.1)
float trident_avg78 math.avg(sur_agresif78sur_sabirli78sur_patron78)
plot(trident_avg78"TREND"color=close trident_avg78 #33ff00 : #ff0000, linewidth=2, style=plot.style_line)
// Sıkışma Motoru
float sur_hizli     ta.sar(0.020.020.2)
float sur_sabirli   ta.sar(0.0020.020.2// Senin sarsılmaz mizanın
float band_mesafe   math.abs(sur_hizli sur_sabirli)
float ort_mesafe    ta.sma(band_mesafe2)
bool sikisma_var    band_mesafe < (ort_mesafe 0.2)
// 2. PUANLAMA (9 PUAN ÜZERİNDEN - ANLIK & ORTA)
// ==========================================
// Anlıklar 1p, Ortalar 2p (Analar 3p değerinde ama rehber olarak ayrıldı)
int p_anlik = (close kv1 0) + (close ov1 0) + (close uv1 0)
int p_orta  = (close kv2 0) + (close ov2 0) + (close uv20)
int total_puan p_anlik p_orta

// 3. LİKİT KANAL & AKSİYON RENGİ
// ==========================================
float omurga_hizli = (kv1 kv2 kv3 ov1 ov2 ov3 uv1 uv2uv3) / 9
float omurga_yavas 
= (kv3 ov3 uv3) / 3

// ===============NİHAYET SON YÖRÜK 2026 YUNUS EMREYE HEDİYEMDİR.===========================
// Sıkışma Şiddeti (0-100 arası bir değer üretir)
//float sikisma_siddeti = math.min(100, (1 - (band_mesafe / (ort_mesafe > 0 ? ort_mesafe : 1))) * 100)
// ==========================================
// WIDGET (KONTROL PANELİ) ENTEGRASYONU
// ==========================================
var table widget table.new(position.top_right211bgcolor color.new(color.black20), border_width 1border_color color.gray)

if 
barstate.islast
    
// Başlıklar
    
table.cell(widget00"SİSTEM VERİSİ"text_color color.whitebgcolor color.rgb(446280))
    
table.cell(widget10"DEĞER / DURUM"text_color color.whitebgcolor color.rgb(446280))

    
// 1. DL Motoru Çıkışı (Zeka)
    
table.cell(widget01"DL Motor Gücü"text_color color.white)
    
table.cell(widget11str.tostring(dl_val"#.####"), text_color dl_val color.lime color.red)

    
// 2. Reaktör Doluluk (Enerji)
    
table.cell(widget02"Enerji Doluluk"text_color color.white)
    
table.cell(widget12"%" str.tostring(doluluk"#.#"), text_color doluluk >= 100 color.lime color.orange)

    
// 3. Toplam Sistem Puanı (Mizan)
    
table.cell(widget03"Sistem Puanı"text_color color.white)
    
table.cell(widget13str.tostring(total_puan) + " / 9"bgcolor total_puan >= color.new(color.green00) : color.new(color.red00))

    
// 5. Ana Trend İstikameti
    
table.cell(widget05"Ana Trend"text_color color.white)
    
table.cell(widget15close trident_avg78 "YUKARI" "AŞAĞI"bgcolor close trident_avg78 color.new(color.green00) : color.new(color.red00))

// ==========================================
// DÖNGÜ - KAPASİTE TEMAS ANALİZÖRÜ (MULTI-TOUCH)
// ==========================================

// 1. Kapasite Duvarlarını Tanımla (Mekânın Sınırları)
float k_alt math.min(mtk_pbar_ust)
float k_ust math.max(mtk_pbar_ust)

// 2. Hassasiyet (Temas Toleransı - Fiyatın binde 1.5'i)
// Çok katı olursak "1-2-3"ü yakalamak zorlaşır, o yüzden hafif esneklik (rahmet) payı bırakıyoruz.
float tol close 0.00015

// 3. Her Bir Döngünün Temas Kontrolü
// Hem alta hem üste bakıyoruz, çünkü mizan her iki uçta da kurulabilir.
bool t1 = (math.abs(k_alt KV11) < tol) or (math.abs(k_ust KV11) < tol)
bool t2 = (math.abs(k_alt UV11) < tol) or (math.abs(k_ust UV11) < tol)
bool t3 = (math.abs(k_alt KV111) < tol) or (math.abs(k_ust KV111) < tol)

// 4. Metin Oluşturma (String Builder)
string s_temas ""

if t1
    s_temas 
:= "1"

if t2
    
// Eğer s_temas doluysa (yani 1 varsa) yanına tire koy, yoksa direkt "2" yaz
    
s_temas := s_temas != "" s_temas "-2" "2"

if t3
    
// Eğer s_temas doluysa (1 veya 2 varsa) yanına tire koy, yoksa direkt "3" yaz
    
s_temas := s_temas != "" s_temas "-3" "3"

// Hiçbiri yoksa
if s_temas == ""
    
s_temas := "YOK"

// 5. Renk Ataması (Durumun Ciddiyetine Göre)
color c_temas color.gray
if s_temas == "1" or s_temas == "2" or s_temas == "3"
    
c_temas := color.yellow // Tekli Temas (Uyarı)
else if s_temas == "YOK"
    
c_temas := color.gray   // Sakin
else
    
c_temas := color.lime   // Çoklu Temas (1-2, 1-3, 1-2-3) -> KAVUŞMA!

// ==========================================
// WIDGET TABLOSUNA YAZDIRMA
// ==========================================

table.cell(widget08"Döngü Teması"text_color color.white)
table.cell(widget18s_temasbgcolor s_temas != "YOK" color.new(c_temas30) : color.new(color.black0), text_color color.whitetext_size size.small)

// 1. Üçlü Konum Kontrolü
// Fiyatın HEPSİNİN üstünde olması (AL Safı)
bool saf_al = (close kv1) and (close ov1) and (close uv1)

// Fiyatın HEPSİNİN altında olması (SAT Safı)
bool saf_sat = (close kv1) and (close ov1) and (close uv1)

// 2. Durum Metni ve Rengi
string saf_msg  "DAĞINIK / NÖTR"
color saf_renk  color.gray

if saf_al
    saf_msg  
:= "AL"
    
saf_renk := color.lime
else if saf_sat
    saf_msg  
:= "SAT"
    
saf_renk := color.red

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

table.cell(widget010"PSAR "text_color color.white)
table.cell(widget110saf_msgbgcolor saf_msg != "DAĞINIK / NÖTR" saf_renk color.new(color.gray80), text_color color.whitetext_size size.small)

//////////