SEBZECI v1.0 - Taze Taze EMAs!

 avatar
BulanikSu
javascript
a month ago
5.4 kB
80
Indexable
//@version=6
indicator("🥗 SEBZECI v1.0 - Taze Taze EMAs!", overlay=true)

// =================== SABIT DEĞERLER ===================
var GRUP_KEK = "EMA Ayarları"
var GRUP_LOL = "Stil Ayarları"
var GRUP_BRUH = "Etiket Ayarları"

var PERIYOT_MINIK = 34
var PERIYOT_KOCAMAN = 55

// =================== GIRIS PARAMETRELERI ===================
// EMA Ayarları
patatesGoster = input.bool(false, "34 Periyot EMA Göster", group=GRUP_KEK)
domatesGoster = input.bool(false, "55 Periyot EMA Göster", group=GRUP_KEK)
salatalikUzat = input.bool(true, "Çizgi Uzatmayı Göster", group=GRUP_KEK)
havucGoster = input.bool(false, "Önceki Çizgiyi Göster", group=GRUP_KEK)

// Stil Ayarları
cizgiTipi = input.string("solid", "Çizgi Tipi", options=["solid", "dotted", "dashed"], group=GRUP_LOL)
kalinlik = input.int(2, "Çizgi Kalınlığı", minval=1, maxval=4, group=GRUP_LOL)
eskiKalinlik = input.int(1, "Geçmiş Çizgi Kalınlığı", minval=1, maxval=4, group=GRUP_LOL)
patatesRenk = input.color(color.blue, "34 EMA Renk", group=GRUP_LOL)
domatesRenk = input.color(color.green, "55 EMA Renk", group=GRUP_LOL)

// Etiket Ayarları
etiketKonum = input.string("left", "Etiket Yönü", options=["left", "center", "right"], group=GRUP_BRUH)
etiketPozisyon = input.string("son", "Etiket Pozisyonu", options=["baş", "orta", "son"], group=GRUP_BRUH)
etiketBoyut = input.string("normal", "Yazı Boyutu", options=["tiny", "small", "normal", "large", "huge"], group=GRUP_BRUH)
patatesYazi = input.color(color.white, "34 EMA Yazı Rengi", group=GRUP_BRUH)
domatesYazi = input.color(color.white, "55 EMA Yazı Rengi", group=GRUP_BRUH)

// Zaman Ayarları
zamanDilimi = input.timeframe(defval='', title='PERİYOT', group="Tarama yapmak istediğiniz periyotu seçin")

// =================== YARDIMCI FONKSIYONLAR ===================
cizgiStiliAl(tip) =>
    switch tip
        "solid" => line.style_solid
        "dotted" => line.style_dotted
        "dashed" => line.style_dashed

etiketStiliAl(konum) =>
    switch konum
        "left" => label.style_label_left
        "center" => label.style_label_center
        "right" => label.style_label_right

etiketBoyutuAl(boyut) =>
    switch boyut
        "tiny" => size.tiny
        "small" => size.small
        "normal" => size.normal
        "large" => size.large
        "huge" => size.huge

etiketOfsetiAl(pozisyon) =>
    switch pozisyon
        "baş" => 0
        "orta" => 3
        "son" => 6

// =================== HESAPLAMALAR ===================
// Zaman seçimi
secilen_zaman = zamanDilimi == "" ? timeframe.period : zamanDilimi

// Verileri al
[_, lahmacunFiyat] = request.security(syminfo.tickerid, secilen_zaman, [close, close])
[_, pideFiyat] = request.security("BIST:XU100", secilen_zaman, [close, close])

// Göreceli güç hesaplama
gucumKuvvetim = lahmacunFiyat / pideFiyat

// EMA hesaplamaları
patatesEMA = ta.ema(gucumKuvvetim, PERIYOT_MINIK)
domatesEMA = ta.ema(gucumKuvvetim, PERIYOT_KOCAMAN)

// Fiyat ayarlı EMA'lar
patatesEMA_Fiyat = patatesEMA * pideFiyat
domatesEMA_Fiyat = domatesEMA * pideFiyat

// =================== CIZIMLER ===================
// Eski çizgiler
plot(patatesGoster and havucGoster ? patatesEMA_Fiyat : na, 
     color=color.new(patatesRenk, 70), 
     linewidth=eskiKalinlik, 
     title="34 EMA Geçmiş")

plot(domatesGoster and havucGoster ? domatesEMA_Fiyat : na, 
     color=color.new(domatesRenk, 70), 
     linewidth=eskiKalinlik, 
     title="55 EMA Geçmiş")

// Yeni çizgiler ve etiketler
var line patatesCizgi = na
var line domatesCizgi = na
var label patatesEtiket = na
var label domatesEtiket = na

if patatesGoster
    line.delete(patatesCizgi)
    label.delete(patatesEtiket)
    
    if salatalikUzat
        patatesCizgi := line.new(bar_index, patatesEMA_Fiyat, bar_index + 6, patatesEMA_Fiyat, 
             color=patatesRenk, 
             width=kalinlik, 
             style=cizgiStiliAl(cizgiTipi))
    else
        patatesCizgi := line.new(bar_index - 1, patatesEMA_Fiyat[1], bar_index, patatesEMA_Fiyat, 
             color=patatesRenk, 
             width=kalinlik, 
             style=cizgiStiliAl(cizgiTipi))
    
    etiketOfset = salatalikUzat ? etiketOfsetiAl(etiketPozisyon) : 0
    patatesEtiket := label.new(bar_index + etiketOfset, patatesEMA_Fiyat, 
         text="34 EMA: " + str.tostring(patatesEMA_Fiyat, "#.##"), 
         color=patatesRenk, 
         textcolor=patatesYazi,
         style=etiketStiliAl(etiketKonum),
         size=etiketBoyutuAl(etiketBoyut))

if domatesGoster
    line.delete(domatesCizgi)
    label.delete(domatesEtiket)
    
    if salatalikUzat
        domatesCizgi := line.new(bar_index, domatesEMA_Fiyat, bar_index + 6, domatesEMA_Fiyat, 
             color=domatesRenk, 
             width=kalinlik, 
             style=cizgiStiliAl(cizgiTipi))
    else
        domatesCizgi := line.new(bar_index - 1, domatesEMA_Fiyat[1], bar_index, domatesEMA_Fiyat, 
             color=domatesRenk, 
             width=kalinlik, 
             style=cizgiStiliAl(cizgiTipi))
    
    etiketOfset = salatalikUzat ? etiketOfsetiAl(etiketPozisyon) : 0
    domatesEtiket := label.new(bar_index + etiketOfset, domatesEMA_Fiyat, 
         text="55 EMA: " + str.tostring(domatesEMA_Fiyat, "#.##"), 
         color=domatesRenk, 
         textcolor=domatesYazi,
         style=etiketStiliAl(etiketKonum),
         size=etiketBoyutuAl(etiketBoyut))
Leave a Comment