Metin
23 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.
Renge opaklık uygular (alpha 0=şeffaf, 1=tam) → '#rrggbbaa'. plot/fill/bgcolor/mark renginde kullanın.
Opaklık uygulanmış #rrggbbaa biçiminde renk.
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.
plot(close, color=color("#26a69a", 0.5))
Fiyatı yarı saydam yeşille çizer (#26a69a80).
Metin parçayı içeriyor mu (true/false).
parça metnin içinde geçiyorsa true, yoksa false.
Not
Büyük/küçük harfe duyarlıdır. Sembol adı ya da seans etiketi gibi metinleri sınıflandırmak için.
plot(iff(contains("BTCUSDT", "USD"), 1, 0))
"BTCUSDT" içinde "USD" geçtiği için 1 çizilir.
Metin son-ek ile bitiyor mu. Sonuc: True
metin bu parçayla bitiyorsa true, yoksa false.
Not
Büyük/küçük harfe duyarlıdır. Kotasyon para birimini (…USDT) ayıklamak için kullanışlıdır.
plot(iff(endsWith("BTCUSDT", "USDT"), 1, 0))
"BTCUSDT", "USDT" ile bittiğinden 1 çizilir.
Şablon metni biçimler ('{0}'/'{1}'/'{}'). Sonuc: 1-2
Yer tutucuları doldurulmuş metin; text ile aynı davranır.
Not
text'in eş adıdır. {0} indeksle, {} sırayla doldurulur; ondalık en çok 4 haneye kırpılır.
if barstate.islast { infoTable(format("O:{0} C:{1}", open, close)) } plot(close)
Açılış ve kapanışı tek satırda birleştirip panele yazar.
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.
Not
Saniye ya da milisaniye damgasını otomatik ayırt eder. Çıktı UTC'dir. Zamanı etiket/panelde göstermek için.
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).
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.
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.
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.
Not
Konum 0'dan sayılır. Bulunamama durumu -1 ile ayırt edilir.
plot(indexOf("merhaba", "h"))
"h", "merhaba" içinde 3. konumda olduğundan 3 çizilir.
Küçük harfe çevirir. Sonuc: btc
Tüm harfleri küçük harfe çevrilmiş 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.
if barstate.islast { label(close, lower("MERHABA"), barIndex) } plot(close)
Son bara "merhaba" yazan bir etiket koyar.
Regex deseniyle ilk eşleşme (yoksa boş). Sonuc: 123
Desene uyan İLK parça; uyum yoksa boş metin.
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.
plot(toNumber(regexMatch("abc123def", "[0-9]+")))
Metindeki ilk sayı bloğu "123" ayıklanıp sayıya çevrilir ve çizilir.
Metni n kez tekrarlar. Sonuc: ==========
metin ard arda n kez yazılmış hâli.
Not
n sıfır ya da negatifse boş metin döner. Basit ilerleme çubuğu / ayraç dizmede kullanışlıdır.
plot(strLength(repeat("ab", 3)))
"ab" 3 kez tekrarlanır ("ababab"); uzunluğu 6 çizilir.
İlk eşleşmeyi değiştirir. Sonuc: a+b-c
Yalnız İLK eşleşmesi değiştirilmiş metin.
Not
Sadece ilk eşleşmeyi değiştirir; tüm eşleşmeler için replaceAll kullanın.
if barstate.islast { label(close, replace("aXbXc", "X", "-"), barIndex) } plot(close)
İlk X değişir; etiket "a-bXc" olur.
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.
Not
Bütün eşleşmeleri değiştirir; yalnız ilkini değiştirmek için replace kullanın.
if barstate.islast { label(close, replaceAll("aXbXc", "X", "-"), barIndex) } plot(close)
Tüm X'ler değişir; etiket "a-b-c" olur.
Metin ön-ek ile başlıyor mu. Sonuc: True
metin bu parçayla başlıyorsa true, yoksa false.
Not
Büyük/küçük harfe duyarlıdır.
plot(iff(startsWith("BTCUSDT", "BTC"), 1, 0))
"BTCUSDT", "BTC" ile başladığından 1 çizilir.
`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".
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.
if barstate.islast { label(close, str(close, "#.##"), barIndex) } plot(close)
Kapanışı iki ondalıkla metne çevirip son bara etiket olarak koyar.
format() ile aynı.
Yer tutucuları doldurulmuş metin; text/format ile aynı davranır.
Not
text'in bir başka eş adıdır — biçimlendirme davranışı aynıdır.
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.
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ı).
Not
Boş metin için 0 döner.
plot(strLength("merhaba"))
"merhaba" 7 karakter olduğundan 7 çizilir.
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.
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.
plot(strLength(string("merhaba")))
Metin girdisi olduğu gibi döner; uzunluğu 7 çizilir.
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.
Not
Konumlar 0'dan başlar ve bitir hariç tutulur; bitir verilmezse metnin sonuna kadar alınır.
plot(strLength(substring("merhaba", 0, 3)))
İlk 3 karakter ("mer") alınır; uzunluğu 3 çizilir.
Şablondaki {0},{1}... (indeksli) veya {} (sıralı) yerine değerleri koyar. label/mark/alert metni için.
Yer tutucuları verilen değerlerle doldurulmuş metin.
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.
if barstate.islast { infoTable(text("Kapanis: {0}", close)) } plot(close)
Son barda sağ-üst panele "Kapanis:
label(close, text("RSI {0}", rsi(close, 14)), 50) plot(close)
50. bara RSI değerini katıştıran bir etiket koyar.
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.
Not
Baş/son boşluklar yok sayılır. Geçersiz metin hata vermez, na döner.
plot(toNumber("3.14"))
"3.14" metnini 3.14 sayısına çevirip çizer.
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.
Not
str'nin eş adıdır — aynı biçim seçeneklerini kabul eder. Okunurluk için tercih edilebilir.
if barstate.islast { label(close, toString(rsi(close, 14)), barIndex) } plot(close)
RSI değerini metne çevirip son bara etiket olarak yazar.
Baş/son boşlukları kırpar.
Baştaki ve sondaki boşlukları kaldırılmış metin.
Not
Yalnız uçlardaki boşlukları alır; içteki boşluklar korunur.
plot(strLength(trim(" ab ")))
Uçlardaki boşluklar atılır; kalan "ab" uzunluğu 2 çizilir.
Büyük harfe çevirir. Sonuc: BTC
Tüm harfleri büyük harfe çevrilmiş metin.
Not
Sembol adlarını tek biçime getirmek için kullanışlıdır.
if barstate.islast { label(close, upper("btc"), barIndex) } plot(close)
Son bara "BTC" yazan bir etiket koyar.
Parçanın konumu (yoksa na). İlk karakter 0.
parçanın ilk geçtiği konum (0'dan); bulunamazsa na.
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.
strPos("BTCUSDT", "USD")
"BTCUSDT" içinde "USD" ifadesinin kaçıncı sırada başladığını bulur; çizim yapmaz, sonucu döndürür.
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.
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.
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.