CODESCRIPT

Metin

23 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.

color(hex, alpha=1)

Renge opaklık uygular (alpha 0=şeffaf, 1=tam) → '#rrggbbaa'. plot/fill/bgcolor/mark renginde kullanın.

Opaklık uygulanmış #rrggbbaa biçiminde renk.

hex
color
Renk (#rgb ya da #rrggbb).
alpha
number
Opaklık 0-1 (0 tam saydam, 1 tam opak). Verilmezse 1.

Not

alpha 0-1 aralığına sıkıştırılır. Geçersiz hex verilirse girdi olduğu gibi döner. Dolgu ve arka planları yarı saydam yapmak için idealdir.

CODESCRIPT
plot(close, color=color("#26a69a", 0.5))

Fiyatı yarı saydam yeşille çizer (#26a69a80).

contains(text, search)

Metin parçayı içeriyor mu (true/false).

parça metnin içinde geçiyorsa true, yoksa false.

text
string
İçinde aranan metin.
search
string
Aranan alt parça.

Not

Büyük/küçük harfe duyarlıdır. Sembol adı ya da seans etiketi gibi metinleri sınıflandırmak için.

CODESCRIPT
plot(iff(contains("BTCUSDT", "USD"), 1, 0))

"BTCUSDT" içinde "USD" geçtiği için 1 çizilir.

endsWith(text, suffix)

Metin son-ek ile bitiyor mu. Sonuc: True

metin bu parçayla bitiyorsa true, yoksa false.

text
string
Denetlenen metin.
suffix
string
Sonda aranan parça.

Not

Büyük/küçük harfe duyarlıdır. Kotasyon para birimini (…USDT) ayıklamak için kullanışlıdır.

CODESCRIPT
plot(iff(endsWith("BTCUSDT", "USDT"), 1, 0))

"BTCUSDT", "USDT" ile bittiğinden 1 çizilir.

format(template,...values)

Şablon metni biçimler ('{0}'/'{1}'/'{}'). Sonuc: 1-2

Yer tutucuları doldurulmuş metin; text ile aynı davranır.

template
string
{0} {1} ya da {} yer tutuculu metin.
...değerler
any
Yer tutuculara yerleşecek değerler.

Not

text'in eş adıdır. {0} indeksle, {} sırayla doldurulur; ondalık en çok 4 haneye kırpılır.

CODESCRIPT
if barstate.islast {
  infoTable(format("O:{0} C:{1}", open, close))
}
plot(close)

Açılış ve kapanışı tek satırda birleştirip panele yazar.

formatTime(time)

Epoch zamanı 'YYYY-MM-DD HH:MM' (UTC) metnine çevirir.

"YYYY-MM-DD HH:MM" biçiminde (UTC) tarih-saat metni; geçersiz girdide boş metin.

time
number
Biçimlendirilecek zaman damgası (saniye ya da milisaniye).

Not

Saniye ya da milisaniye damgasını otomatik ayırt eder. Çıktı UTC'dir. Zamanı etiket/panelde göstermek için.

CODESCRIPT
if barstate.islast {
  label(close, formatTime(time), barIndex)
}
plot(close)

Son barın zamanını okunur tarih-saat olarak etikete yazar.

gradient(value, lo, hi, loColor, hiColor)

value'yu [lo,hi] aralığında iki renk arasında interpolasyon yapar. value seri ise renk serisi döner (bgcolor için).

değer [lo,hi] aralığında oranlanarak iki renk arasında karıştırılmış renk (seri verilirse renk serisi).

value
series
Rengi belirleyecek değer ya da seri.
lo
number
Alt sınır (loColor'a denk gelir).
hi
number
Üst sınır (hiColor'a denk gelir).
loColor
color
Alt sınırdaki renk.
hiColor
color
Üst sınırdaki renk.

Not

değer aralığın dışına taşarsa uçlara sabitlenir. Isı-haritası benzeri renklendirme için — örneğin RSI'ı aşırı-satımdan aşırı-alıma renk geçişiyle göstermek.

CODESCRIPT
plot(close, color=gradient(rsi(close, 14), 30, 70, "#ef5350", "#26a69a"))

RSI 30'a yakınken kırmızı, 70'e yakınken yeşil olacak şekilde fiyatı renklendirir.

indexOf(text, search)

Aranan parçanın metnin neresinde başladığını verir; yoksa -1 döner. ⚠ Sonucu doğrudan kullanmadan önce -1 olup olmadığına bakmak gerekir, yoksa bulunamayan durumda yanlış yerden kesersiniz.

parçanın ilk geçtiği konum (0'dan); bulunamazsa -1.

text
string
İçinde aranan metin.
search
string
Konumu aranan parça.

Not

Konum 0'dan sayılır. Bulunamama durumu -1 ile ayırt edilir.

CODESCRIPT
plot(indexOf("merhaba", "h"))

"h", "merhaba" içinde 3. konumda olduğundan 3 çizilir.

lower(text)

Küçük harfe çevirir. Sonuc: btc

Tüm harfleri küçük harfe çevrilmiş metin.

text
string
Küçültülecek metin.

Not

Karşılaştırmayı büyük/küçük harften bağımsız yapmak için iki tarafı da lower ile eşitleyin.

CODESCRIPT
if barstate.islast {
  label(close, lower("MERHABA"), barIndex)
}
plot(close)

Son bara "merhaba" yazan bir etiket koyar.

regexMatch(text, pattern)

Regex deseniyle ilk eşleşme (yoksa boş). Sonuc: 123

Desene uyan İLK parça; uyum yoksa boş metin.

text
string
İçinde arama yapılacak metin.
pattern
string
Aranan düzenli-ifade deseni.

Not

Yalnız ilk eşleşmeyi döndürür. Metin içinden sayı ya da kalıp ayıklamak için toNumber ile birlikte kullanılabilir.

CODESCRIPT
plot(toNumber(regexMatch("abc123def", "[0-9]+")))

Metindeki ilk sayı bloğu "123" ayıklanıp sayıya çevrilir ve çizilir.

repeat(text, n)

Metni n kez tekrarlar. Sonuc: ==========

metin ard arda n kez yazılmış hâli.

text
string
Tekrarlanacak metin.
n
number
Tekrar sayısı.

Not

n sıfır ya da negatifse boş metin döner. Basit ilerleme çubuğu / ayraç dizmede kullanışlıdır.

CODESCRIPT
plot(strLength(repeat("ab", 3)))

"ab" 3 kez tekrarlanır ("ababab"); uzunluğu 6 çizilir.

replace(text, old, new)

İlk eşleşmeyi değiştirir. Sonuc: a+b-c

Yalnız İLK eşleşmesi değiştirilmiş metin.

text
string
İçinde değişiklik yapılacak metin.
old
string
Aranan parça.
new
string
Yerine konacak parça.

Not

Sadece ilk eşleşmeyi değiştirir; tüm eşleşmeler için replaceAll kullanın.

CODESCRIPT
if barstate.islast {
  label(close, replace("aXbXc", "X", "-"), barIndex)
}
plot(close)

İlk X değişir; etiket "a-bXc" olur.

replaceAll(text, old, new)

Metindeki bütün eşleşmeleri yenisiyle değiştirir; ilkini değil hepsini. Ondalık ayracını değiştirmek ya da bir metni temizlemek için kullanılır.

Tüm eşleşmeleri değiştirilmiş metin.

text
string
İçinde değişiklik yapılacak metin.
old
string
Aranan parça.
new
string
Yerine konacak parça.

Not

Bütün eşleşmeleri değiştirir; yalnız ilkini değiştirmek için replace kullanın.

CODESCRIPT
if barstate.islast {
  label(close, replaceAll("aXbXc", "X", "-"), barIndex)
}
plot(close)

Tüm X'ler değişir; etiket "a-b-c" olur.

startsWith(text, prefix)

Metin ön-ek ile başlıyor mu. Sonuc: True

metin bu parçayla başlıyorsa true, yoksa false.

text
string
Denetlenen metin.
prefix
string
Başta aranan parça.

Not

Büyük/küçük harfe duyarlıdır.

CODESCRIPT
plot(iff(startsWith("BTCUSDT", "BTC"), 1, 0))

"BTCUSDT", "BTC" ile başladığından 1 çizilir.

str(value, format?)

`toString` ile aynı işi yapar, kısa adıdır. Sayıyı ya da seriyi metne çevirir; seri verilirse her bar için ayrı metin üretir.

Değerin metin karşılığı; seri verilirse eleman-eleman metin serisi. na → "NaN".

value
any
Metne dönüştürülecek sayı, mantıksal ya da seri.
format
string
İsteğe bağlı. Biçim: "#.##" gibi desen, "percent", "volume" ya da "mintick".

Not

Biçim verilmezse en çok 10 ondalık gösterip fazla sıfırları atar. "percent" sonuna % ekler, "volume" büyük sayıları K/M/B/T ile kısaltır, "mintick" sembolün fiyat adımına yuvarlar.

Ne zaman kullanılır

Sayısal bir değeri etikete, panele ya da tabloya yazmak için — sabit metinle birleştirmeden önce metne çevirmede.

CODESCRIPT
if barstate.islast {
  label(close, str(close, "#.##"), barIndex)
}
plot(close)

Kapanışı iki ondalıkla metne çevirip son bara etiket olarak koyar.

strFormat(template,...values)

format() ile aynı.

Yer tutucuları doldurulmuş metin; text/format ile aynı davranır.

template
string
{0} {1} ya da {} yer tutuculu metin.
...değerler
any
Yer tutuculara yerleşecek değerler.

Not

text'in bir başka eş adıdır — biçimlendirme davranışı aynıdır.

CODESCRIPT
if barstate.islast {
  infoTable(strFormat("H:{0} L:{1}", high, low))
}
plot(close)

Yüksek ve düşük değerleri tek satırda birleştirip panele yazar.

strLength(text)

Metnin kaç karakter olduğunu verir. Bir metni parçalara ayırırken ya da panelde sığıp sığmadığını denetlerken kullanılır.

Metindeki karakter sayısı (sayı).

text
string
Uzunluğu istenen metin.

Not

Boş metin için 0 döner.

CODESCRIPT
plot(strLength("merhaba"))

"merhaba" 7 karakter olduğundan 7 çizilir.

string(value)

Tip dönüşümü: yalnız metin ve na değeri metne çevrilir (na korunur). Sayı/bool→metin için str.tostring kullanın.

Girdi metinse aynısı, na ise na metni.

value
any
Metne dönüştürülecek değer (yalnız metin ya da na).

Not

Yalnız metin/na kabul eder; sayı ya da mantıksal verilirse hata verir. Sayı/seriyi metne çevirmek için str kullanın.

Uygun değildir

Sayı ya da mantıksal değeri metne çevirmek bu işin değil — onun için str (ya da toString) kullanılır.

CODESCRIPT
plot(strLength(string("merhaba")))

Metin girdisi olduğu gibi döner; uzunluğu 7 çizilir.

substring(text, start, end?)

Metnin bir parçasını keser: başlangıç sırasından bitiş sırasına kadar. Sıra sıfırdan başlar ve bitiş sırası dahil değildir. Bir sembol adının ilk harflerini almak ya da bir sayıyı bölmek için kullanılır.

[başla, bitir) aralığındaki alt metin.

text
string
Parçası alınacak metin.
start
number
Başlangıç konumu (0'dan başlar).
end
number
İsteğe bağlı. Bitiş konumu (dâhil değil); verilmezse sona kadar.

Not

Konumlar 0'dan başlar ve bitir hariç tutulur; bitir verilmezse metnin sonuna kadar alınır.

CODESCRIPT
plot(strLength(substring("merhaba", 0, 3)))

İlk 3 karakter ("mer") alınır; uzunluğu 3 çizilir.

text(template,...values)

Şablondaki {0},{1}... (indeksli) veya {} (sıralı) yerine değerleri koyar. label/mark/alert metni için.

Yer tutucuları verilen değerlerle doldurulmuş metin.

template
string
{0} {1} ya da sıralı {} yer tutucuları içeren metin.
...değerler
any
Yer tutuculara yerleşecek değerler (sayı/metin/seri).

Not

{0} indeksle, {} ise sırayla doldurulur. Ondalık sayı en çok 4 haneye kırpılır; seri verilirse son geçerli değeri yazılır.

Ne zaman kullanılır

Etiket, panel ya da tabloya sayısal değer katıştırmak için — sabit metin ile canlı değeri tek satırda birleştirmede.

CODESCRIPT
if barstate.islast {
  infoTable(text("Kapanis: {0}", close))
}
plot(close)

Son barda sağ-üst panele "Kapanis: " satırı yazar.

CODESCRIPT
label(close, text("RSI {0}", rsi(close, 14)), 50)
plot(close)

50. bara RSI değerini katıştıran bir etiket koyar.

toNumber(text)

Metni sayıya çevirir. Metnin TAMAMI sayı yazımına uymalıdır (isteğe bağlı işaret, ondalık nokta, üs biçimi: 42 / -2.5 /.5 / 1e3). Uymayan her şey boş değer döner: "1,5" (virgül ondalık ayıracı kabul edilmez, nokta kullanın), "12abc", "0x10", boş metin. Boş değer mi diye na() ile bakılır.

text
string
Sayıya çevrilecek metin.

Not

Baş/son boşluklar yok sayılır. Geçersiz metin hata vermez, na döner.

CODESCRIPT
plot(toNumber("3.14"))

"3.14" metnini 3.14 sayısına çevirip çizer.

toString(value, format?)

Sayıyı metne çevirir; panelde ya da etikette göstermek için gerekir. İkinci değer biçimi belirler (`"#.##"` iki basamak gibi). ⚠ Biçim dile duyarlı değildir: ondalık ayracı nokta gelir, binlik ayracı konmaz — Türkçe yazım istiyorsanız metni kendiniz düzenlemen gerekir.

Değerin metin karşılığı; str ile aynı davranır.

value
any
Metne dönüştürülecek sayı, mantıksal ya da seri.
format
string
İsteğe bağlı. Biçim deseni (str ile aynı).

Not

str'nin eş adıdır — aynı biçim seçeneklerini kabul eder. Okunurluk için tercih edilebilir.

CODESCRIPT
if barstate.islast {
  label(close, toString(rsi(close, 14)), barIndex)
}
plot(close)

RSI değerini metne çevirip son bara etiket olarak yazar.

trim(text)

Baş/son boşlukları kırpar.

Baştaki ve sondaki boşlukları kaldırılmış metin.

text
string
Kırpılacak metin.

Not

Yalnız uçlardaki boşlukları alır; içteki boşluklar korunur.

CODESCRIPT
plot(strLength(trim("  ab  ")))

Uçlardaki boşluklar atılır; kalan "ab" uzunluğu 2 çizilir.

upper(text)

Büyük harfe çevirir. Sonuc: BTC

Tüm harfleri büyük harfe çevrilmiş metin.

text
string
Büyütülecek metin.

Not

Sembol adlarını tek biçime getirmek için kullanışlıdır.

CODESCRIPT
if barstate.islast {
  label(close, upper("btc"), barIndex)
}
plot(close)

Son bara "BTC" yazan bir etiket koyar.

strPos(text, search)

Parçanın konumu (yoksa na). İlk karakter 0.

parçanın ilk geçtiği konum (0'dan); bulunamazsa na.

text
string
İçinde aranan metin.
search
string
Konumu aranan parça.

Not

Konum 0'dan sayılır. `indexOf` ile TEK farkı bulunamama durumudur: `strPos` na, `indexOf` -1 döndürür. Bulunup bulunmadığını `na(...)` ile sınayacaksanız `strPos` kullanın — `indexOf`'un -1'i na değildir ve o sınama hep yanlış çıkar.

CODESCRIPT
strPos("BTCUSDT", "USD")

"BTCUSDT" içinde "USD" ifadesinin kaçıncı sırada başladığını bulur; çizim yapmaz, sonucu döndürür.

formatNumber(value, format?)

Sayıyı yerel yazımla metne çevirir: binlik ayracı ve ondalık ayracı kullanıcının diline göre konur (Türkçede `2.505,18`, İngilizcede `2,505.18`). İkinci değer iki işi birden görür — metin verirseniz bölgeyi seçersiniz (`"tr"` / `"en"`), sayı verirseniz ondalık hane sayısını belirlersiniz. Hiç vermezsen bölge kullanıcının dilinden, hane de sayının kendisinden gelir. ⚠ `toString` bu işi yapmaz: o ondalığı hep nokta yazar ve binlik ayracı koymaz.

Sayının yerel yazımla metne çevrilmiş hâli.

value
number
Metne çevrilecek sayı. Seri verilirse her bar ayrı çevrilir.
format
string|number
İki işi birden görür: metin verirseniz bölgeyi seçersiniz ("tr" / "en"), sayı verirseniz ondalık hane sayısını belirlersiniz. Vermezsen bölge kullanıcının dilinden, hane de sayının kendisinden gelir.

Not

⚠ `toString` bu işi YAPMAZ ve yapmamalı: o referans dille aynı kalıyor — ondalığı hep nokta yazar, binlik ayracı koymaz. Panelde ya da etikette okunur sayı göstermek istiyorsanız bunu kullanın. Yuvarlama yarım-yukarı: 2,675 iki haneye 2,68 olur.

CODESCRIPT
fiyat = 2505.18
alert(formatNumber(fiyat))
alert(formatNumber(fiyat, "en"))
alert(formatNumber(fiyat, 4))

Sayıyı okunur biçime çevirip uyarı olarak gönderir; binlik ayracı ve ondalık basamak sayısı ayarlanabilir.