Haziran 25, 2019

Pine Script v4 ile tanışın!

Pine Script v4 programla dilinin yeni versiyonu ile tanışın! Yeni bir takım özellikleri mevcut. Dilin yapısını geliştirdik ve birkaç hata düzeltmesi yaptık. Lakin, en önemlisi ve uzun süreden beri beklenen nesne çizimi özelliği şimdi geldi.

Bu blog yazısında yeni özelliklerden kısaca bahsedeceğiz. Daha fazla detay öğrenmek için lütfen dokümantasyon ve referans kitapçığını okuyun (doğrudan nesne çizimleri açıklamaları bölümüne buradan gidebilirsiniz).

Etiket Çizim Nesnesi

label.new fonksiyonu grafikler üzerinde isteğe bağlı olanlar dahil olmak üzere etiketler yerleştirmenizi sağlar. Aşağıda son çubuğun kapanış değerini gösteren bir etiket çizen kod örneğini bulabilirsiniz.

//@version=4

study("Last Bar Price", overlay=true)

l = label.new(bar_index, na, 'last price is '+tostring(close),

color=close >= open ? color.green : color.red,

textcolor=color.white,

style=label.style_labeldown, yloc=yloc.abovebar)

label.delete(l[1])

label.* fonksiyonunu kullanarak oluşturduğunuz etiket nesnesini düzenleyebilir ya da silebilirsiniz. Etiket kullanımı ile ilgili daha kompleks bir örnek için bakınız – Pivot Points High/Low.

Çizgi Çizim Nesnesi

line.new fonksiyonu grafik üzerinde çizgiler oluşturmanızı sağlar. Aşağıda mevcut çubuğun yüksekliğini ve 10. geçmiş çubuğun düşük seviyesini birleştiren bir çizgi çizen basit bir komut örneği bulabilirsiniz :

//@version=4

study("Line", overlay=true)

l = line.new(bar_index, high, bar_index[10], low[10], width = 4)

line.delete(l[1])

Çizgi nesneleri, line.* ailesinin uygun işlevleri kullanılarak düzenlenebilir ve silinebilir. Çizgi nesneleri kullanarak daha karmaşık bir komut örneği için bakınız – Zig Zag.

Lütfen şu anda grafiklerde her komut dosyası için tek bir tipte (etiket veya çizgi) toplamda yaklaşık 50–55 çizim çizebileceğinizi aklınızda bulundurun. Bu, aşırı sunucu kaynağı kullanımını önlemek için tasarlanmış bir sınırlamadır.

Yeni çizgi ve etiket veri türleri, kullanıcı komut dosyalarında popüler göstergelerin arkasında karmaşık bir mantık uygulamanıza izin vererek Pine Script’in yeteneklerini büyük ölçüde artırır. Dokümanlar arasında çeşitli örnekler bulunabilir.

Seriler Dizesi

Artık seriler dizesi veri tipi değişkenleri destekleniyor. Aşağıda etiketlerde serileri dizesi kullanım örneği bulunabilir:

//@version=4

study("Series string", overlay = true)

draw_label(title) =>

    label.new(bar_index, high, text=title)

t = close >= open ? "green" : "red"

draw_label(t)

Var Anahtar Sözcüğü

Normal bir şekilde tanımlanan bir değişken, betiğin her hesaplanmasında yeniden başlatılır. Bu, değişkenin önceki değerini kullanabilmek için komut kullanımı gerektiriyordu. var anahtar sözcüğü bir değişken tanımlar ve bunu yalnızca bir kez başlatır. Bu, değişkenin değerinin başlangıç ve değer son ataması arasında çubuklar arasında geçişlerde otomatik olarak kaydedilmesini sağlar. Grafikteki yeşil çubukların sayısını sayan bir komut örneği şu şekildedir :

//@version=4

study("My Script")

var s = 0.0

if close >= open

    s := s + 1

plot(s)

Close> = open koşulu her gerçekleştiğinde, s değişkeninin değeri bir artar. Başlangıç değeri, herhangi bir aritmetik ifade olabilir.

Değişkenleri var anahtar sözcüğüyle tanımlamak için kullanılan sözdizimi, şu kodun kullanılmasını önler: s: = nz (s [1], s) Değişkenleri var ile tanımlamak, çizimlerle çalışırken çok yararlı olabilir.

Hazır Sabitlerin, Değişkenlerin ve Fonksiyonların Yeniden İsimlendirilmesi

Pine Script v4 ile aşağıdaki hazır sabitler, değişkenler ve fonksiyonlar yeniden isimlendirilmiştir:

  1. Color sabitleri (örn red) color.* isim alanına taşındı (örn color.red).
  2. color fonksiyonu color.new olarak yeniden adlandırıldı.
  3. Girdi tipleri için sabitler (örn integer) input.* isim alanına taşındı (örn  input.integer).
  4. Çizim stili sabitleri (örn histogram stili) plot.style_* isim alanına taşındı (örn plot.style_histogram).
  5. hline fonksiyonu için stil sabitleri (örn dotted stili) hline.style_* isim alanına taşındı (örn hline.style_dotted).
  6. Haftanın günleri sabitleri (örn sunday) dayofweek.* isim alanına taşındı (örn dayofweek.sunday).
  7. Grafiğin mevcut zaman dilimi değişkenleri (örn period, isintraday) timeframe.* isim alanına taşındı (örn timeframe.period, timeframe.isintraday).
  8. interval değişkeni timeframe.multiplier olarak yeniden adlandırıldı.
  9. ticker ve tickerid değişkenleri syminfo.ticker ve syminfo.tickerid olarak yeniden adlandırıldı.
  10. Çubuk endeks değerini taşıyan n değişkeni bar_index olarak yeniden adlandırıldı.

Yukarıdakilerin hepsini yeniden adlandırmanın arkasındaki sebep standart dil araçlarını yapılandırmak ve kodla çalışmayı kolaylaştırmaktır. Yeni isimler, ortak ön ekler altındaki atamalara göre gruplandırılmıştır. Örneğin, düzenleyicide ‘color’ yazıp Ctrl + Space tuşlarına basarsanız, kullanılabilir tüm renk sabitlerinin bulunduğu bir liste görürsünüz.

Açık Değişken Tipi Tanımlama

Pine Script v4’te, bildirimleri sırasında bilinmeyen bir veri türüne sahip değişkenler oluşturmak artık mümkün değildir (bkz. na değeri). Bu değişiklik, değişken tipi, na değeri ile başlatılmasından sonra değiştiğinde ortaya çıkan birkaç sorunu önlemek için yapıldı. Bundan sonra, na değerini içeren değişkenleri bildirirken, anahtar sözcüklerini veya tür işlevlerini (örneğin, float) kullanarak türlerini açıkça belirtmeniz gerekir:

//@version=4

study("NA", overlay=true)

float a = na

a := if close >= open

    high

else

    low

plot(a)

Pine Script v4’ü deneyin! Bazı kullanıcılar yeni özellikleri test ettiler ve çizimleri kullanarak birçok etkileyici komut oluşturdular.

Örneğin Ricardo Santos aşağıda görebileceğiniz bir dizi komut oluşturdu:

Joris Duyck, Trendçizgileri komutunu oluşturdu, çizgi çizimi özelliğinin olasılıklarını göstermekte.

Umarız bu örnekler size ilham verir! Sohbet odamızda sorular sorabilir, sorunları tartışabilir ve geri bildirimlerinizi paylaşabilirsiniz. Beta testinde yer alan ve bize çok yardımcı olan tüm Pinescripters topluluk üyelerine teşekkür etmek istiyoruz! Ayrıca Stack Overflow sayfamızda da kodlama ilgili sorular sorabilirsiniz.