Kendi indikatörünü yaz - I
Şimdiye kadar add.indicator() fonksiyonunu kullanarak, senin için tamamen önceden yazılmış indikatörlerden yararlandın. Artık kendi indikatörünü yazıp uygulama zamanı.
Bu indikatör fonksiyonun, iki farklı indikatörün ortalamasını hesaplayarak 3.5'lik bir RSI oluşturacak. Nasıl mı?
- Bir fiyat serisini girdi olarak al.
- RSI 3'ü hesapla.
- RSI 4'ü hesapla.
- RSI 3 ve RSI 4'ün ortalamasını döndür.
Bu RSI, RSI 3'ten daha uzun, RSI 4'ten daha kısa olduğu için 3.5'lik bir RSI gibi düşünülebilir. Ortalaması alındığında, bu indikatör dört gün önceki etkinin de hesaba katılmasını sağlar, basit bir RSI 4'e göre hâlâ daha hızlıdır ve hem RSI 3'ün hem de RSI 4'ün gürültüsünü azaltır.
Bu egzersizde, calc_RSI_avg() adlı bu indikatör için bir fonksiyon oluşturacak ve bunu strategy.st stratejine ekleyeceksin. İlgili tüm paketler senin için yüklendi.
Bu egzersiz
R ile Finansal Alım Satım
kursunun bir parçasıdırEgzersiz talimatları
- Sırayla
price,n1ven2olmak üzere üç argüman alancalc_RSI_avgadlı bir fonksiyon oluştur ve isimlendir. n1geri bakış periyoduyla bir RSI hesapla ve adınıRSI_1koy.n2geri bakış periyoduyla bir RSI hesapla ve adınıRSI_2koy.RSI_1veRSI_2'nin ortalamasını hesapla. BunaRSI_avgadını ver.- colnames() kullanarak
RSI_avg'in sütun adınıRSI_avgolarak ayarla veRSI_avg'i döndür. - Bu indikatörü stratejine
n1 = 3ven2 = 4girdileriyle ekle. Bu indikatöreRSI_3_4etiketini ver.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Write the calc_RSI_avg function
calc_RSI_avg <- function(price, n1, n2) {
# RSI 1 takes an input of the price and n1
RSI_1 <- RSI(price = price, n = ___)
# RSI 2 takes an input of the price and n2
RSI_2 <- RSI(price = price, n = ___)
# RSI_avg is the average of RSI_1 and RSI_2
RSI_avg <- (___ + ___)/2
# Your output of RSI_avg needs a column name of RSI_avg
colnames(RSI_avg) <- "___"
return(___)
}
# Add this function as RSI_3_4 to your strategy with n1 = 3 and n2 = 4
add.indicator(strategy.st, name = ___, arguments = list(price = quote(Cl(mktdata)), n1 = ___, n2 = ___), label = ___)