Matematik
33 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.
Sayının işaretini atar, uzaklığını verir. İki değerin birbirine ne kadar uzak olduğunu yön gözetmeden ölçerken kullanılır. Seri verilirse her bar için ayrı hesaplanır.
Mutlak değer.
Not
İşareti atar, büyüklüğü tutar; hem skaler hem seride eleman bazlı çalışır.
Ne zaman kullanılır
İşaret önemsizken büyüklüğü ölçmek için: değişim miktarı, sapma, fitil uzunluğu. Yönü de korumak istiyorsanız sign ile birlikte.
plot(abs(change(close, 1)))
Bar başına fiyat değişiminin mutlak büyüklüğü (yönsüz).
Ark-kosinüs (radyan). Sonuc: 1.047197551
x'in ark-kosinüsü (radyan, 0..π).
Not
Aralık dışı girdi na üretmesin diye önce [-1, 1]'e kırpılır. Sonuç radyandır; dereceye çevirmek için todegrees.
Ne zaman kullanılır
Geometrik açı hesapları ve normalize edilmiş korelasyon/benzerlik açıya çevrilirken.
plot(todegrees(acos(1)))
acos(1) = 0 radyan = 0 derece.
Ark-sinüs (radyan). Sonuc: 0.5235987756
x'in ark-sinüsü (radyan, -π/2..π/2).
Not
Aralık dışı girdi na üretmesin diye önce [-1, 1]'e kırpılır. Sonuç radyandır (todegrees ile dereceye).
Ne zaman kullanılır
Geometrik açı ve faz hesaplarında; normalize bir oranı açıya çevirirken.
plot(todegrees(asin(1)))
asin(1) = π/2 radyan = 90 derece.
Ark-tanjant (radyan). Sonuc: 0.7853981634
x'in ark-tanjantı (radyan, -π/2..π/2).
Not
Tek argümanlı; bir eğimin (Δy/Δx) açısını verir. İşaret/çeyrek duyarlılığı gereken açı için atan2 kullanın.
Ne zaman kullanılır
Bir çizginin eğimini açıya çevirirken (trend eğimi, kanal açısı).
plot(todegrees(atan(change(close, 1))))
Bar başına fiyat değişiminin eğim açısı (derece).
İki argümanlı ark-tanjant (çeyrek-duyarlı). Sonuc: 0.7853981634
(x, y) noktasının açısı (radyan, -π..π; çeyrek-duyarlı).
Not
İki argümanlı ark-tanjant: atan'dan farkı, işaretleri kullanıp doğru çeyreği (-π..π) vermesidir. Sonuç radyandır.
Ne zaman kullanılır
Yön açısı hesaplarken (iki eksenli değişim → açı), atan'ın çeyrek kör kalmasını istemediğinde.
plot(todegrees(atan2(1, 1)))
atan2(1, 1) = π/4 radyan = 45 derece.
Argümanların ortalaması (eleman bazlı). ⚠ Bu fonksiyon adlı argüman kabul etmez; değerleri SIRAYLA yazın.
Eleman bazlı ortalama.
Not
İkiden fazla argüman alabilir.
Ne zaman kullanılır
İki ya da daha çok değeri/serisi eleman bazlı ortalamak için. Tek bir seriyi zaman boyunca ortalamak istiyorsanız sma kullanın.
plot(avg(high, low, close))
high, low ve close'un bar-bazlı ortalaması (hlc3 ile aynı).
Mantıksal değere çevirir: sıfır/boş → false, sıfır-dışı → true. Sonuç asla boş kalmaz; seri olarak 1/0 taşınır.
Sıfır/na → false, sıfır-dışı → true.
Not
Bu dilde bool ASLA na değildir: bool(na) = false. Skaler girdi gerçek mantıksal, seri girdi 1/0 (na→0) döner. Son-değere çökertme yok.
Ne zaman kullanılır
Sayısal bir değeri/seriyi mantıksal koşula çevirmek için (0 mı değil mi). na'yı güvenle false saymak istediğinde.
plot(bool(volume) ? 1 : 0)
Hacim sıfır/na ise 0, aksi halde 1.
Yukarı yuvarlar (tam sayı).
Yukarı yuvarlanmış tam değer.
Not
Yukarı (artı sonsuza) yuvarlar: ceil(2.1) = 3. Eleman bazlıdır.
Ne zaman kullanılır
Yukarı (artı sonsuza) tam sayıya yuvarlamak — üst kademe, gereken minimum adım sayısı.
plot(ceil(close / 10) * 10)
Kapanışı üstteki 10'un katına çıkarır.
Değeri [lo, hi] aralığına sıkıştırır.
[lo, hi] aralığına sıkıştırılmış değer.
Not
x'i [lo, hi] aralığına sıkıştırır; alt/üst sınırların dışını sınıra çeker.
Ne zaman kullanılır
Bir değeri [lo, hi] aralığına sıkıştırmak — göstergeyi 0..100'de tutmak, aykırı değerleri kesmek. Tek taraflı sınır için max/min yeter.
plot(clamp(rsi(close, 14), 30, 70))
RSI'yı 30-70 bandına kısıtlar; taşan uçları keser.
Kosinüs (radyan).
Kosinüs.
Not
Girdi radyandır. Çıktı -1 ile 1 arasındadır. Eleman bazlıdır.
Ne zaman kullanılır
sin ile birlikte döngü/faz modellemede (90° kaymış eş). Girdi radyandır.
plot(cos(0))
cos(0) = 1 (sabit).
e üssü (e^x).
e sayısının x. kuvveti.
Not
e üzeri x; logaritmanın tersidir. Eleman bazlıdır.
Ne zaman kullanılır
e üzeri x — logaritmanın tersi. Üstel ağırlıklandırma ve log-getiriyi geri çevirmede.
plot(exp(log(close)))
log'un tersi close'u geri verir (kimlik kontrolü).
NA değerleri serideki SON BİLİNEN (na-olmayan) değerle doldurur — ileri-taşıma (forward-fill). nz sabit-değerle (0/y) doldurur; fixnan seriye göre DEĞİŞKEN son-değeri taşır. İlk geçerli-değere kadar na kalır.
Aynı uzunlukta seri: her na, o noktaya kadarki son na-olmayan değerle doldurulur (ilk geçerliye kadar na).
Not
nz ile karıştırmayın: nz(x)/nz(x,y) na yerine SABİT değer koyar (0 ya da y). fixnan(x) na yerine serideki SON BİLİNEN değeri koyar (ileri-taşıma, ffill) — sabit değil, veriye göre değişir.
Ne zaman kullanılır
Aralıklı/seyrek bir seriyi (ör. yalnız bazı barlarda hesaplanan değer) sürekli hale getirmek için — son değer bir sonraki güncellemeye kadar korunur.
plot(fixnan(iff(barstate.isconfirmed, close, na)))
Boş kalan barlarda son geçerli değeri sürdürür; çizgi kopmaz, düz devam eder.
Sayısal değeri ondalık sayıya çevirir (seri/skaler; na korunur).
Değeri ondalıklı (float) sayıya çevirir (na korunur).
Not
Tip netliği için; sayısal bir değeri açıkça ondalık olarak işaretler. na girdi na kalır. Zaten ondalıklı değerlerde etkisizdir.
Ne zaman kullanılır
Bir tam sayıyı ya da tip belirsiz bir değeri ondalık aritmetiğe sokmadan önce açıkça float'a çevirmek istediğinde.
plot(float(3))
3 tam sayısını 3.0 ondalığına çevirir.
Sayıyı aşağıya, kendisinden küçük en yakın tam sayıya indirir. Negatif sayılarda da aşağı gider: -2,3 için -3 verir. Lot sayısı gibi tam olması gereken değerlerde, hiçbir zaman fazlaya yuvarlamamak için kullanılır.
Aşağı yuvarlanmış tam değer.
Not
Aşağı (eksi sonsuza) yuvarlar: floor(-2.1) = -3. Sıfıra doğru kırpan int'ten farklıdır.
Ne zaman kullanılır
Aşağı (eksi sonsuza) tam sayıya yuvarlamak — kademe/kutu indeksi, tam lot hesabı. Sıfıra doğru kırpma için int farklıdır (negatiflerde).
plot(floor(close / 10) * 10)
Kapanışı alttaki 10'un katına indirir (fiyat kademesi).
Ondalığı SIFIRA doğru atarak tam sayıya çevirir (int(10.9)=10, int(-10.9)=-10; seri/skaler; na korunur).
Ondalığı sıfıra doğru atarak tam sayıya çevirir (na korunur).
Not
Sıfıra doğru kırpar: int(10.9)=10, int(-10.9)=-10. Aşağı yuvarlama için floor farklıdır (negatiflerde). na girdi na kalır.
Ne zaman kullanılır
Bir değeri indeks/sayaç olarak kullanmadan önce ondalığı atmak için. Eleman bazlı seride de çalışır.
plot(int(close))
Kapanışın ondalıksız (sıfıra doğru kırpılmış) tam kısmı.
Doğal logaritma.
Not
Doğal logaritma (taban e). Girdi ≤0 ise tanımsızdır. Eleman bazlıdır.
Ne zaman kullanılır
Doğal logaritma (taban e). Logaritmik getiri (log(close/prev(close,1))) ve üstel büyümeyi doğrusallaştırmada. 10 tabanı için log10.
plot(log(close / prev(close, 1)))
Bar başına logaritmik getiri.
10 tabanında logaritma.
10 tabanlı logaritma; x<=0 ise na.
Not
10 tabanlı logaritma. Girdi ≤0 ise tanımsızdır. Eleman bazlıdır.
Ne zaman kullanılır
10 tabanlı logaritma — büyüklük mertebesi (ondalık basamak sayısı), log ölçekli gösterge. Doğal log için log.
plot(log10(volume))
Hacmin 10 tabanlı logaritması (büyüklük mertebesi).
math.pi / e / phi / rphi / sqrt2 / sqrt3
Matematik sabitleri (nokta ile erişilir): pi=3.14159..., e=2.71828..., phi=altın oran 1.61803..., rphi=altın oranın tersi 0.61803..., sqrt2=1.41421..., sqrt3=1.73205...
plot(close * math.phi)
Kapanışı altın oranla çarpıp çizer; bu ad alanı pi, e, altın oran gibi hazır sayıları taşır.
Maksimum (2 veya daha fazla değer, element-bazlı). ⚠ Bu fonksiyon adlı argüman kabul etmez; değerleri SIRAYLA yazın.
İkisinden büyük olanı (element-bazlı).
Not
İki değerin büyüğünü eleman bazlı seçer; seri ile sabit karışık verilebilir.
Ne zaman kullanılır
İki değerin (ya da bir değerle bir tabanın) büyüğünü almak için — taban/zemin uygulamak, negatifi kırpmak (max(x,0)).
plot(max(close - open, 0))
Yalnız yükseliş gövdelerinin boyu; düşüş barlarında 0.
Minimum (2 veya daha fazla değer, element-bazlı). ⚠ Bu fonksiyon adlı argüman kabul etmez; değerleri SIRAYLA yazın.
İkisinden küçük olanı (element-bazlı).
Not
İki değerin küçüğünü eleman bazlı seçer; seri ile sabit karışık verilebilir.
Ne zaman kullanılır
İki değerin küçüğünü almak için — tavan uygulamak, bir değeri bir sınırın altında tutmak. Alt+üst sınır birlikteyse clamp daha kısadır.
plot(min(high - close, close - low))
Üst ve alt fitilden kısa olanı.
Kalan (a mod b).
a mod b; b=0 ise na.
Not
a'nın b'ye bölümünden kalan. Payda 0 ise sonuç tanımsızdır. Eleman bazlıdır.
Ne zaman kullanılır
Kalan/periyot işlemleri: her N. bar (mod(barIndex, N) == 0), döngü içi konum. Payda 0 ise sonuç tanımsızdır.
plotshape(mod(barIndex, 10) == 0, style="cross", location="bottom")
Her 10 barda bir alt bantta işaret.
Değer boşsa (`na`) yerine verdiğiniz sayıyı koyar, doluysa olduğu gibi bırakır. Göstergeler ilk barlarda henüz hesaplanamadığı için boş döner; o boşluk bir hesaba girerse sonuç da boş olur. `nz` zinciri kırılmadan sürdürür.
na'sız seri.
Not
na değerleri replacement (varsayılan 0) ile değiştirir, diğerlerine dokunmaz.
Ne zaman kullanılır
na değerleri güvenli bir sayıyla (varsayılan 0) değiştirmek için — ilk barlar, eksik hacim, tanımsız oran. Zincir kuralların na yüzünden kopmasını önler.
plot(nz(change(close, 1), 0))
İlk barda na yerine 0; sonrasında normal değişim.
Üs alma (x^y).
x üzeri y.
Not
x üzeri y. Eleman bazlıdır; taban ve üs seri olabilir.
Ne zaman kullanılır
Üs alma: kare/küp, üstel ağırlık, bileşik oran. Karekök için sqrt daha nettir (pow(x,0.5) yerine).
plot(pow(2, 10))
2 üzeri 10 = 1024 (sabit).
Bar başına deterministik rastgele (seed → backtest==canlı). Sınır verilmezse 0-1. Seri döner. Sonuc: 0.9707432389
Her bar için [min, max) aralığında deterministik rastgele değer taşıyan seri.
Not
Deterministiktir: aynı seed ile backtest ve canlı sonuç birebir eşleşir (tohum → tekrarlanabilirlik). Gerçek anlamda öngörülemez sayı değildir.
Ne zaman kullanılır
Monte-Carlo/jitter denemeleri, stres testi ya da sentetik gürültü eklemek için — tekrarlanabilir olması gereken yerlerde.
plot(random(0, 1, 42))
42 tohumuyla bar başına 0..1 arası tekrarlanabilir rastgele seri.
Sayıyı verilen ondalık basamağa yuvarlar. Panelde ya da etikette göstermeden önce sayıyı kısaltmak için kullanılır. ⚠ Fiyatı yuvarlamak hesabı bozabilir; yuvarlanmış değeri gösterimde kullanın, hesapta ham değeri tutun.
Yuvarlanmış değer.
Not
Eleman bazlı çalışır.
Ne zaman kullanılır
Görüntü ya da eşik karşılaştırması için basamak sadeleştirme. Sembolün fiyat adımına oturtmak istiyorsanız round_to_mintick kullanın.
plot(round(close, 2))
Kapanış iki ondalığa yuvarlanmış.
round_to_mintick(value, tick?)
Değeri tick adımına yuvarlar (varsayılan 0.01). Sonuc: 12.35
Değeri en yakın tick katına yuvarlar.
Not
Fiyatı sembolün işlem adımına oturtmak için. Sabit basamak sayısına yuvarlamak istiyorsanız round daha uygundur.
Ne zaman kullanılır
Hesaplanmış bir seviyeyi (stop, hedef, giriş) gerçek fiyat adımına hizalamak için.
plot(round_to_mintick(12.347, 0.05))
12.347 en yakın 0.05 katına → 12.35.
Sayının işaretini verir: pozitifse +1, negatifse -1, sıfırsa 0. Büyüklüğü atıp yalnız yönü almak istediğinde kullanılır; iki serinin aynı yöne bakıp bakmadığını karşılaştırmak gibi.
İşaret: pozitifte +1, sıfırda 0, negatifte −1.
Not
Yalnızca -1, 0 ya da +1 döndürür (pozitif→1, negatif→-1, sıfır→0). Eleman bazlıdır.
Ne zaman kullanılır
Bir değerin yönünü +1/0/-1 olarak sadeleştirmek için. Büyüklüğü de istiyorsanız abs ile birlikte kullanın.
plot(sign(change(close, 1)))
Fiyat yükseldiyse +1, düştüyse -1, değişmediyse 0.
Sinüs (radyan).
Sinüs.
Not
Girdi radyandır. Çıktı -1 ile 1 arasındadır. Eleman bazlıdır.
Ne zaman kullanılır
Trigonometrik/döngüsel modelleme, faz üretimi. Girdi radyandır; dereceyi önce toradians ile çevirin.
plot(sin(toradians(barIndex * 10)))
Bar indeksine bağlı yumuşak salınan (-1..1) dalga.
Karekök.
Not
Negatif girdi na döndürür. Eleman bazlıdır.
Ne zaman kullanılır
Standart sapma, RMS ve mesafe hesaplarında. Negatif girdi na döndürür, önce nz/clamp ile koruyun.
plot(sqrt(pow(high - low, 2)))
Bar aralığının karesinin karekökü = aralığın kendisi (kimlik kontrolü).
Son length barın toplamı (rolling).
Son length barın toplamı.
Not
İlk length-1 bar None.
Ne zaman kullanılır
Son length bardaki değerleri toplamak (kayan pencere). Baştan beri biriken toplam için cum kullanın.
plot(sum(volume, 5))
Son 5 barın toplam hacmi (kayan pencere).
Tanjant (radyan).
Tanjant.
Not
Girdi radyandır. 90°'nin tek katlarında sonsuza gider. Eleman bazlıdır.
Ne zaman kullanılır
Eğim/açı hesapları. 90°'nin tek katlarında sonsuza gider — çıktıyı clamp ile sınırlamak güvenlidir.
plot(tan(0))
tan(0) = 0 (sabit).
Radyan cinsinden bir açıyı dereceye çevirir. Açı hesabı yapan göstergelerde, sonucu okunabilir bir sayıya dönüştürmek için kullanılır.
Aynı açının derece karşılığı (rad × 180 / π).
Not
Trigonometrik/ark fonksiyonlarının çıktısı radyandır; okunur derece için bunu kullanın. Tersi toradians.
Ne zaman kullanılır
acos/asin/atan/atan2 sonucunu insana okunur açıya çevirmek için.
plot(todegrees(3.141592653589793))
π radyan = 180 derece.
Dereceyi radyana çevirir. Sonuc: 3.141592654
Aynı açının radyan karşılığı (derece × π / 180).
Not
sin/cos/tan radyan bekler; derece bir değeri onlara vermeden önce bununla çevirin. Tersi todegrees.
Ne zaman kullanılır
Derece cinsinden bir açıyı sin/cos/tan'a beslemeden önce.
plot(sin(toradians(90)))
90 dereceyi radyana çevirip sinüsünü alır → 1.