//@version=5
indicator("Çoklu Zaman Dilimli EMA'lar", overlay=true)
// Kullanıcı girdileri
ema1_length = input.int(34, title="1. EMA Uzunluğu", minval=1)
// 1. EMA mevcut zaman diliminde olacak, bu yüzden zaman dilimi seçimi kaldırıldı
ema2_length = input.int(13, title="2. EMA Uzunluğu", minval=1)
ema2_tf = input.string("75", title="2. EMA Zaman Dilimi", options=["1", "5", "15", "25", "30", "45", "60", "75", "120", "240", "1D", "1W", "1M"])
// Zaman dilimi formatını düzeltme fonksiyonu
format_timeframe(tf) =>
if tf == "1"
"1"
else if tf == "5"
"5"
else if tf == "15"
"15"
else if tf == "25"
"25"
else if tf == "30"
"30"
else if tf == "45"
"45"
else if tf == "60"
"60"
else if tf == "75"
"75"
else if tf == "120"
"120"
else if tf == "240"
"240"
else if tf == "1D"
"1D"
else if tf == "1W"
"1W"
else if tf == "1M"
"1M"
else
"1D" // Varsayılan
// 2. EMA için zaman dilimini formatla
formatted_tf = format_timeframe(ema2_tf)
// 2. EMA için güvenlik sorgusu (koşullu yapıların dışında)
ema2_source = request.security(syminfo.tickerid, formatted_tf, close, gaps=barmerge.gaps_on)
// EMA'ları hesapla - 1. EMA mevcut zaman diliminde
ema1 = ta.ema(close, ema1_length)
ema2 = ta.ema(ema2_source, ema2_length)
// AL/SAT koşulları
al_kosulu = close > ema1 and close < ema2
sat_kosulu = close < ema1 and close > ema2
// EMA'ları çiz
plot(ema1, color=color.blue, linewidth=2, title="EMA 1 (Mevcut)")
plot(ema2, color=color.red, linewidth=2, title="EMA 2")
// EMA periyot bilgilerini label olarak göster
if barstate.islast
// 1. EMA için label
label.new(bar_index, ema1, text=str.tostring(ema1_length),
color=color.blue, textcolor=color.white, style=label.style_label_left,
yloc=yloc.price, size=size.normal)
// 2. EMA için label
label.new(bar_index, ema2, text=str.tostring(ema2_length),
color=color.red, textcolor=color.white, style=label.style_label_left,
yloc=yloc.price, size=size.normal)
// Al/Sat sinyallerini göster
plotshape(al_kosulu, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="AL Sinyali")
plotshape(sat_kosulu, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="SAT Sinyali")
// Grafik üzerinde bilgi gösterimi
var table info_table = table.new(position.top_right, 4, 7, bgcolor=color.white, border_width=1)
if barstate.islast
table.cell(info_table, 0, 0, "1. EMA", bgcolor=color.new(color.purple, 70))
table.cell(info_table, 1, 0, str.tostring(ema1_length) + " EMA", bgcolor=color.new(color.gray, 70))
table.cell(info_table, 0, 1, "Zaman Dilimi:", bgcolor=color.new(color.purple, 70))
table.cell(info_table, 1, 1, "Mevcut", bgcolor=color.new(color.gray, 70))
table.cell(info_table, 0, 2, "Değer:", bgcolor=color.new(color.purple, 70))
table.cell(info_table, 1, 2, str.tostring(ema1, "#.##"), bgcolor=color.new(color.gray, 70))
table.cell(info_table, 2, 0, "2. EMA", bgcolor=color.new(color.purple, 70))
table.cell(info_table, 3, 0, str.tostring(ema2_length) + " EMA", bgcolor=color.new(color.gray, 70))
table.cell(info_table, 2, 1, "Zaman Dilimi:", bgcolor=color.new(color.purple, 70))
table.cell(info_table, 3, 1, format_timeframe(ema2_tf), bgcolor=color.new(color.gray, 70))
table.cell(info_table, 2, 2, "Değer:", bgcolor=color.new(color.purple, 70))
table.cell(info_table, 3, 2, str.tostring(ema2, "#.##"), bgcolor=color.new(color.gray, 70))
// Sinyal durumu bilgisi
table.cell(info_table, 0, 3, "Sinyal Durumu:", bgcolor=color.new(color.yellow, 70))
if al_kosulu
table.cell(info_table, 1, 3, "AL", bgcolor=color.new(color.green, 70))
else if sat_kosulu
table.cell(info_table, 1, 3, "SAT", bgcolor=color.new(color.red, 70))
else
table.cell(info_table, 1, 3, "NÖTR", bgcolor=color.new(color.gray, 70))
Bu kod, TradingView için çoklu zaman dilimli EMA (Exponential Moving Average - Üssel Hareketli Ortalama) göstergesi oluşturan bir Pine Script kodudur. İşlevlerini detaylıca açıklayayım:
İki farklı EMA'yı farklı zaman dilimlerinde hesaplayarak grafik üzerinde gösterir ve bunların kesişimlerine göre al-sat sinyalleri üretir.
1. EMA: Mevcut zaman diliminde hesaplanır (örneğin, 5 dakikalık grafikteyseniz 5 dakikalık verilerle)
2. EMA: Kullanıcının seçtiği farklı bir zaman diliminde hesaplanır (örneğin, 75 dakika, 4 saat vb.)
ema1_length: 1. EMA için periyot uzunluğu (varsayılan 34)
ema2_length: 2. EMA için periyot uzunluğu (varsayılan 13)
ema2_tf: 2. EMA'nın hesaplanacağı zaman dilimi (75 dakika gibi 13 farklı seçenek)
AL Sinyali: Fiyat 1. EMA'nın ÜSTÜNDE ve 2. EMA'nın ALTINDAYSA (yeşil üçgen)
SAT Sinyali: Fiyat 1. EMA'nın ALTINDA ve 2. EMA'nın ÜSTÜNDEYSE (kırmızı üçgen)
EMA Çizgileri: Mavi (1. EMA) ve Kırmızı (2. EMA) çizgiler
Periyot Etiketleri: Her EMA'nın yanında periyot değerleri
Bilgi Tablosu: Sağ üstte detaylı bilgi paneli:
EMA periyotları
Zaman dilimleri
Güncel EMA değerleri
Mevcut sinyal durumu (AL/SAT/NÖTR)
Kısa vadeli trendi (1. EMA) ile uzun vadeli trendi (2. EMA, farklı zaman diliminde) karşılaştırır
Fiyatın her iki EMA'ya göre konumuna dayalı trend geçiş sinyalleri verir
Çoklu zaman dilimi analiziyle daha güvenilir sinyaller hedeflenir
Trend Takibi: Farklı zaman dilimlerindeki trendleri aynı anda görürsünüz
Zamanlama Sinyalleri: Küçük zaman diliminde al-sat noktalarını belirlersiniz
Direnç/Destek: EMA'lar dinamik destek/direnç seviyeleri olarak çalışır
Örnek Senaryo: 5 dakikalık grafikte, 34 periyotluk EMA (mavi) ve 75 dakikalık 13 periyotluk EMA (kırmızı) ile işlem fırsatlarını tespit edebilirsiniz.