CODESCRIPT

İş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.

!=a b

İki değerin farklı olup olmadığını sorar. `not (a == b)` ile aynı işi yapar ama daha kısa okunur.

CODESCRIPT
farkli = close != open
plot(farkli ? 1 : 0, "farklı mı")

İki değerin farklı olup olmadığını sorar.

%a b

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.

CODESCRIPT
plot(barIndex % 5, "beşe bölümünden kalan")

Bölümden kalanı verir.

*a b

İki sayıyı çarpar. Bir göstergeyi katsayıyla ölçeklemek ya da bant genişliği hesaplamak gibi işlerde kullanılır.

CODESCRIPT
plot(atr(14) * 2, "iki katı aralık")

İki değeri çarpar.

*=ad değer

Değişkeni çarpar; `ad := ad * değer` yazmanın kısası. Bileşik büyüme hesaplarında kullanılır.

CODESCRIPT
var carpim = 1.0
carpim *= 1.01
plot(carpim, "bileşik")

Değişkeni çarpar ve sonucu ona yazar.

+a b

İ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.

CODESCRIPT
plot(high + low, "yüksek artı düşük")

İki değeri toplar; metinlerde uç uca ekler.

+=ad değer

Değişkenin üstüne ekler; `ad := ad + değer` yazmanın kısası. Birikim tutarken okunaklı olur.

CODESCRIPT
var toplam = 0.0
toplam += close
plot(toplam, "birikim")

Değişkene ekler ve sonucu ona yazar.

-a b

Soldakinden sağdakini çıkarır. Tek başına bir değerin önüne yazılırsa işaretini ters çevirir.

CODESCRIPT
plot(high - low, "bar aralığı")

Soldakinden sağdakini çıkarır.

-=ad değer

Değişkenden çıkarır; `ad := ad - değer` yazmanın kısası.

CODESCRIPT
var kalan = 1000.0
kalan -= 1
plot(kalan, "azalan")

Değişkenden çıkarır ve sonucu ona yazar.

.nesnealan

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.

CODESCRIPT
b = bb(close, 20, 2.0)
plot(b.upper, "üst bant")

Bir kaydın alanına ya da bir nesnenin işlevine erişir.

/a b

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.

CODESCRIPT
plot((high + low) / 2, "barın ortası")

Soldakini sağdakine böler.

/=ad değer

Değişkeni böler; `ad := ad / değer` yazmanın kısası.

CODESCRIPT
var bolum = 1000.0
bolum /= 1.01
plot(bolum, "azalan")

Değişkeni böler ve sonucu ona yazar.

:koşul ? doğruysa yanlışsa

`?` 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.

CODESCRIPT
plot(close > open ? high : low, "yöne göre uç")

Koşullu seçimin iki dalını ayırır.

:=ad değer

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.

CODESCRIPT
var sayac = 0
sayac := sayac + 1
plot(sayac, "bar sayısı")

Kurulmuş bir değişkenin değerini değiştirir.

<a b

Soldaki değer sağdakinden küçükse doğru verir. Eşitlik durumunu da kabul etmek istiyorsan `<=` kullanılır.

CODESCRIPT
plot(close < open ? 1 : 0, "düşen bar")

Soldaki değer sağdakinden küçükse doğru.

<=a b

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.

CODESCRIPT
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.

=ad değer

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.

CODESCRIPT
uzunluk = 20
plot(sma(close, uzunluk), "ortalama")

Değişkeni ilk kez kurar; her barda yeniden hesaplanır.

==a b

İ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.

CODESCRIPT
esit = close == open
plot(esit ? 1 : 0, "eşit mi")

İki değerin eşit olup olmadığını sorar.

=>seçenek sonuç

`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.

CODESCRIPT
yon = close > open ? 1 : -1
metin = switch yon {
    1 => "yukarı"
    => "aşağı"
}
plot(close, "fiyat")

İşlevin gövdesini başlığından ayırır.

>a b

Soldaki değer sağdakinden büyükse doğru verir. Eşitlik durumunu da kabul etmek istiyorsan `>=` kullanılır.

CODESCRIPT
plot(close > open ? 1 : 0, "yükselen bar")

Soldaki değer sağdakinden büyükse doğru.

>=a b

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.

CODESCRIPT
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şul doğruysa : yanlışsa

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.

CODESCRIPT
plot(close > open ? high : low, "yöne göre uç")

Koşul doğruysa ilk değeri, değilse ikinciyi verir.