Diziler
57 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.
Verilen elemanlarla dizi oluşturur. Sonuc: Arr(len=3, [1.0, 2.0, 3.0])
Verilen elemanları taşıyan yeni bir dizi.
Not
Elemanları doğrudan sıralayarak dizi kurar; karışık tip serbesttir ama sayısal özet fonksiyonları (arraySum, arrayAvg) sadece sayıları hesaba katar.
Ne zaman kullanılır
Elemanları elle sabit girip küçük bir dizi kurmak için: sabit seviyeler, ağırlıklar, etiket listesi. Boyutu önce belirleyip sonra dolduracaksan arrayNew daha uygundur.
a = array(10, 20, 30) plot(arraySum(a))
10+20+30 = 60 (dizinin toplamı her barda çizilir).
w = array(0.5, 0.3, 0.2) plot(arraySum(w))
Ağırlık vektörü: 0.5+0.3+0.2 = 1.0 (dizi float değerlerle kurulabilir).
Eleman bazlı mutlak değer (yeni dizi). Sonuc: Arr(len=3, [3.0, 1.0, 2.0])
Her elemanın mutlak değerini taşıyan YENİ dizi (orijinal değişmez).
Not
Eleman bazlı çalışır; sayısal-olmayan elemanlar aynen kopyalanır. Orijinali değiştirmez.
Ne zaman kullanılır
Bir dizideki değerlerin işaretini atıp büyüklükleriyle çalışmak için (sapma, fark büyüklüğü).
a = arrayFrom(-3, 4, -5) b = arrayAbs(a) plot(arraySum(b))
|−3|+|4|+|−5| = 12.
a = arrayFrom(-2, -4, -6) b = arrayAbs(a) plot(arrayMax(b))
Mutlak değerler 2,4,6 → en büyüğü 6 (en büyük genlik).
Sayısal elemanların ortalaması.
Sayısal elemanların ortalaması; sayısal eleman yoksa na.
Not
Sadece sayıları hesaba katar. Boş ya da tamamen sayısal-olmayan dizide na döner (0 değil).
Ne zaman kullanılır
Bir diziye toplanan değerlerin ortalamasını almak için — pencere ortalaması, örneklem merkezi.
Sınırlar
Boş dizide na verir; sonucu na() ile korumadan başka bir hesaba sokmayın.
a = arrayFrom(10, 20, 30) plot(arrayAvg(a))
Ortalama: 20.
var w = arrayNew(0) arrayPush(w, close) if arraySize(w) > 10 { arrayShift(w) } plot(arrayAvg(w))
Son 10 close'un ortalaması — diziyle elle kurulmuş bir SMA(10).
arrayBinarySearch(array, value)
Artan sıralı dizide ikili arama (yoksa -1).
Değerin indeksi; bulunamazsa -1.
Not
Diziyi ARTAN sıralı varsayar; sırasız dizide sonuç anlamsız olur. Doğrusal aramaya (arrayIndexOf) göre büyük dizilerde çok daha hızlıdır.
Ne zaman kullanılır
Sıralı büyük bir dizide bir değeri hızlıca bulmak için. Eşit değerlerden hangi uca gitmek istiyorsanız arrayBinarySearchLeftmost/Rightmost kullanın.
Sınırlar
Sadece ARTAN sıralı dizide doğru çalışır; önce arraySort ile sıralayın.
a = arrayFrom(10, 20, 30, 40) plot(arrayBinarySearch(a, 30))
30 değeri 2. konumda.
a = arrayFrom(10, 20, 30, 40) plot(arrayBinarySearch(a, 25))
25 sıralı dizide yok → -1 (ikili arama bulamadı). Dizi sıralı olmalı.
arrayBinarySearchLeftmost(array, value)
Sıralı dizide sol-uç konum.
Değere eşit ilk konum; değer yoksa eklenmesi gereken konum (sol-uç ekleme noktası).
Not
Sıralı dizide değerin girebileceği en sol konumu verir. Değer birden çok kez varsa ilk kopyanın indeksini döner.
Ne zaman kullanılır
Sıralı dizide tekrar eden değerlerin ilkine ya da bir eşiğin alt sınır konumuna gitmek için.
a = arrayFrom(1, 2, 2, 2, 3) plot(arrayBinarySearchLeftmost(a, 2))
İlk 2 değeri 1. konumda.
a = arrayFrom(1, 3, 5) plot(arrayBinarySearchLeftmost(a, 4))
4 dizide yok; eklense gireceği (en-sol) konum 2. Sıralı dizi gerekir.
arrayBinarySearchRightmost(array, value)
Sıralı dizide sağ-uç konum.
Değere eşit son konum; değer yoksa ondan küçük son elemanın konumu (sağ-uç).
Not
Sıralı dizide değerin son kopyasının ya da değerden küçük son elemanın konumunu verir.
Ne zaman kullanılır
Sıralı dizide tekrar eden değerlerin sonuncusuna ya da bir eşiğin üst sınır konumuna gitmek için.
a = arrayFrom(1, 2, 2, 2, 3) plot(arrayBinarySearchRightmost(a, 2))
Son 2 değeri 3. konumda.
a = arrayFrom(1, 2, 3, 4) plot(arrayBinarySearchRightmost(a, 3))
3 dizide bir kez geçer → en-sağ eşleşme de aynı konum: 2. Tekrarlı olsaydı en sağdakini verirdi.
Dizinin bütün ögelerini siler, dizi kalır ama boşalır. Yeni bir döneme geçerken birikimi sıfırlamak için kullanılır.
Değer döndürmez (na); diziyi yerinde boşaltır.
Not
Tüm elemanları siler, boyut 0 olur; dizinin kendisi (referansı) korunur.
Ne zaman kullanılır
Bir tamponu yeniden kullanmadan önce sıfırlamak için — yeni pencereye/döneme geçerken.
a = arrayFrom(1, 2, 3) arrayClear(a) plot(arraySize(a))
Boşaltıldı → boyut 0.
var w = arrayNew(0) arrayPush(w, close) if arraySize(w) >= 10 { arrayClear(w) } plot(arraySize(w))
Boyut 10'a ulaşınca dizi boşaltılır → 1..10 arası testere deseni (periyodik kova).
dizi2'yi dizi1'e ekler, dizi1'i döner. Sonuc: Arr(len=5, [3.0, 1.0, 2.0, 4.0])
Genişletilmiş dizi1 (aynı referans).
Not
dizi2'nin elemanlarını dizi1'in sonuna ekler ve dizi1'i değiştirir. dizi2 dokunulmadan kalır.
Ne zaman kullanılır
İki listeyi tek listede birleştirmek için. Orijinali korumak istiyorsanız önce arrayCopy alın.
a = arrayFrom(1, 2) b = arrayFrom(3, 4) arrayConcat(a, b) plot(arraySize(a))
dizi1 4 elemana genişledi.
a = arrayFrom(1, 2) b = arrayFrom(3, 4, 5) arrayConcat(a, b) plot(arrayAvg(a))
İki dizi birleşir (1,2,3,4,5) → ortalama 3 (birleştirin, sonra indirgeyin).
Dizinin kopyası. Sonuc: Arr(len=3, [3.0, 1.0, 2.0])
Aynı elemanları taşıyan bağımsız yeni dizi.
Not
Yüzeysel kopya verir; kopyayı değiştirmek orijinali etkilemez. Yerinde değiştiren fonksiyonlardan (arraySort, arrayReverse) önce orijinali korumak için kullanılır.
Ne zaman kullanılır
Bir diziyi bozmadan üstünde sıralama/ters çevirme gibi yerinde işlemler yapmak için.
a = arrayFrom(3, 1, 2) b = arrayCopy(a) arraySort(b, true) plot(arrayFirst(a))
Kopya sıralandı; orijinalin ilk elemanı hâlâ 3.
a = arrayFrom(1, 2, 3) b = arrayCopy(a) arrayPush(b, 4) plot(arraySize(a))
Kopyaya eleman eklenir ama orijinal etkilenmez → orijinal boyut hâlâ 3 (bağımsız kopya).
arrayCovariance(array1, array2, biased?)
İki dizinin kovaryansı. Sonuc: -0.5
İki dizinin kovaryansı; ortak sayısal eleman sayısı 2'den azsa na.
Not
İki serinin birlikte hareket yönünü ve şiddetini ölçer. Diziler farklı uzunluktaysa kısa olanın uzunluğu kadar eşleştirilir. Varsayılan yanlı (n) bölendir.
Ne zaman kullanılır
İki değer dizisinin (ör. iki varlık getirisi) birlikte artıp azalma eğilimini ölçmek için.
a = arrayFrom(1, 2, 3) b = arrayFrom(2, 4, 6) plot(arrayCovariance(a, b))
Birlikte artan iki dizi → pozitif kovaryans (≈1.33, yanlı).
a = arrayFrom(1, 2, 3) b = arrayFrom(6, 4, 2) plot(arrayCovariance(a, b))
Biri artarken diğeri azalır → negatif kovaryans (≈ -1.33).
Tüm elemanlar doğru/sıfırdan-farklı mı. Sonuc: True
Tüm elemanlar doğru/sıfırdan-farklı ise true; boş dizide false.
Not
Her elemanı doğruluk (truthy) olarak değerlendirir: 0/na/false yanlış sayılır. Boş dizide false döner.
Ne zaman kullanılır
Bir dizideki tüm koşulların aynı anda sağlandığını doğrulamak için (hepsi geçti mi).
a = arrayFrom(1, 1, 1) plot(arrayEvery(a) ? 1 : 0)
Tüm elemanlar sıfırdan farklı → true.
a = arrayFrom(1, 0, 1) plot(arrayEvery(a) ? 1 : 0)
Bir eleman 0 → arrayEvery false (0). Tüm elemanlar sıfırdan farklı değil.
arrayFill(array, value, start?, end?)
Aralığı değerle doldurur.
Değer döndürmez (na); diziyi yerinde doldurur.
Not
Verilen aralıktaki tüm elemanları aynı değere yazar; boyutu değiştirmez. Aralık verilmezse tüm dizi dolar.
Ne zaman kullanılır
Bir dizi bölümünü tek değerle sıfırlamak/işaretlemek için.
a = arrayNew(5, 0) arrayFill(a, 9, 1, 3) plot(arraySum(a))
1 ve 2. elemanlar 9 yapıldı → toplam 18.
a = arrayNew(4, 1) arrayFill(a, 0) plot(arraySum(a))
Aralık verilmeden tüm dizi 0 ile doldurulur → toplam 0 (topluca sıfırlama).
Dizinin ilk ögesini verir, diziyi değiştirmez. `arrayGet(d, 0)` ile aynı işi yapar ama niyeti daha açık okunur. ⚠ Boş dizide hata verir.
İlk eleman; dizi boşsa na.
Not
arrayGet(dizi, 0) ile aynı ama daha okunaklıdır; diziyi değiştirmez.
Ne zaman kullanılır
Dizinin başındaki değeri okumak için (en eski / ilk kayıt).
a = arrayFrom(11, 22, 33) plot(arrayFirst(a))
İlk eleman: 11.
var w = arrayNew(0) arrayPush(w, close) if arraySize(w) > 5 { arrayShift(w) } plot(arrayFirst(w))
5 barlık kayan pencerenin ilk (en eski) elemanı — 5 bar önceki close.
Verdiğiniz değerlerden yeni bir dizi kurar; tek tek eklemek yerine bir satırda yazmanı sağlar. Sabit bir liste kurmak için elverişlidir.
Verilen değerlerden oluşan yeni dizi.
Not
array ile aynı işi görür; alışkanlığa göre ikisi de kullanılabilir.
Ne zaman kullanılır
Hazır değer listesinden hızlıca dizi oluşturmak için.
a = arrayFrom(3, 1, 2) plot(arrayMax(a))
Dizideki en büyük değer: 3.
a = arrayFrom(5, 1, 9, 3, 7) plot(arrayMedian(a))
Giriş sırasız olabilir: sıralı hâli 1,3,5,7,9 → tam ortadaki (medyan) 5.
Dizinin belirli sırasındaki ögeyi verir. Sıra sıfırdan başlar: ilk öge 0, ikinci 1. Sondan saymak için eksi sayı yazılır, son öge -1'dir. ⚠ Dizide olmayan bir sıra istenirse hata verir; önce `arraySize` ile bakmak güvenlidir.
i. eleman; indeks dizi dışındaysa na döner (hata vermez).
Not
Negatif indeks sondan erişim sağlar. Sınır dışı indekste çökmez, na verir — sonucu na() ile kontrol edebilirsiniz.
Ne zaman kullanılır
Diziden belirli bir konumdaki değeri okumak için. İlk/son eleman için arrayFirst/arrayLast daha okunaklıdır.
a = arrayFrom(10, 20, 30) plot(arrayGet(a, -1))
Son eleman: 30.
a = arrayFrom(close, close[1], close[2]) plot(arrayGet(a, 0) > arrayGet(a, 2) ? 1 : 0)
Pozitif indeksle erişim: geçerli close (0. eleman) 2 bar önceki close'tan (2. eleman) büyükse 1.
Değer dizide var mı (true/false).
Değer dizide varsa true, yoksa false.
Not
Tip-kesin eşitlik kullanır: sayı sayıyla, metin metinle, mantıksal mantıksalla eşleşir.
Ne zaman kullanılır
Bir değerin listede olup olmadığını kontrol etmek için — izleme listesi üyeliği, tekilleştirme.
a = arrayFrom(1, 2, 3) plot(arrayIncludes(a, 2) ? 1 : 0)
2 dizide var → true (1 olarak çizilir).
a = arrayFrom(1, 5, 9) plot(arrayIncludes(a, 4) ? 1 : 0)
4 dizide yok → false (0 çizilir) — üyelik testinin olumsuz hâli.
Değerin konumu (yoksa -1).
Değerin ilk bulunduğu indeks; yoksa -1.
Not
Baştan tarar, ilk eşleşmenin konumunu verir. Tip-kesin eşitlik uygular. Sondan aramak için arrayLastIndexOf.
Ne zaman kullanılır
Bir değerin dizideki konumunu bulmak için (sonra arrayGet/arraySet ile o konuma erişmek).
a = arrayFrom(5, 6, 7) plot(arrayIndexOf(a, 7))
7 değeri 2. konumda.
a = arrayFrom(5, 6, 7) plot(arrayIndexOf(a, 99))
99 dizide yok → -1 (bulunamadı işareti).
i. konuma ekler.
Değer döndürmez (na); diziyi yerinde büyütür.
Not
Belirtilen konuma eleman ekler, sonraki elemanlar sağa kayar. Konum boyutu aşarsa sona, çok küçükse başa eklenir.
Ne zaman kullanılır
Sıralı bir listede araya değer eklemek için. Sadece sona/başa eklemek istiyorsanız arrayPush/arrayUnshift.
a = arrayFrom(1, 3) arrayInsert(a, 1, 2) plot(arrayGet(a, 1))
1. konuma 2 eklendi → dizi 1,2,3.
a = arrayFrom(1, 2, 3) arrayInsert(a, 0, 0) plot(arrayFirst(a))
0. konuma 0 eklenir (başa) → yeni ilk eleman 0.
Elemanları metne birleştirir. Sonuc: 3, 1, 2
Elemanların ayraçla birleştirilmiş tek metni.
Not
Her elemanı metne çevirip ayraçla birleştirir. Ayraç verilmezse virgül kullanılır.
Ne zaman kullanılır
Bir diziyi etikette/tabloda göstermek için tek metne çevirmek istediğinde.
a = arrayFrom(1, 2, 3) s = arrayJoin(a, "-") plot(s == "1-2-3" ? 1 : 0)
Elemanlar "-" ile birleşti → "1-2-3".
a = arrayFrom(1, 2, 3) s = arrayJoin(a) plot(s == "1,2,3" ? 1 : 0)
Ayraç verilmezse varsayılan virgüldür → "1,2,3".
Son eleman.
Son eleman; dizi boşsa na.
Not
arrayGet(dizi, -1) ile aynı ama daha okunaklıdır; diziyi değiştirmez.
Ne zaman kullanılır
Dizinin sonundaki değeri okumak için (en son eklenen / güncel kayıt).
a = arrayFrom(11, 22, 33) plot(arrayLast(a))
Son eleman: 33.
var w = arrayNew(0) arrayPush(w, high) plot(arrayLast(w))
Diziye her bar high eklenir; son eleman en son eklenen (güncel) high'dır.
arrayLastIndexOf(array, value)
Son eşleşme indeksi (yoksa -1).
Değerin son bulunduğu indeks; yoksa -1.
Not
Sondan başa tarar, son eşleşmenin konumunu verir. Tip-kesin eşitlik uygular.
Ne zaman kullanılır
Aynı değer birden çok kez varken en sonunkinin konumunu istediğinde.
a = arrayFrom(5, 6, 5) plot(arrayLastIndexOf(a, 5))
Son 5 değeri 2. konumda.
a = arrayFrom(5, 6, 5) plot(arrayLastIndexOf(a, 9))
9 dizide hiç yok → -1 (son-konum araması da bulamaz).
En büyük sayısal eleman.
En büyük sayısal eleman; sayısal eleman yoksa na.
Not
Sadece sayıları karşılaştırır; metin/na atlanır.
Ne zaman kullanılır
Bir dizideki en yüksek değeri bulmak için (en iyi sonuç, tavan seviye).
a = arrayFrom(7, 3, 9) plot(arrayMax(a))
En büyük: 9.
var w = arrayNew(0) arrayPush(w, high) if arraySize(w) > 20 { arrayShift(w) } plot(arrayMax(w))
Son 20 barın en yüksek high'ı — kayan direnç (Donchian üst bandı).
Ortanca (medyan) değer.
Ortanca (medyan) değer; boşsa na. Çift sayıda elemanda ortadaki ikisinin ortalaması.
Not
Değerleri sıralayıp ortadakini alır; aşırı uç değerlerden ortalamaya göre daha az etkilenir.
Ne zaman kullanılır
Uç değerlerin bozmadığı tipik değeri (dayanıklı merkez) istediğinde, ortalama yerine.
a = arrayFrom(1, 2, 3, 4) plot(arrayMedian(a))
Ortadaki ikinin ortalaması: (2+3)/2 = 2.5.
a = arrayFrom(5, 1, 9, 3, 7) plot(arrayMedian(a))
Tek sayıda eleman: sıralı 1,3,5,7,9 → tam ortadaki 5 (çift sayıdaki durumdan farklı).
En küçük sayısal eleman.
En küçük sayısal eleman; sayısal eleman yoksa na.
Not
Sadece sayıları karşılaştırır; metin/na atlanır.
Ne zaman kullanılır
Bir dizideki en düşük değeri bulmak için (en zayıf sonuç, taban seviye).
a = arrayFrom(7, 3, 9) plot(arrayMin(a))
En küçük: 3.
var w = arrayNew(0) arrayPush(w, low) if arraySize(w) > 20 { arrayShift(w) } plot(arrayMin(w))
Son 20 barın en düşük low'u — kayan destek (Donchian alt bandı).
En sık değer (eşitlikte en küçük).
En sık geçen sayısal değer; eşitlikte en küçük olanı; boşsa na.
Not
Frekans eşit olan birden çok değer varsa en küçüğünü verir. Sadece sayısal elemanları sayar.
Ne zaman kullanılır
Bir dizide en çok tekrar eden değeri bulmak için (baskın seviye, en sık sonuç).
a = arrayFrom(2, 2, 1, 1) plot(arrayMode(a))
1 ve 2 eşit sıklıkta → en küçüğü: 1.
a = arrayFrom(1, 3, 3, 3, 2) plot(arrayMode(a))
3 değeri üç kez geçer → en sık (mod) 3 (net kazanan).
Dizi oluşturur. Boyut verilirse o kadar eleman (her biri başlangıç değeri), verilmezse BOŞ dizi.
boyut adet elemanın hepsi başlangıç değerine eşit olan yeni dizi.
Not
Önce sabit boyutlu bir dizi ayırıp sonra arraySet/arrayFill ile doldurmak için kullanılır. Başlangıç verilmezse elemanlar 0'dır.
Ne zaman kullanılır
Boyutu bilinen bir tamponu (buffer) önceden ayırmak için: son N sonucu biriktirme, sabit uzunlukta pencere. Elemanları baştan biliyorsanız array kullanın.
a = arrayNew(4, 5) plot(arraySum(a))
4 elemanın hepsi 5 → toplam 20.
a = arrayNew(3, 2) arrayPush(a, 4) plot(arrayAvg(a))
3 eleman 2 ile kurulur, üstüne 4 eklenir → ortalama (2+2+2+4)/4 = 2.5.
Mantıksal dizi. Sonuc: Arr(len=5, [False, False, False, False])
boyut adet elemanın hepsi başlangıç değerine eşit yeni dizi.
Not
arrayNew ile aynı davranır; mantıksal (true/false) dizi kurma niyetini belirtir. Başlangıç verilmezse 0'dır (yanlış gibi davranır).
Ne zaman kullanılır
Her konum için bir bayrak/koşul tutan tampon ayırmak için.
a = arrayNewBool(3, true) plot(arrayEvery(a) ? 1 : 0)
Tüm elemanlar true → arrayEvery true.
a = arrayNewBool(3, false) arraySet(a, 1, true) plot(arraySome(a) ? 1 : 0)
3 eleman false ile kurulur, 1. eleman true yapılır → arraySome true (1).
Tip-özel dizi yapıcısı (arrayNew ile aynı). Sonuc: Arr(len=0, [])
boyut adet elemanlı yeni kutu (box) dizisi.
Not
arrayNew ile aynı davranır; kutu (box) tutmak üzere niyeti belirten tip-özel yapıcıdır. Başlangıç değeri verilmezse elemanlar 0'dır (genelde na/başlangıç verilerek doldurulur).
Ne zaman kullanılır
kutu (box) nesnelerini konum konum tutacak sabit boyutlu bir tampon ayırmak için.
a = arrayNewBox(2) plot(arraySize(a))
2 elemanlık dizi ayrıldı.
var kutular = arrayNewBox(0) plot(arraySize(kutular))
var ile boş (0 elemanlı) kutu-tutamacı deposu — barlar boyunca taşınır, boyut 0'dan başlar.
Tip-özel dizi yapıcısı (arrayNew ile aynı). Sonuc: Arr(len=0, [])
boyut adet elemanlı yeni renk dizisi.
Not
arrayNew ile aynı davranır; renk tutmak üzere niyeti belirten tip-özel yapıcıdır. Başlangıç değeri verilmezse elemanlar 0'dır (genelde na/başlangıç verilerek doldurulur).
Ne zaman kullanılır
renk nesnelerini konum konum tutacak sabit boyutlu bir tampon ayırmak için.
a = arrayNewColor(2) plot(arraySize(a))
2 elemanlık dizi ayrıldı.
var palet = arrayNewColor(2, "#26a69a") arraySet(palet, 1, "#ef5350") plot(arraySize(palet))
İki renk ayrılır, 1. eleman satış rengiyle değiştirilir → al/sat paleti, boyut 2.
Boş bir sayı dizisi kurar. Bar bar değer biriktireceksen bunu `var` ile kurman gerekir, yoksa her barda yeniden boşalır.
boyut adet sayısal elemanın hepsi başlangıç değerine eşit yeni dizi.
Not
arrayNew ile aynı davranır; sayısal (ondalıklı) dizi kurmayı belirtir. Başlangıç verilmezse 0.
Ne zaman kullanılır
Sayısal bir tampon ayırırken niyeti açıkça belirtmek için.
a = arrayNewFloat(3, 1.5) plot(arraySum(a))
3 elemanın hepsi 1.5 → toplam 4.5.
a = arrayNewFloat(3, close) plot(arrayGet(a, 0))
3 eleman geçerli close ile kurulur → 0. eleman o barın close'u (başlangıç bir seri olabilir).
Boş bir tam-sayı dizisi kurar. Bar sayıları, sıra numaraları gibi tam olması gereken değerleri tutmak için kullanılır. Bar bar biriktireceksen `var` ile kurulmalıdır.
boyut adet elemanın hepsi başlangıç değerine eşit yeni dizi.
Not
arrayNew ile aynı davranır; tam-sayı dizisi kurma niyetini belirtir. Sayısal saklama ondalıklıdır; değerleri tam-sayı olarak kullanmak size kalır.
Ne zaman kullanılır
Sayaç/indeks gibi tam-sayı değerler tutan bir tampon ayırmayı belirtmek için.
a = arrayNewInt(4, 2) plot(arraySum(a))
4 elemanın hepsi 2 → toplam 8.
a = arrayNewInt(3, 10) arraySet(a, 0, 5) plot(arrayMin(a))
3 eleman 10 ile kurulur, 0. eleman 5 yapılır → en küçük 5.
Tip-özel dizi yapıcısı (arrayNew ile aynı). Sonuc: Arr(len=0, [])
boyut adet elemanlı yeni etiket (label) dizisi.
Not
arrayNew ile aynı davranır; etiket (label) tutmak üzere niyeti belirten tip-özel yapıcıdır. Başlangıç değeri verilmezse elemanlar 0'dır (genelde na/başlangıç verilerek doldurulur).
Ne zaman kullanılır
etiket (label) nesnelerini konum konum tutacak sabit boyutlu bir tampon ayırmak için.
a = arrayNewLabel(2) plot(arraySize(a))
2 elemanlık dizi ayrıldı.
a = arrayNewLabel(3) arrayPop(a) plot(arraySize(a))
3 etiket-yuvası ayrılır, biri çıkarılır (pop) → boyut 2.
Tip-özel dizi yapıcısı (arrayNew ile aynı). Sonuc: Arr(len=0, [])
boyut adet elemanlı yeni çizgi (line) dizisi.
Not
arrayNew ile aynı davranır; çizgi (line) tutmak üzere niyeti belirten tip-özel yapıcıdır. Başlangıç değeri verilmezse elemanlar 0'dır (genelde na/başlangıç verilerek doldurulur).
Ne zaman kullanılır
çizgi (line) nesnelerini konum konum tutacak sabit boyutlu bir tampon ayırmak için.
a = arrayNewLine(2) plot(arraySize(a))
2 elemanlık dizi ayrıldı.
a = arrayNewLine(4) arrayRemove(a, 0) plot(arraySize(a))
4 çizgi-yuvası ayrılır, 0. eleman silinir → boyut 3.
arrayNewLinefill(size?, start?)
Tip-özel dizi yapıcısı (arrayNew ile aynı). Sonuc: Arr(len=0, [])
boyut adet elemanlı yeni çizgi-dolgu (linefill) dizisi.
Not
arrayNew ile aynı davranır; çizgi-dolgu (linefill) tutmak üzere niyeti belirten tip-özel yapıcıdır. Başlangıç değeri verilmezse elemanlar 0'dır (genelde na/başlangıç verilerek doldurulur).
Ne zaman kullanılır
çizgi-dolgu (linefill) nesnelerini konum konum tutacak sabit boyutlu bir tampon ayırmak için.
a = arrayNewLinefill(2) plot(arraySize(a))
2 elemanlık dizi ayrıldı.
a = arrayNewLinefill(2) arrayClear(a) plot(arraySize(a))
2 linefill-yuvası ayrılır, sonra dizi boşaltılır → boyut 0.
Metin dizisi. Sonuc: Arr(len=5, ['', '', '', ''])
boyut adet elemanın hepsi başlangıç metnine eşit yeni dizi.
Not
Metin dizisi kurar. Diğer arrayNew ailelerinden farkı: başlangıç verilmezse eleman 0 değil BOŞ METİN ("") olur.
Ne zaman kullanılır
Metin (etiket/sembol adı) tutan sabit boyutlu bir tampon ayırmak için.
a = arrayNewString(2) plot(arrayGet(a, 0) == "" ? 1 : 0)
Başlangıç verilmedi → elemanlar boş metin.
a = arrayNewString(2, "AL") arraySet(a, 1, "SAT") plot(arrayIndexOf(a, "SAT"))
İki eleman "AL" ile kurulur, 1. eleman "SAT" yapılır → "SAT" 1. konumda.
Tip-özel dizi yapıcısı (arrayNew ile aynı). Sonuc: Arr(len=0, [])
boyut adet elemanlı yeni tablo (table) dizisi.
Not
arrayNew ile aynı davranır; tablo (table) tutmak üzere niyeti belirten tip-özel yapıcıdır. Başlangıç değeri verilmezse elemanlar 0'dır (genelde na/başlangıç verilerek doldurulur).
Ne zaman kullanılır
tablo (table) nesnelerini konum konum tutacak sabit boyutlu bir tampon ayırmak için.
a = arrayNewTable(2) plot(arraySize(a))
2 elemanlık dizi ayrıldı.
a = arrayNewTable(1) b = arrayNewTable(2) arrayConcat(a, b) plot(arraySize(a))
1'lik ve 2'lik iki tablo-dizisi birleştirilir → boyut 3.
arrayPercentRank(array, index)
i. değerin yüzdelik rütbesi (0-100).
i. elemanın 0–100 arası yüzdelik rütbesi; indeks geçersiz/sayısal-değilse na; 2'den az sayısal elemanda 0.
Not
Verilen elemanın, diziye göre kaçıncı yüzdelikte olduğunu söyler: kendisi dahil kaç eleman ondan küçük ya da eşit. 0 = en küçük, 100 = en büyük.
Ne zaman kullanılır
Bir değerin geçmiş dağılım içindeki göreli konumunu ölçmek için (bu okuma tarihsel olarak ne kadar yüksek).
a = arrayFrom(10, 20, 30, 40, 50) plot(arrayPercentRank(a, 2))
30 değeri diziye göre %50 yüzdelikte.
a = arrayFrom(10, 20, 30, 40, 50) plot(arrayPercentRank(a, 4))
En büyük eleman (50, indeks 4) diziye göre %100 yüzdelikte.
arrayPercentileLinearInterpolation(array, percent)
Doğrusal-enterpolasyon yüzdelik. Sonuc: 2.5
Doğrusal enterpolasyonlu yüzdelik değeri; boşsa na.
Not
Sıralanmış değerler arasında konumu doğrusal enterpolasyonla bulur; sonuç dizideki gerçek bir eleman olmayabilir. Daha yumuşak/kesintisiz yüzdelik verir.
Ne zaman kullanılır
Bir dağılımda yumuşak yüzdelik eşiği istediğinde (ör. dinamik %90 seviyesi, medyan).
a = arrayFrom(1, 2, 3, 4) plot(arrayPercentileLinearInterpolation(a, 50))
%50 yüzdelik (medyan) = 2.5.
a = arrayFrom(1, 2, 3, 4) plot(arrayPercentileLinearInterpolation(a, 25))
%25 yüzdelik, doğrusal ara-değerle = 1.75 (medyandan farklı bir dilim).
arrayPercentileNearestRank(array, percent)
En-yakın-rütbe yüzdelik.
En-yakın-rütbe yöntemiyle yüzdelik değeri; boşsa na.
Not
Sıralı dizide yüzdeye karşılık gelen rütbeyi yukarı yuvarlar ve o konumdaki GERÇEK elemanı verir; ara değer üretmez.
Ne zaman kullanılır
Yüzdelik sonucunun mutlaka dizideki gerçek bir değer olmasını istediğinde.
a = arrayFrom(1, 2, 3, 4) plot(arrayPercentileNearestRank(a, 50))
%50 en-yakın-rütbe → dizideki gerçek değer 2.
a = arrayFrom(10, 20, 30, 40, 50) plot(arrayPercentileNearestRank(a, 90))
%90 en-yakın-rütbe → üst uçtaki gerçek değer 50.
Dizinin son ögesini çıkarır ve o ögeyi verir. Dizi bir kısalır. En son eklenene önce erişmek istediğinde kullanılır.
Çıkarılan son eleman; dizi boşsa na.
Not
Diziyi bir eleman kısaltır ve çıkardığı değeri verir. Boş dizide çökmez, na döner.
Ne zaman kullanılır
Yığın (stack) mantığında son ekleneni geri almak için.
a = arrayFrom(1, 2, 3) x = arrayPop(a) plot(x)
Son eleman çıkarılıp döner: 3.
a = arrayFrom(1, 2, 3, 4) arrayPop(a) arrayPop(a) plot(arrayLast(a))
Son eleman iki kez çıkarılır (4, sonra 3) → kalan son eleman 2 (LIFO).
Dizinin sonuna öge ekler ve yeni boyutu verir. Bar bar biriken değerleri toplamak için kullanılır. ⚠ Dizi barlar boyunca yaşasın istiyorsanız `var` ile kurmalısınız, yoksa her barda yeniden boşalır.
Ekleme sonrası yeni eleman sayısı.
Not
Diziyi bir eleman büyütür. Sürekli birikim (log, sonuç listesi) için temel araçtır.
Ne zaman kullanılır
Diziye bar bar sonuç biriktirmek için. Baştan eklemek istiyorsanız arrayUnshift kullanın.
a = arrayNew(0) arrayPush(a, close) plot(arraySize(a))
Her bar close eklenir; boyut bar sayısıyla birlikte artar.
var sinyaller = arrayNew(0) if crossover(close, sma(close, 20)) { arrayPush(sinyaller, close) } plot(arraySize(sinyaller))
Yalnız 20-SMA yukarı kesişiminde close eklenir; boyut o ana dek oluşan sinyal sayısıdır.
Maks - min farkı.
En büyük ile en küçük sayısal eleman farkı (max - min); boşsa na.
Not
Yayılımın en basit ölçüsü; tek bir uç değere karşı çok hassastır.
Ne zaman kullanılır
Bir dizinin uçları arasındaki toplam mesafeyi hızlıca görmek için.
a = arrayFrom(3, 7, 1) plot(arrayRange(a))
7 - 1 = 6.
a = arrayFrom(-5, 0, 5, 10) plot(arrayRange(a))
En büyük - en küçük = 10 - (-5) = 15 (negatif değerlerle de çalışır).
Dizinin belirli sırasındaki ögeyi çıkarır ve o ögeyi verir; sonrasındaki ögeler bir sıra kayar. Artık geçerli olmayan bir kaydı listeden düşürmek için kullanılır.
Çıkarılan eleman; indeks dizi dışındaysa na.
Not
Belirtilen konumdaki elemanı çıkarır, sonraki elemanlar sola kayar ve çıkarılan değeri verir.
Ne zaman kullanılır
Diziden belirli bir konumdaki elemanı silmek için. Baş/son için arrayShift/arrayPop.
a = arrayFrom(5, 6, 7) x = arrayRemove(a, 1) plot(x)
1. eleman çıkarılıp döner: 6.
a = arrayFrom(5, 6, 7) arrayRemove(a, 0) plot(arrayFirst(a))
0. eleman (5) silinir, kalanlar öne kayar → yeni ilk eleman 6.
Sırayı ters çevirir (yerinde).
Değer döndürmez (na); dizinin sırasını yerinde ters çevirir.
Not
Eleman sırasını başa-son ters çevirir; diziyi değiştirir.
Ne zaman kullanılır
Artan sıralı bir diziyi azalana çevirmek ya da en-eski-ilk listeyi en-yeni-ilk yapmak için.
a = arrayFrom(1, 2, 3) arrayReverse(a) plot(arrayFirst(a))
Sıra ters çevrildi → ilk eleman artık 3.
a = arrayFrom(1, 2, 3, 4) arrayReverse(a) plot(arrayLast(a))
Sıra ters çevrilir → son eleman artık baştaki 1.
Dizinin belirli sırasındaki ögeyi değiştirir; yeni dizi üretmez, var olanı günceller. Sıra sıfırdan başlar.
Değer döndürmez (na); diziyi yerinde değiştirir.
Not
Var olan bir konumu değiştirir; boyutu artırmaz. İndeks dizi dışındaysa sessizce hiçbir şey yapmaz.
Ne zaman kullanılır
Önceden ayrılmış bir dizinin belirli konumunu güncellemek için. Sona eklemek istiyorsanız arrayPush kullanın.
a = arrayNew(3, 0) arraySet(a, 1, 9) plot(arraySum(a))
1. eleman 9 yapıldı, diğerleri 0 → toplam 9.
a = arrayNew(3, 0) arraySet(a, 0, high) arraySet(a, 2, low) plot(arrayGet(a, 0) - arrayGet(a, 2))
0. elemana high, 2.'ye low yazılır; farkları o barın aralığıdır (high - low).
Dizinin ilk ögesini çıkarır ve o ögeyi verir; kalan ögeler bir sıra öne kayar. En eskiyi önce işlemek istediğinde kullanılır — sondan alan `arrayPop` ile karşıt çalışır.
Çıkarılan ilk eleman; dizi boşsa na.
Not
Baştan eleman alır ve kalanları öne kaydırır. Kuyruk (FIFO) mantığında kullanılır.
Ne zaman kullanılır
En eski elemanı bırakıp sabit uzunlukta kayan pencere tutmak için (push + shift).
a = arrayFrom(1, 2, 3) x = arrayShift(a) plot(x)
İlk eleman çıkarılıp döner: 1.
a = arrayFrom(10, 20, 30) arrayShift(a) plot(arrayFirst(a))
Baştan bir eleman atılır (10) → yeni ilk eleman 20.
Dizide kaç öge olduğunu verir. Döngü sınırı olarak ya da dizinin boş olup olmadığını anlamak için kullanılır; boş dizide sıfır döner.
Dizideki eleman sayısı.
Not
Boş dizide 0 döner. Döngü sınırı ve boşluk kontrolü için kullanılır.
Ne zaman kullanılır
Diziyi baştan sona dolaşmadan önce sınırı bilmek ya da boş olup olmadığını denetlemek için.
a = arrayFrom(5, 6, 7) plot(arraySize(a))
3 eleman.
var w = arrayNew(0) arrayPush(w, close) if arraySize(w) > 20 { arrayShift(w) } plot(arraySize(w) == 20 ? 1 : 0)
20 barlık kayan pencere dolunca 1 (hazır), ilk 20 barda 0 — ısınma kapısı.
arraySlice(array, start, end?)
Alt-dizi kopyası (başla..bitir) — bağımsız kopya (view/pencere değil, orijinali etkilemez). Sonuc: Arr(len=3, [3.0, 1.0, 2.0])
başla..bitir aralığının yeni bir kopya dizisi.
Not
Kaynağı DEĞİŞTİRMEZ; bağımsız bir alt-dizi kopyası verir. bitir hariç tutulur. Not: view/pencere DEĞİLDİR — dönen dizi orijinalden TAMAMEN bağımsızdır, birini değiştirmek diğerini etkilemez (iki yönde de).
Ne zaman kullanılır
Bir dizinin bir bölümünü ayrı olarak işlemek için (son N eleman, ilk yarı).
Kaynağı DEĞİŞTİRMEZ; bağımsız bir alt-dizi kopyası verir. bitir hariç tutulur.
a = arrayFrom(0, 1, 2, 3, 4) b = arraySlice(a, 1, 3) plot(arraySize(b))
1 ve 2. elemanlar → 2 elemanlı kopya.
a = arrayFrom(1, 2, 3, 4, 5) b = arraySlice(a, 2) plot(arraySum(b))
2. elemandan sona (bitiş verilmedi) → 3,4,5; toplam 12.
En az bir eleman doğru mu. Sonuc: True
En az bir eleman doğru/sıfırdan-farklı ise true; hiçbiri değilse (ya da boşsa) false.
Not
Her elemanı doğruluk olarak değerlendirir; ilk doğru elemanda true olur. Boş dizide false.
Ne zaman kullanılır
Bir dizideki koşullardan en az birinin sağlandığını kontrol etmek için (herhangi biri geçti mi).
a = arrayFrom(0, 0, 1) plot(arraySome(a) ? 1 : 0)
Bir eleman sıfırdan farklı → true.
a = arrayFrom(0, 0, 0) plot(arraySome(a) ? 1 : 0)
Tüm elemanlar 0 → arraySome false (0). Sıfırdan farklı hiç eleman yok.
Sayısal sıralar (yerinde; artan vars. true).
Değer döndürmez (na); diziyi yerinde sıralar.
Not
Sadece sayısal elemanları sıralar; sayısal-olmayanlar sona, göründükleri sırayla eklenir. Diziyi değiştirir — kopya istiyorsanız önce arrayCopy.
Ne zaman kullanılır
Değerleri büyüklüğüne göre dizmek için — yüzdelik/medyan öncesi, en iyi/en kötü N seçimi.
a = arrayFrom(30, 10, 20) arraySort(a, true) plot(arrayFirst(a))
Artan sıralandı → ilk eleman en küçük: 10.
a = arrayFrom(30, 10, 20, 40) arraySort(a, false) plot(arrayFirst(a))
Azalan sıralama (ikinci argüman false) → ilk eleman en büyük: 40.
arraySortIndices(array, ascending?)
Sıralayan indeks dizisi (en-iyi-N için). Adlandırılmış argüman olarak `artan` veya İngilizce `asc` kullanılabilir (ikisi de aynı). Sonuc: Arr(len=3, [0.0, 2.0, 1.0])
Diziyi sıralayacak indekslerin dizisi; dizinin kendisi değişmez.
Not
Diziyi bozmadan, sıralı hale getirecek eleman konumlarını verir. Sadece sayısal elemanlar sıralamaya girer. En-iyi/en-kötü N seçmek için birebir uygundur.
Ne zaman kullanılır
Bir diziyi bozmadan sıralama düzenini almak ya da paralel bir diziyi aynı düzende hizalamak için.
a = arrayFrom(30, 10, 20) b = arraySortIndices(a, true) plot(arrayGet(b, 0))
En küçük değer (10) 1. konumda → ilk indeks 1.
a = arrayFrom(30, 10, 20) b = arraySortIndices(a, false) plot(arrayGet(b, 0))
Azalan sırada en büyük değer (30) 0. konumdadır → ilk indeks 0. Dizinin kendisi değişmez.
Z-skor: (x-ortalama)/std (yeni dizi). Sonuc: Arr(len=3, [1.0, -1.0, 0.0])
Her elemanı z-skoruna (x−ortalama)/std çeviren YENİ dizi; sapma 0 ise ya da 2'den az eleman varsa hepsi 0.
Not
Değerleri ortalaması 0, standart sapması 1 olacak şekilde ölçekler (örneklem std ile). Orijinali değiştirmez.
Ne zaman kullanılır
Farklı ölçekteki serileri karşılaştırılabilir hale getirmek ya da uç sapmaları (kaç std uzak) ölçmek için.
Sınırlar
Tüm elemanlar eşitse (std 0) ya da 2'den az elemansa sonuç tümüyle 0'dır.
a = arrayFrom(1, 2, 3) b = arrayStandardize(a) plot(arrayGet(b, 2))
En büyük eleman ortalamadan +1 std uzakta → 1.
a = arrayFrom(10, 20, 30, 40, 50) b = arrayStandardize(a) plot(arrayGet(b, 0))
İlk eleman (10, en küçük) ortalamanın ≈1.26 standart sapma altında → z-skoru ≈ -1.26.
Standart sapma (varyansın karekökü). Varsayılan popülasyon ÷N; biased=false verilirse örneklem ÷(N-1). Sonuc: 0.8164965809
Standart sapma (varyansın karekökü); varsayılan popülasyon (÷N), biased=false ile örneklem (÷N-1); 2'den az sayısal elemanda na.
Not
Değerlerle aynı birimde yayılım verir; arrayVariance'ın karekökü. Varsayılan popülasyon böleni ÷N; biased=false ile örneklem.
Ne zaman kullanılır
Bir dizideki değerlerin dağınıklığını değerlerle aynı birimde ölçmek için (volatilite benzeri).
Değerlerle aynı birimde yayılım verir; arrayVariance'ın karekökü.
a = arrayFrom(2, 4, 4, 4, 5, 5, 7, 9) plot(arrayStdev(a))
Örneklem standart sapması ≈ 2.14.
var w = arrayNew(0) arrayPush(w, close) if arraySize(w) > 20 { arrayShift(w) } plot(arrayStdev(w))
Son 20 close'un standart sapması — kayan oynaklık ölçüsü.
Dizideki sayıların toplamını verir. Ortalama almak için `arraySize` ile birlikte kullanılır. Boş dizide sıfır döner.
Sayısal elemanların toplamı; sayısal eleman yoksa 0.
Not
Sadece sayıları toplar; metin/na elemanları atlar. Boş dizide 0 verir.
Ne zaman kullanılır
Bir diziye biriktirdiğiniz değerlerin toplamını almak için (ağırlık toplamı, kümülatif skor).
a = arrayFrom(10, 20, 30) plot(arraySum(a))
Toplam: 60.
a = arrayFrom(close > open ? 1 : 0, close[1] > open[1] ? 1 : 0, close[2] > open[2] ? 1 : 0) plot(arraySum(a))
Son 3 barın kaçında close>open olduğunu sayar (0 ile 3 arası).
Dizinin başına öge ekler ve yeni boyutu verir; var olan ögeler bir sıra kayar. En yeni değerin başta durmasını istediğinde kullanılır.
Ekleme sonrası yeni eleman sayısı.
Not
Diziyi baştan büyütür; mevcut elemanlar bir konum sağa kayar.
Ne zaman kullanılır
En yeni değeri başta tutmak istediğinde (en-yeni-ilk sıralı liste).
a = arrayFrom(2, 3) arrayUnshift(a, 1) plot(arrayFirst(a))
Yeni ilk eleman: 1.
a = arrayFrom(3) arrayUnshift(a, 2) arrayUnshift(a, 1) plot(arrayGet(a, 0))
Başa sırayla 2 ve 1 eklenir → dizi 1,2,3; ilk eleman 1.
Varyans (yayılım). Varsayılan popülasyon ÷N; biased=false verilirse örneklem ÷(N-1). Sonuc: 0.6666666667
Varyans; varsayılan popülasyon (÷N), biased=false ile örneklem (÷N-1); 2'den az sayısal elemanda na.
Not
Dağılımın yayılımını ölçer. Varsayılan popülasyon böleni ÷N; biased=false ile örneklem böleni ÷(N-1). Karekökü arrayStdev'dir.
Ne zaman kullanılır
Bir diziye toplanan değerlerin ne kadar dağınık olduğunu ölçmek için.
Sınırlar
En az 2 sayısal eleman ister; tek eleman ya da boşta na.
Dağılımın yayılımını ölçer; n-1 bölen (örneklem) kullanır. Karekökü arrayStdev'dir.
a = arrayFrom(2, 4, 6) plot(arrayVariance(a))
Örneklem varyansı: 4.
a = arrayFrom(10, 10, 10, 10) plot(arrayVariance(a))
Tüm elemanlar eşit → dağılım yok → varyans 0.
Metni ayraçtan dizi'ye böler. Sonuc: Arr(len=3, ['a', 'b', 'c'])
Parçaları taşıyan metin dizisi.
Not
Metni ayraçtan bölüp dizi verir. Ayraç verilmezse virgül kullanılır; boş ayraç metni harflere ayırır.
Ne zaman kullanılır
Virgülle ayrılmış bir sembol/parametre listesini tek tek işlenebilir dizi elemanlarına çevirmek için.
a = split("AL,SAT,BEKLE", ",") plot(arraySize(a))
3 parçaya bölündü.
p = split("AL,SAT,BEKLE", ",") plot(arrayIndexOf(p, "SAT"))
Metin virgülden bölünür; parçalar arasında "SAT" 1. konumda (ayrıştır, sonra arayın).