sigCrossover kullanımı
Bu strateji için uzun bir filtreye sahip olmak gerekli olsa da, tek başına bir işlem açmak için yeterli değildir. Ancak koşul geçerli olmadığı anda, strateji hiçbir şekilde pozisyon taşımamalıdır. Bu egzersizde, yukarıda belirtilen kuralın tersini sigCrossover() fonksiyonunu kullanarak uygulayacaksın.
sigComparison() bir koşulun sağlanıp sağlanmadığını her zaman belirtirken, sigCrossover() yalnızca sinyalin ilk oluştuğu anda olumlu sonuç üretir, sonrasında üretmez. Bu, bir işlemi başlatmak için kullanılacak sinyallerde faydalıdır; çünkü çoğu durumda tekrar tekrar işlem tetiklemek yerine yalnızca tek bir işlem başlatmak istersin.
Bu durumda, SMA50'nin SMA200'ün altına geçtiğini belirtecek şekilde sigCrossover() fonksiyonunu uygulayacaksın. Bu sinyali, hareketli ortalama filtresi ortamın pozisyon taşımaya elverişli olmadığını söylediğinde pozisyondan çıkacağı için filterexit olarak etiketleyeceksin.
Bu egzersiz
R ile Finansal Alım Satım
kursunun bir parçasıdırEgzersiz talimatları
add.signal()kullanarakSMA50'ninSMA200'ün altına geçtiğini belirten birsigCrossoverekle.- Bu sinyali
filterexitolarak etiketle.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
# We're interested in the relationship between the SMA50 and the SMA200
arguments = list(columns = c("___", "___"),
# The relationship is that the SMA50 crosses under the SMA200
relationship = "___"),
# Label it filterexit
label = "___")