İşleçler
21 işleç. Atama, karşılaştırma, hesap ve koşul işaretleri. Her birinin ne yaptığı ve çalışan örneği.
İki değerin farklı olup olmadığını sorar. `not (a == b)` ile aynı işi yapar ama daha kısa okunur.
farkli = close != open plot(farkli ? 1 : 0, "farklı mı")
İki değerin farklı olup olmadığını sorar.
Bölmeden kalanı verir. Her N barda bir iş yapmak için kullanışlıdır: kalan sıfırsa o bara denk gelmişsindir.
plot(barIndex % 5, "beşe bölümünden kalan")
Bölümden kalanı verir.
İki sayıyı çarpar. Bir göstergeyi katsayıyla ölçeklemek ya da bant genişliği hesaplamak gibi işlerde kullanılır.
plot(atr(14) * 2, "iki katı aralık")
İki değeri çarpar.
Değişkeni çarpar; `ad := ad * değer` yazmanın kısası. Bileşik büyüme hesaplarında kullanılır.
var carpim = 1.0 carpim *= 1.01 plot(carpim, "bileşik")
Değişkeni çarpar ve sonucu ona yazar.
İki sayıyı toplar. Seri değerlerde bar bar toplama yapar: iki göstergeyi toplarsan her barda o barın değerleri toplanır. Metinlerde ise uç uca ekler.
plot(high + low, "yüksek artı düşük")
İki değeri toplar; metinlerde uç uca ekler.
Değişkenin üstüne ekler; `ad := ad + değer` yazmanın kısası. Birikim tutarken okunaklı olur.
var toplam = 0.0 toplam += close plot(toplam, "birikim")
Değişkene ekler ve sonucu ona yazar.
plot(high - low, "bar aralığı")
Soldakinden sağdakini çıkarır.
var kalan = 1000.0 kalan -= 1 plot(kalan, "azalan")
Değişkenden çıkarır ve sonucu ona yazar.
Bir kaydın alanına ya da bir sabit kümesinin üyesine erişir. Birden çok değer döndüren göstergelerde sonucun parçalarını böyle alırsın; renk ve biçim sabitleri de aynı yazımla okunur.
b = bb(close, 20, 2.0) plot(b.upper, "üst bant")
Bir kaydın alanına ya da bir nesnenin işlevine erişir.
Soldakini sağdakine böler. ⚠ Bölen sıfır olursa sonuç `na` olur; oran hesaplarken paydanın sıfır olabileceği durumu düşünmek gerekir.
plot((high + low) / 2, "barın ortası")
Soldakini sağdakine böler.
var bolum = 1000.0 bolum /= 1.01 plot(bolum, "azalan")
Değişkeni böler ve sonucu ona yazar.
`?` ile başlayan seçimin iki yarısını ayırır: solunda koşul doğruysa verilecek değer, sağında yanlışsa verilecek değer durur. Tek başına kullanılmaz.
plot(close > open ? high : low, "yöne göre uç")
Koşullu seçimin iki dalını ayırır.
Zaten kurulmuş bir değişkenin değerini değiştirir. `var` ile kurulan bir değişkeni değiştirmenin tek yolu budur; `=` yazarsan yeni bir değişken kurmuş olursun ve barlar arası taşınan değer kaybolur. Bir sayacı artırmak, bir zirveyi güncellemek hep bununla yapılır.
var sayac = 0 sayac := sayac + 1 plot(sayac, "bar sayısı")
Kurulmuş bir değişkenin değerini değiştirir.
Soldaki değer sağdakinden küçükse doğru verir. Eşitlik durumunu da kabul etmek istiyorsan `<=` kullanılır.
plot(close < open ? 1 : 0, "düşen bar")
Soldaki değer sağdakinden küçükse doğru.
Soldaki değer sağdakinden küçük ya da ona eşitse doğru verir. Bir eşiğe değmeyi de saymak istediğinde `<` yerine bunu yazarsın.
plot(close <= open ? 1 : 0, "düşen ya da eşit")
Küçük ya da eşitse doğru — sınır değeri de sayar.
Bir değişkene değer verir ve o değişkeni ilk kez kurar. Her barda yeniden hesaplanır: bir önceki barın değerini taşımaz. Değeri barlar boyunca korumak istiyorsan `var` ile kurup `:=` ile değiştirirsin. ⚠ Eşitlik sınamak için değil — onun için `==` var.
uzunluk = 20 plot(sma(close, uzunluk), "ortalama")
Değişkeni ilk kez kurar; her barda yeniden hesaplanır.
İki değerin eşit olup olmadığını sorar, sonucu doğru ya da yanlıştır. ⚠ Tek `=` değer verir, çift `==` sorar; koşul yazarken karıştırılması sık yapılan bir yanlıştır.
esit = close == open plot(esit ? 1 : 0, "eşit mi")
İki değerin eşit olup olmadığını sorar.
`switch` içinde bir seçeneği karşılığına bağlar. Solunda karşılaştırılacak değer, sağında o değer tuttuğunda verilecek sonuç durur. Solu boş bırakılan satır, hiçbir seçenek tutmadığında çalışır.
yon = close > open ? 1 : -1 metin = switch yon { 1 => "yukarı" => "aşağı" } plot(close, "fiyat")
İşlevin gövdesini başlığından ayırır.
Soldaki değer sağdakinden büyükse doğru verir. Eşitlik durumunu da kabul etmek istiyorsan `>=` kullanılır.
plot(close > open ? 1 : 0, "yükselen bar")
Soldaki değer sağdakinden büyükse doğru.
Soldaki değer sağdakinden büyük ya da ona eşitse doğru verir. Bir eşiğe değmeyi de saymak istediğinde `>` yerine bunu yazarsın.
plot(close >= open ? 1 : 0, "yükselen ya da eşit")
Büyük ya da eşitse doğru — sınır değeri de sayar.
Koşula göre iki değerden birini seçer. Tek bir değer seçmek için `if` bloğu yazmaktan kısadır ve doğrudan bir hesabın içine konabilir. Peş peşe yazılarak birkaç kademe de kurulabilir. İkinci yarısı `:` ile ayrılır.
plot(close > open ? high : low, "yöne göre uç")
Koşul doğruysa ilk değeri, değilse ikinciyi verir.