CODESCRIPT

Sistem

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

chartBgColor()

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.

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

Arka plan rengini son bara etiket olarak yazar.

chartFgColor()

Grafik ön plan rengi. Sonuc: #e8eaed

Grafik ön plan (yazı) rengi (#rrggbb).

Not

Etiket/metin rengini temayla uyumlu tutmak için.

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

Ön plan rengini son bara etiket olarak yazar.

chartIsStandard()

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.

CODESCRIPT
plot(chartIsStandard() ? 1 : 0, "Standart mı")

Standart grafikte sabit 1 çizer.

chartLeftVisibleBarTime()

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.

CODESCRIPT
plot(chartLeftVisibleBarTime())

İlk barın zaman damgasını sabit bir çizgi olarak çizer.

chartRightVisibleBarTime()

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.

CODESCRIPT
plot(chartRightVisibleBarTime())

Son barın zaman damgasını sabit bir çizgi olarak çizer.

logError(message)

Hata günlüğü yazar (çalışmayı durdurmaz).

Değer döndürmez; mesajı hata olarak çalışma günlüğüne ekler (kodu DURDURMAZ).

message
string
Günlüğe yazılacak hata metni.

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.

CODESCRIPT
if close <= 0 {
  logError("gecersiz fiyat")
}
plot(close)

Fiyat sıfır/negatif olsaydı günlüğe hata satırı eklenir; normal veride tetiklenmez.

logInfo(message)

Bilgi günlüğü yazar.

Değer döndürmez; mesajı bilgi olarak çalışma günlüğüne ekler.

message
string
Günlüğe yazılacak bilgi metni.

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.

CODESCRIPT
if barstate.islast {
  logInfo("tarama tamamlandi")
}
plot(close)

Son barda günlüğe bir bilgi satırı ekler; çizim etkilenmez.

logWarning(message)

Uyarı günlüğü yazar.

Değer döndürmez; mesajı uyarı olarak çalışma günlüğüne ekler.

message
string
Günlüğe yazılacak uyarı metni.

Not

Kodu durdurmaz; bilgiden bir tık daha dikkat çeken ama ölümcül olmayan durumları işaretler.

CODESCRIPT
if rsi(close, 14) > 70 {
  logWarning("asiri alim bolgesi")
}
plot(close)

RSI 70'in üstüne çıktığı barlarda günlüğe uyarı ekler.

runtimeError(message)

Çalışmayı verilen mesajla durdurur (hata).

Değer döndürmez; kodu durdurup verilen mesajı hata olarak bildirir.

message
string
Kullanıcıya gösterilecek hata mesajı.

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.

CODESCRIPT
if close < 0 {
  runtimeError("fiyat negatif olamaz")
}
plot(close)

Fiyat negatif olsaydı kod durur; normal veride koşul sağlanmaz ve fiyat çizilir.

time_close(timeframe)

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).

timeframe
string
Boş metin ("") ya da geçerli grafiğin zaman dilimi olmalı.

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.

CODESCRIPT
plot(time_close(""))

Her barın kapanış zamanını (epoch ms) çizer.

timeframeChange(tf)

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.

tf
string
Zaman dilimi (birimli; örn "1D", "1W", "1h").

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.

CODESCRIPT
plotshape(timeframeChange("1D"), "Yeni gün")

Her yeni günün ilk barında bir işaret koyar.

CODESCRIPT
plot(timeframeChange("1W") ? high : na, "Hafta başı")

Yeni haftanın ilk barında high'ı çizer, diğer barlarda boş (na).

timeframeFromSeconds(seconds)

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.

seconds
number
Saniye cinsinden uzunluk (örn 3600).

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.

CODESCRIPT
label(close, timeframeFromSeconds(3600))

Etiket olarak "1h" yazar (3600 saniye = 1 saat).

CODESCRIPT
label(close, timeframeFromSeconds(86400))

Etiket olarak "1D" yazar (86400 saniye = 1 gün).

timeframeInSeconds(tf)

Zaman dilimini saniyeye çevirir. Sonuc: 14400

Zaman diliminin saniye cinsinden uzunluğunu döndürür (örn "1h" → 3600). Tanınmayan dilimde na.

tf
string
Zaman dilimi (birimli; örn "15m", "1h", "1D").

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.

CODESCRIPT
plot(timeframeInSeconds("1h"), "Saniye")

Sabit 3600 çizer (1 saat = 3600 saniye).

CODESCRIPT
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).

year
number
Yıl (ör. 2024).
month
number
Ay (1-12).
day
number
Gün (1-31).
hour
number
İsteğe bağlı, varsayılan 0.
minute
number
İsteğe bağlı, varsayılan 0.
second
number
İsteğe bağlı, varsayılan 0.

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.

CODESCRIPT
plot(timestamp(2024, 1, 1, 0, 0, 0))

2024-01-01 00:00:00 UTC'nin epoch milisaniyesini çizer.

inSession(session)

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.

session
string
Seans-saat dizesi "HHMM-HHMM" biçiminde (örn "1000-1800"); virgülle çoklu aralık, iki-nokta ardından gün-maskesi eklenebilir (örn "0930-1730:23456", 1=Pazar..7=Cumartesi).

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.

CODESCRIPT
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.

title
string
Göstergenin adı — grafikte ve gösterge listesinde bu görünür.
overlay
bool
İsteğe bağlı. true ise gösterge FİYAT panelinde çizilir, false/verilmezse ayrı panelde.
max_boxes_count
number
İsteğe bağlı. Grafikte aynı anda tutulacak EN ÇOK kutu sayısı. Varsayılan 50; daha fazlasını çizen kodda en ESKİ kutular sessizce düşer. En çok 500 verebilirsiniz.
max_labels_count
number
İsteğe bağlı. Aynı anda tutulacak en çok etiket sayısı. Varsayılan 50, en çok 500.
max_lines_count
number
İsteğe bağlı. Aynı anda tutulacak en çok çizgi sayısı. Varsayılan 50, en çok 500.
max_polylines_count
number
İsteğe bağlı. Aynı anda tutulacak en çok çokgen sayısı. Varsayılan 50, en çok 500.

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.

CODESCRIPT
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.

title
string
Stratejinin adı.
overlay
bool
İsteğe bağlı. true ise fiyat panelinde çizilir.
initial_capital
number
İsteğe bağlı. Başlangıç sermayesi (varsayılan 10000).
pyramiding
number
İsteğe bağlı. Aynı yönde üst üste kaç giriş yapılabileceği (varsayılan 1).
slippage
number
İsteğe bağlı. Emir başına varsayılan kayma yüzdesi.
commission_value
number
İsteğe bağlı. İşlem başına komisyon yüzdesi.
max_boxes_count
number
İsteğe bağlı. Grafikte aynı anda tutulacak EN ÇOK kutu sayısı. Varsayılan 50; daha fazlasını çizen kodda en ESKİ kutular sessizce düşer. En çok 500 verebilirsiniz.
max_labels_count
number
İsteğe bağlı. Aynı anda tutulacak en çok etiket sayısı. Varsayılan 50, en çok 500.
max_lines_count
number
İsteğe bağlı. Aynı anda tutulacak en çok çizgi sayısı. Varsayılan 50, en çok 500.
max_polylines_count
number
İsteğe bağlı. Aynı anda tutulacak en çok çokgen sayısı. Varsayılan 50, en çok 500.

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.

CODESCRIPT
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.

lang

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.

CODESCRIPT
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.