Sistem
14 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.
Grafik arka plan rengi. Sonuc: #0a0b0e
Grafik arka plan rengi (#rrggbb).
Not
Temaya uygun çizim yapmak için — kendi eklediğiniz katmanların arka planla uyumlu renklenmesinde.
if barstate.islast { label(close, chartBgColor(), barIndex) } plot(close)
Arka plan rengini son bara etiket olarak yazar.
Grafik ön plan rengi. Sonuc: #e8eaed
Grafik ön plan (yazı) rengi (#rrggbb).
Not
Etiket/metin rengini temayla uyumlu tutmak için.
if barstate.islast { label(close, chartFgColor(), barIndex) } plot(close)
Ön plan rengini son bara etiket olarak yazar.
Standart mum grafiği mi (true).
Grafiğin standart mumlar kullanıp kullanmadığını döndürür — şu an her zaman true.
Not
Bar tipine göre dallanan mantığı korumak için bir kapıdır; CodeScript standart barlar ürettiğinden değer sabittir.
Ne zaman kullanılır
Yalnız standart bar tipinde anlamlı olan bir mantığı koşullamak için (bar-tipi kapısı).
Sınırlar
Şimdilik her zaman true döndürür; alternatif bar tiplerini (heikin-ashi/renko vb.) tespit etmez çünkü bu tipler burada üretilmez.
plot(chartIsStandard() ? 1 : 0, "Standart mı")
Standart grafikte sabit 1 çizer.
Görünür ilk bar zamanı. Sonuc: 1700000000
Veri aralığındaki ilk barın zaman damgası.
Not
Görünür pencerenin sol ucunu temel almak için; zaman ekseninde konumlandırma yaparken referans olarak.
plot(chartLeftVisibleBarTime())
İlk barın zaman damgasını sabit bir çizgi olarak çizer.
Görünür son bar zamanı. Sonuc: 1700212400
Veri aralığındaki son barın zaman damgası.
Not
Görünür pencerenin sağ ucunu (en güncel bar) temel almak için.
plot(chartRightVisibleBarTime())
Son barın zaman damgasını sabit bir çizgi olarak çizer.
Hata günlüğü yazar (çalışmayı durdurmaz).
Değer döndürmez; mesajı hata olarak çalışma günlüğüne ekler (kodu DURDURMAZ).
Not
Çalışmayı kesmez — durdurmak istiyorsanız runtimeError kullanın. Beklenmeyen bir durumu günlükte kalıcı iz olarak bırakmak için.
Uygun değildir
Çalışmayı gerçekten durdurmak istiyorsanız bu değil; onun için runtimeError kullanılır.
if close <= 0 { logError("gecersiz fiyat") } plot(close)
Fiyat sıfır/negatif olsaydı günlüğe hata satırı eklenir; normal veride tetiklenmez.
Bilgi günlüğü yazar.
Değer döndürmez; mesajı bilgi olarak çalışma günlüğüne ekler.
Not
Kodu durdurmaz. Ara değerleri ya da hangi dalın çalıştığını izlemek için — çıktı ayrı bir günlük listesinde toplanır.
if barstate.islast { logInfo("tarama tamamlandi") } plot(close)
Son barda günlüğe bir bilgi satırı ekler; çizim etkilenmez.
Uyarı günlüğü yazar.
Değer döndürmez; mesajı uyarı olarak çalışma günlüğüne ekler.
Not
Kodu durdurmaz; bilgiden bir tık daha dikkat çeken ama ölümcül olmayan durumları işaretler.
if rsi(close, 14) > 70 { logWarning("asiri alim bolgesi") } plot(close)
RSI 70'in üstüne çıktığı barlarda günlüğe uyarı ekler.
Çalışmayı verilen mesajla durdurur (hata).
Değer döndürmez; kodu durdurup verilen mesajı hata olarak bildirir.
Not
Çağrıldığı an çalışmayı keser. Bir varsayımın bozulduğunu (geçersiz parametre, beklenmeyen durum) erken ve açık biçimde bildirmek için — koşula bağlayıp yalnız hatalı durumda tetikleyin.
if close < 0 { runtimeError("fiyat negatif olamaz") } plot(close)
Fiyat negatif olsaydı kod durur; normal veride koşul sağlanmaz ve fiyat çizilir.
Geçerli barın KAPANIŞ zamanı (milisaniye). time() bar açılış zamanını verir, time_close() kapanışı (açılış + bar süresi). Zaman dilimi boş ya da geçerli grafik TF'si olmalıdır.
Geçerli barın KAPANIŞ zamanı (epoch milisaniye).
Not
`time()` barın AÇILIŞ zamanını verir, `time_close()` ise kapanışını (açılış + bar süresi). Sonuç borsa saat diliminden bağımsızdır (yalnız UTC bar sınırlarına dayanır).
Sınırlar
Farklı bir zaman dilimi (ör. üst TF) verilirse net hata verir — yalnız mevcut grafiğin TF'sini destekler.
plot(time_close(""))
Her barın kapanış zamanını (epoch ms) çizer.
Zaman dilimi sınırında true (yeni periyot). Sonuc: False
Mantıksal seri: verilen zaman diliminin yeni bir dilimini AÇAN barda true, diğerlerinde false.
Not
İlk bar her zaman false'tur (öncesi yoktur). Tanınmayan bir zaman diliminde tüm seri false döner.
Ne zaman kullanılır
Gün/hafta/seans sınırlarını yakalamak için — yeni-gün işareti, günde bir kez çalışan mantık, ilk-barda-sıfırla gibi.
Sınırlar
Zaman dilimi bir birim (m/h/d/w) taşımalıdır (örn "1D"); birimsiz sayı tanınmaz. Sınır tespiti bar zaman damgalarına dayanır; haftalık dilim Pazartesi başlar.
Uygun değildir
Üst zaman dilimi değerini okumak için değil (o iş htf/security'nin); yalnız dilim sınırını işaretler.
plotshape(timeframeChange("1D"), "Yeni gün")
Her yeni günün ilk barında bir işaret koyar.
plot(timeframeChange("1W") ? high : na, "Hafta başı")
Yeni haftanın ilk barında high'ı çizer, diğer barlarda boş (na).
Saniyeyi zaman dilimi metnine çevirir. Sonuc: 4h
Saniyeyi derli toplu bir zaman dilimi dizesine çevirir (örn 3600 → "1h", 86400 → "1D"). Sıfır/negatif ya da sayı-olmayan → boş metin.
Not
timeframeInSeconds'ın tersidir; tam bölünen en büyük birimi seçer (hafta > gün > saat > dakika).
Ne zaman kullanılır
Sayısal bir uzunluğu tekrar okunur bir zaman dilimi etiketine çevirmek için (örn hesaplanan bir aralığı göstermek).
Sınırlar
En büyük tam-bölünen birimi seçer: 604800→"1W", 86400→"1D", 3600→"1h", aksi halde dakika ("Nm"). Pozitif olmayan ya da sayı-olmayan girdi boş metin döndürür.
label(close, timeframeFromSeconds(3600))
Etiket olarak "1h" yazar (3600 saniye = 1 saat).
label(close, timeframeFromSeconds(86400))
Etiket olarak "1D" yazar (86400 saniye = 1 gün).
Zaman dilimini saniyeye çevirir. Sonuc: 14400
Zaman diliminin saniye cinsinden uzunluğunu döndürür (örn "1h" → 3600). Tanınmayan dilimde na.
Not
Bir zaman dilimi dizesini sayısal bir uzunluğa çevirir; ölçekleme ya da karşılaştırmalarda kullanılır.
Ne zaman kullanılır
Bir zaman dilimini sayıya çevirip başka bir dilimle oranlamak ya da bir eşiği bar sayısına göre ölçeklemek için.
Sınırlar
Zaman dilimi bir birim (m/h/d/w) taşımalıdır; birimsiz sayı (örn "60") na döner — "60m" ya da "1h" kullanın. Dakika=60, saat=3600, gün=86400, hafta=604800.
plot(timeframeInSeconds("1h"), "Saniye")
Sabit 3600 çizer (1 saat = 3600 saniye).
plot(timeframeInSeconds("1D") / 3600, "Günde kaç saat")
Sabit 24 çizer (bir günün saat sayısı).
timestamp(year, month, day, hour, minute, second)
Takvim parçalarından (yıl, ay, gün[, saat, dakika, saniye]) epoch zaman damgası (milisaniye, UTC) üretir. Eksik saat/dakika/saniye 0 sayılır; argümanlar sabit ya da seri (ör. year, month) olabilir.
Takvim parçalarından üretilen epoch zaman damgası (milisaniye, UTC).
Not
Dönüşüm dosdoğru UTC'dir — borsa saat dilimi/DST karışmaz (bunlar yalnız `hour`/`minute`/`year` gibi OKUMA değişkenlerinde uygulanır). Argümanlar sabit ya da seri (`year`, `month` gibi) olabilir; seri verilirse sonuç da bar-bar hesaplanan bir seri olur.
plot(timestamp(2024, 1, 1, 0, 0, 0))
2024-01-01 00:00:00 UTC'nin epoch milisaniyesini çizer.
Bar, belirtilen seans-saat aralığında mı — "1000-1800" (opsiyonel gün-maskesi "1000-1800:23456", 1=Pazar..7=Cumartesi). Dolaylı `not na(time(timeframe.period, session))` deseninin tek-çağrılık karşılığı; grafiğin kendi bar zamanına bakar, ayrı bir zaman-dilimi argümanı istemez.
Mantıksal seri: barın zamanı verilen seans aralığında ise true, dışındaysa false.
Not
Aynı sonucu `not na(time(timeframe.period, session))` dolaylı deseniyle de yazabilirsiniz; inSession() bunu tek çağrıda verir. Açılış DAHİL, kapanış HARİÇ ("1000-1800" → 18:00'deki bar dışarıda). Gece-aşan aralık (start>end, örn "2200-0300") desteklidir.
Ne zaman kullanılır
Bir stratejiyi yalnız belirli saatlerde çalıştırmak için — örn BIST'te 10:00-18:00 arasında işlem açmak, öğle molası dışını filtrelemek, gece seansını hariç tutmak.
Sınırlar
Sembolün zaman dilimi çözülemiyorsa (bridge meta veya sembol sınıflandırması yoksa, örn ABD hisseleri) net hata verir — sessiz +0 ofset uydurulmaz. Zaman dilimi argümanı istemez; her zaman grafiğin KENDİ bar zamanına bakar.
enterLong(close > sma(close, 20) and inSession("1000-1800"))
Fiyat 20 barlık ortalamanın üstündeyken ve bar 10:00-18:00 arasındayken alış pozisyonu açar; seans dışındaki barlarda giriş yapmaz.
indicator(title, overlay?, max_boxes_count?, max_labels_count?, max_lines_count?, max_polylines_count?)
Kodun başında yazılır ve göstergenin ayarlarını verir. En çok işe yarayan dört ayar ÇİZİM SINIRLARIDIR: grafikte aynı anda en çok kaç kutu, etiket, çizgi ve çokgen tutulacağı. Varsayılan her tür için 50'dir — daha fazlasını çizen kodda EN ESKİ nesneler düşer ve siz bunu fark etmezsiniz. 200 kutu çizen bir kod yazdıysanız max_boxes_count = 200 yazın (en çok 500).
Değer döndürmez; kodun ayarlarını bildirir.
Not
Çizim sınırları GERÇEK bir davranıştır, süs değil: her barda kutu/etiket çizen bir kod uzun grafikte sınırı aşar ve en eski nesneler düşer. Grafikte 'bir kısmı yok' görünüyorsa ilk bakılacak yer budur.
indicator("Bölgeler", overlay = true, max_boxes_count = 200)
Kodu gösterge olarak tanıtır, fiyat grafiğinin üstüne çizdirir ve en fazla 200 kutu çizilmesine izin verir.
strategy(title, overlay?, initial_capital?, pyramiding?, slippage?, commission_value?, max_boxes_count?, max_labels_count?, max_lines_count?, max_polylines_count?)
Kodun başında yazılır ve stratejinin ayarlarını verir: başlangıç sermayesi, aynı yönde üst üste kaç giriş yapılabileceği (pyramiding), kayma ve komisyon. Çizim sınırları da buradan verilir; indicator ile aynı anlamdadır.
Değer döndürmez; stratejinin ayarlarını bildirir.
Not
Çizim sınırları GERÇEK bir davranıştır, süs değil: her barda kutu/etiket çizen bir kod uzun grafikte sınırı aşar ve en eski nesneler düşer. Grafikte 'bir kısmı yok' görünüyorsa ilk bakılacak yer budur.
strategy("Kırılım", overlay = true, initial_capital = 10000, pyramiding = 1)
Kodu strateji olarak tanıtır: 10.000 birim başlangıç sermayesiyle, fiyat grafiğinin üstünde çalışır ve aynı yönde birden fazla giriş yapılmasına izin verir.
Arayüzün seçili dili: "tr" ya da "en". Kodun gösterdiği metinleri dile göre seçmek için kullanılır.
Arayüzün seçili dili: "tr" ya da "en".
Not
Kodun gösterdiği metinleri dile göre seçmek için kullanılır. Düz metindir, bar-bar değişmez.
ad = lang == "en" ? "Length" : "Uzunluk" x = input(20, 1, 100, 1, ad) plot(sma(close, x), ad)
Ayar kutusunun adını arayüz diline göre seçer: İngilizce kipte "Length", Türkçe kipte "Uzunluk" yazar.