Pine Script®’teki yeni özellikler: Heikin Ashi grafiklerinde gerçekçi geriye dönük testler, sembol bilgilerine erişmek için yerleşik eklentiler ve daha fazlası

Jun 30, 2023

Programlama dilimize talep ettiğiniz iyileştirmeleri eklemeye devam ettikçe, takip etmek zor olabilir. Bu yazı, kaçırmamanız için en önemli son eklemelerimizi gözden geçiriyor.

Heikin Ashi grafiklerinde daha gerçekçi backtestler

Heikin Ashi grafikleri üzerinde çalışan backtestler tipik olarak güvenilir olmayan backtest sonuçları üretmiştir çünkü broker emülatörü emirleri her zaman grafiğin fiyatlarını kullanarak doldurur ve HA grafikleri söz konusu olduğunda bu fiyatlar sentetiktir. “Standart OHLC kullanarak emirleri doldur” adlı yeni bir özellik bu sorunu hafifletir. Kullanıldığında, HA grafiklerinde çalışan stratejiler emirleri gerçek piyasa fiyatlarından doldurur ve bu da stratejinizin gerçek zamanlı olarak nasıl davranacağını daha yakından simüle eder. Strateji kullanıcıları, özelliği stratejilerin “Özellikler” sekmesinden etkinleştirebilir. Bu özellik varsayılan olarak kapalıdır. Bunun yalnızca HA grafiklerinde çalışan stratejilerin davranışını değiştirdiğini unutmayın. Renko gibi diğer sentetik grafik türlerinde, geriye dönük test, özelliğin ayarından bağımsız olarak emirleri sentetik grafik fiyatlarından doldurmaya devam edecektir.

Yeni input.*() fonksiyonları için display parametresi

Yeni bir display parametresi, bir komut dosyasının adının yanındaki girdi değerlerinin görüntülenmesi üzerinde daha fazla kontrol sahibi olmanızı sağlar. Dört argüman kullanılabilir: display.status_line, display.data_window, display.all ve display.none. Artı veya eksi işaretleri kullanan bağımsız değişken kombinasyonlarına izin verilir ve kullanılan bağımsız değişken ne olursa olsun, girdi değerleri her zaman kod ayarlarının “Girdiler” sekmesinde görünmeye devam eder.

Yeni parametre, normalde orada görünmeleri gereken girdi değerlerini durum satırından gizlemenize veya boolean, renk veya tarih girdileri gibi normalde gizli olan girdilerin değerlerini görüntülemenize olanak tanır. Yeni parametreyi kullanarak, veri penceresinde kod adının yanında girdileri de gösterebilirsiniz. Parametre kullanılmadığında girdilerin varsayılan görüntüsü değişmez.

//@version=5

indicator("RSI")

rsiLengthInput = input.int(14, minval=1, title="RSI Length", display=display.data_window+display.status_line)

rsiSourceInput = input.source(close, "Source", display=display.data_window)

rsi = ta.rsi(rsiSourceInput, rsiLengthInput)

plot(rsi, "RSI")

Finansal ürün bilgilerine erişmek için yeni yerleşik eklentiler

Üç adet gömülü ekledik syminfo namespace: syminfo.sector, syminfo.industry, and syminfo.country. Size mevcut sembol hakkında daha fazla bilgi sağlayan dizeler döndürürler. Ülke bilgisi ISO 3166-1 alpha-2 biçiminde sağlanır.

Stratejilerde gerçekleşen emirler için bildirimleri devre dışı bırakma

Artık stratejilerdeki bireysel emirler için bildirimleri şu şekilde devre dışı bırakabilirsiniz: disable_alert = true bu emirleri oluşturmak için kullanılan işlevlerde. Örneğin:

//@version=5
strategy("My strategy", overlay=true)
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
if (longCondition)
    strategy.entry("Long", strategy.long, alert_message = "Go Long!")
    strategy.exit("Exit", "Long", profit = 300, loss = 100, disable_alert = true)

Bu, alert() fonksiyonunu kullanırken belirli emirleri filtrelemek için ve Strateji yürütme sırasında bildirimler veya web kancaları için özel mesajlar oluşturmak için kullanışlıdır.

Stratejilerde maksimum düşüş ve yükseliş için hesaplama değişikliği

Maksimum düşüş ve maksimum yükseliş hesaplaması, bir işlemde elde edilebilecek potansiyel sermayeyi dikkate alacak şekilde geliştirilmiştir. Önceden, yalnızca giriş ve çıkış noktalarındaki sermaye değerleri dikkate alınıyordu ve bu da maksimum potansiyel değerlerine karşılık gelmeyen maksimum düşüş ve yükseliş değerleriyle sonuçlanabiliyordu. Yeni yöntemler aşağıdaki Yardım Merkezi maximum drawdown ve maximum run-up makalelerinde açıklanmıştır 

Support for the varip modifier in user-defined types

varip değişkenlerin aynı çubuk üzerinde kodun her yürütülmesi arasında değerlerini korumasına olanak tanıyan değiştirici artık kullanıcı tanımlı türlerdeki alanlara uygulanabilir. varip kullanılarak tanımlanmayan alanların her çubukta geri alınacağını, bu nedenle aynı çubuk üzerinde birden fazla yürütme sırasında bunlara atanan değerlerin, bunları içeren nesne varip ile oluşturulmuş olsa bile korunmayacağını unutmayın.

For example:

//@version=5
indicator("`varip` field")

type TypeWithVaripField
    varip int varipCounter = 0
    int counter = 0

varip TypeWithVaripField myCounter = TypeWithVaripField.new(0)
// This field preserves values between script executions.
myCounter.varipCounter := myCounter.varipCounter + 1
// This field does not because it wasn't declared using `varip`.
myCounter.counter := myCounter.counter + 1

plot(myCounter.varipCounter, "myCounter.varipCounter")
plot(myCounter.counter, "myCounter.counter")

Para birimi dönüştürme oranı talebi

Bir para biriminden diğerine dönüşüm oranını almanıza olanak tanıyan yeni bir request.currency_rate() işlevi ekledik. Bu fonksiyon iki parametre gerektirir: from and to, her biri ISO 4217’ye göre üç harfli bir dize kodudur.

Bir finansal ürünün fiyatını İngiliz sterlinine (GBP) çevirmek için nasıl kullanılacağına dair bir örnek:

//@version=5
indicator("Close in British Pounds")
rate = request.currency_rate(syminfo.currency, "GBP")
plot(close * rate)

Array ad alanında yeni işlevler

Diziler için dört yeni fonksiyon eklendi:

  • array.first() — dizinin ilk elemanını döndürür.
  • array.last() — dizinin son elemanını döndürür.
  • array.every() — dizinin her elemanı doğruysa true döndürür; aksi takdirde false döndürür.
  • array.some() — dizinin en az bir elemanı doğruysa true döndürür; aksi takdirde false döndürür.

Yeni Pine Script® özelliklerinden haberdar olmak için Kullanım Kılavuzunun Sürüm notlarına göz atın. PineCoders hesabı ayrıca Telegram’daki Squawk Box’tan, Twitter hesabından ve TradingView’deki Pine Script® Q&A genel sohbetinden güncellemeler yayınlar. Bu çok talep edilen özellikleri yararlı bulduğunuza inanıyoruz ve lütfen bize geri bildirim ve önerilerinizi göndermeye devam edin, böylece platformu olabildiğince iyi hale getirebiliriz. TradingView’i sizin için geliştiriyoruz ve düşüncelerinizi her zaman duymak istiyoruz.

TradingView Ekibi

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