Pine’daki Yenilikler Neler?

Apr 9, 2021

Tüm Pine güncellemeleri ayrı bir blog gönderisini garanti etmez, ancak yeni bir özelliğin komut dosyalarınızı kodlamak için ne zaman işe yarayacağını asla bilemezsiniz. Bu gönderi, radarınızın altına düşmüş olabilecek son iyileştirmeleri sergiliyor.

Varip anahtar sözcüğü, bazı verileri ve gerçek zamanlı çubuk içinde nasıl değiştiğini izlemek istediğinizde kullanışlıdır. Tüm normal Pine değişkenleri, geri alma olarak bilinen şeye tabidir; burada her yeni veri onayında, değişkenin durumu, yeni verileri değerlendirmeden önce önceki çubuktaki değerine sıfırlanır. Varip anahtar sözcüğü bundan kaçar ve bir değişkenin geçerli değerini, yepyeni bir olasılıklar dünyasının kapılarını açan (önceki çubuğun aksine) önceki tikteki değeriyle karşılaştırmanıza olanak tanır. Pine Wizards LonesomeTheBlue tarafından oluşturulan onay çizelgesine bir göz atın:

https://tr.tradingview.com/script/ygNO2G1V-Tick-Chart/

varip tarafından PineCoders daha derinlemesine bilgi:

https://tr.tradingview.com/script/ppQxBISk-Using-varip-variables-PineCoders/

Pine’da daha fazla matematik isteyenler için, artık matematikle ilgili bir dizi yeni fonksiyon ve sabitimiz var:

  • Yeni sabitler math.pi, math.phi, math.rphi and math.e
  • Yeni round() işlevi – işlev artık her zaman en yakın tam sayıya yuvarlamak yerine yuvarlamanın hassasiyetini belirlemenize olanak tanır
  • median()
  • mode()
  • range()
  • todegrees()
  • toradians()
  • random()

Tehlikeli bir şekilde yaşamayı sevenler için bir strateji: Tüm girişler ve çıkışlar, hepsi random() işlevi sayesinde, Girişler bölümünde belirtilen yüzdelere göre rastgele hale getirilir:

//@version=4
strategy("I’m feeling lucky", overlay=true)
seed = input(1, "Seed, increase to recalculate the strategy", minval=1)
entryPerc = input(20.0, "Entry chance, %", minval=0.0, maxval=100.0)
exitPerc = input(10.0, "Exit chance, %", minval=0.0, maxval=100.0) 
roll = random(0, 100, seed)
positionSize = floor(random(1, (strategy.equity / close), seed))
if roll < entryPerc
    strategy.entry("My Long Entry Id", strategy.long, qty=positionSize)
if roll < exitPerc
    strategy.close_all()

Başka bir geliştirmede, := atama operatörü yeni atama operatörleri +=, -=, *=, /= ve %= oluşturmak için aritmetik operatörlerle birleştirildi. Bunlar komut dosyalarınızı toparlamanıza ve kısaltmanıza izin verir: a := a+1 kullanmak yerine basitçe a + = 1 yazabilirsiniz. Küçük ama oldukça kullanışlı bir iyileştirme.

Daha önce bir dizeyi bir sayıya dönüştürmeniz gerektiğini fark ettiyseniz, newtonumber() işlevi tam da bunu yapmanızı sağlar. Örneğin, aşağıdaki komut dosyasında str.split() ve str.replace_all() gibi dizeyle ilgili diğer işlevlerle birlikte tonumber(), tek bir dize giriş alanının daha sonra uzunluk olarak kullanılan birkaç tamsayı değeri döndürmesine izin verir. SMA hesaplamaları için. Doğru ve kullanışlı “SMA’ların her biri için ayrı bir girdi” yolu yerine, bunu bu şekilde yapmak için ikna edici bir neden yoktur … Ancak, ihtiyacınız varsa, burada:

//@version=4
study("My SMAs", overlay=true)
sma_lengths = input("5, 10, 20, 30, 50", title = "SMA Lengths (separated by comma)")
sma_lengths_array = str.split(str.replace_all(sma_lengths, " ", ""), ",")
sma_len(index) =>
    index > array.size(sma_lengths_array) - 1 ? 10 :
     int(tonumber(array.get(sma_lengths_array, index)))
sma0 = sma(close, sma_len(0))
sma1 = sma(close, sma_len(1))
sma2 = sma(close, sma_len(2))
sma3 = sma(close, sma_len(3))
sma4 = sma(close, sma_len(4))
plot(sma0, color=color.blue)
plot(sma1, color=color.red)
plot(sma2, color=color.green)
plot(sma3, color=color.orange)
plot(sma4, color=color.purple)

İşlem gününün başlangıcının UNIX zaman damgasını döndüren bir time_tradingday değişkeni ekledik. Bu, teknik olarak işlem günü aslında Pazartesi iken, işlemin Pazar günü başladığı EURUSD gibi gece boyunca işlem gören sembolleri analiz ederken kullanışlı olacaktır.

Yeni time_close() işlevi, belirli bir zaman diliminden ve oturumdan bir çubuğun kapanma zamanını almanıza olanak tanır (yalnızca grafiğin zaman çerçevesi / oturumuyla çalışan önceden var olan time_close değişkeninin aksine). Bu, özellikle çizimler için kullanışlıdır ve geleceğe doğru daha kesin çizgiler ve etiketler çizmenizi sağlar. Nasıl çalıştığını görmek için JayRogers’ın Pivot Noktaları göstergesini nasıl değerlendirdiğine bakın:

https://tr.tradingview.com/script/7EwXUkBE-Pivotal-Multi-Pivot-Selector/

study() için yeni format.percent parametresiyle, script’inizin çıktısı artık otomatik olarak yüzde olarak biçimlendirilebilir. Yerleşik Aroon göstergemizi faal görün:

//@version=4
study(title="Aroon", shorttitle="Aroon", overlay=false, format=format.percent, precision=2, resolution="")
length = input(14, minval=1)
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length
plot(upper, "Aroon Up", color=#FF6A00)
plot(lower, "Aroon Down", color=#0094FF)

Üç yeni değişken, session.ismarket, session.ispremarket ve session.ispostmarket, mevcut çubuğun ilişkili olduğu gün içi oturumun bölümünü kontrol etmenize olanak tanır. Uzatılmış saatlerin yalnızca gün içi grafiklerde ve yalnızca seçeneklerde ayarlar aracılığıyla açıkça etkinleştirildiğinde gösterildiğini unutmayın.

Pine güncellemelerini gerçekleşir gerçekleşmez öğrenmek istiyorsanız, Kullanıcı Kılavuzumuzdaki Sürüm Notlarını izleyin. PineCoders ayrıca Squawk Box Telegram kanalında, Twitter’da ve TradingView’deki Pine Script genel sohbetinde güncellemeler hakkında haberler yayınlar.

Bu iyileştirmeleri faydalı bulacağınızı umuyoruz. Lütfen bize geri bildiriminizi göndermeye devam edin. Kullanıcılarımız için TradingView oluşturuyoruz ve sizden haber almayı çok seviyoruz.

Look first Then leap

TradingView sizin için tasarlandı, bu nedenle muhteşem özelliklerimizden en iyi şekilde yararlandığınızdan emin olun
Grafiği Açın