//@version=5
indicator(title="ADX TREND İNDİKATÖRÜ", shorttitle="ADX TREND İNDİKATÖRÜ", overlay=false, precision=2)
// --- 1. Parametreler ---
cmf_length = input.int(20, title="CMF Periyodu", minval=1)
dmi_length = input.int(14, title="DMI Periyodu", minval=1)
adx_smoothing = input.int(14, title="ADX Düzleştirme", minval=1)
adx_threshold = input.int(25, title="ADX Eşik Seviyesi (SAT için)", minval=1)
adx_exit_threshold = input.int(50, title="ADX Çıkış Seviyesi (AL için)", minval=1)
// --- 2. Chaikin Money Flow (CMF) Hesaplama ---
//mf_multiplier = ((close - low) - (high - close)) / (high - low)
//mf_volume = mf_multiplier * volume
//cmf_value = math.sum(mf_volume, cmf_length) / math.sum(volume, cmf_length)
// --- 3. DMI (Directional Movement Index) Hesaplama ---
[dmp, dmn, adx] = ta.dmi(dmi_length, adx_smoothing)
// --- 4. Çizimler ---
// Arkaplanı renklendirme (ADX 25 üstünde ise hafif mor)
bgcolor(adx > adx_threshold ? color.new(color.purple, 95) : na, title="Güçlü Trend Arkaplanı")
// DMI Çizgileri
plot(dmp, title="D+ (Pozitif Yön)", color=color.new(color.blue, 30), linewidth=2)
plot(dmn, title="D- (Negatif Yön)", color=color.new(color.orange, 30), linewidth=2)
plot(adx, title="ADX", color=color.new(color.purple, 20), linewidth=3)
// ADX Eşik Çizgileri
hline(adx_threshold, title="ADX SAT Eşiği ", color=color.new(color.red, 70), linestyle=hline.style_dashed, linewidth=1)
hline(adx_exit_threshold, title="ADX AL Eşiği", color=color.new(color.green, 70), linestyle=hline.style_dashed, linewidth=1)
// --- 5. ADX Bazlı AL/SAT Sinyalleri ---
// ADX 25'in üzerine çıktığında SAT sinyali
sellCondition = ta.crossover(adx, adx_threshold)
if (sellCondition)
label.new(bar_index, adx, text="SAT", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.normal)
// İsteğe bağlı: Uyarı sesi
// alert("SAT Sinyali: ADX 25'i yukarı kesti", alert.freq_once_per_bar)
// ADX 50'nin altına düştüğünde AL sinyali
buyCondition = ta.crossunder(adx, adx_exit_threshold)
if (buyCondition)
label.new(bar_index, adx, text="AL", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.normal)
// İsteğe bağlı: Uyarı sesi
// alert("AL Sinyali: ADX 50'nin altına indi", alert.freq_once_per_bar)
// --- 6. Orijinal Sinyaller (İsteğe bağlı) ---
// CMF değerini kullanarak sinyal üretme (opsiyonel)
// longCondition = ta.crossover(cmf_value, 0)
// if (longCondition)
// label.new(bar_index, cmf_value, text="Uzun", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
//
// shortCondition = ta.crossunder(cmf_value, 0)
// if (shortCondition)
// label.new(bar_index, cmf_value, text="Kısa", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// ANA GRAFİK ÜZERİNE SİNYALLERİ EKLEYEN BÖLÜM
if buyCondition
label.new(bar_index,close, "AL", xloc.bar_index, yloc.belowbar, color.green, label.style_label_up, color.rgb(255, 255, 255), size.normal, text.align_center, na, font.family_default, true)
if sellCondition
label.new(bar_index,close, "SAT", xloc.bar_index, yloc.abovebar, color.red, label.style_label_down, color.white, size.normal, text.align_center, na, font.family_default, true)
bgcolor(buyCondition ? color.new(color.purple, 80) : na, title="Güçlü Trend Arkaplanı",force_overlay = true)
bgcolor(sellCondition ? color.new(color.orange, 80) : na, title="Güçlü Trend Arkaplanı",force_overlay = true)
ADX göstergesinin 25 (Parametre Değiştirilebilir) ve 50 (Parametre Değiştirilebilir) seviyelerini kullanarak, trendin güçlenmesini SATIŞ, aşırı güçlenip zayıflamaya başlamasını ise ALIŞ sinyali olarak yorumlayan, alt pencerede çalışan bir trend analiz ve sinyal aracıdır. Aynı zamanda kodun içinde bulunan force_overlay = true ile aynı anda hem alt sekmede hem de üst sekmede indikatör parametrelerini görüntüleme olanağı sağlar.