BaşlayınÜcretsiz Başlayın

Kendi göstergeni yaz - II

RSI fena değil, ancak göstergeler açısından biraz eskimiş sayılır. Bu egzersizde, başka bir göstergenin basitleştirilmiş bir sürümünü sıfırdan kodlayacaksın. Gösterge, nicel araştırma direktörü David Varadi tarafından geliştirilen David Varadi Oscillator (DVO) olarak adlandırılır.

Bu osilatörün amacı, RSI gibi, geçici düşüşlerde alım ve geçici yükselişlerde satış fırsatlarını bulmaya çalışmaktır. Zorunlu piyasa verilerine ek olarak, bir osilatör fonksiyonu iki adet geriye dönük (lookback) periyot alır.

Önce, kapanış fiyatı ile en yüksek ve en düşük fiyatların ortalaması arasındaki oranın hesaplanması gerekir. Sonra, bu büyüklüğe küçük bir zaman diliminde (genelde iki gün gibi) gürültüyü azaltmak için bir SMA uygulanır. Son olarak, bu ortalama oranın hareketli yüzde sıralamasını almak için runPercentRank() fonksiyonu kullanılır ve 0-100 aralığına çevirmek için 100 ile çarpılır.

Standart bir sınava girdikten sonra öğrencilerin yüzdelik dilim puanı almasını düşün (örneğin, bir öğrenci matematik bölümünden 800 aldıysa, ulusal çapta yüzde 95'lik dilimde olabilir). runPercentRank() aynı şeyi zaman içinde yapar. Bu gösterge, kullanıcının belirttiği geçmiş bir dönem bağlamında, en son gözlem için sıralamayı verir. Örneğin, geriye dönük periyot 126 iken bir varlığın runPercentRank değeri 0.90 ise, bu, kendisi ve geçmiş 125 gözlemle karşılaştırıldığında yüzde 90'lık dilimde olduğu anlamına gelir.

Görevin, bu göstergeyi uygulamak ve DVO olarak kaydetmek. Gerekli kodun bir kısmı sağlandı ve quantstrat, TTR ve quantmod paketleri çalışma alanına yüklendi.

Bu egzersiz

R ile Finansal Alım Satım

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Yukarıda açıklanan gösterge için DVO adlı bir fonksiyon oluştur ve adlandır. Fonksiyonunun üç argümanı HLC, navg (varsayılan 2) ve percentlookback (varsayılan 126) olacak.
  • HLC'nin kapanışı (Cl()) ile en yüksek (Hi()) ve en düşük (Lo()) fiyatların ortalamasına bölünmesiyle elde edilen oran senin için hesaplandı.
  • Bu oranın hareketli ortalamasını uygulamak için SMA() kullan ve navg argümanıyla parametrele. Bunu avgratio olarak kaydet.
  • avgratio için bir yüzde sıralama sistemi uygulamak üzere runPercentRank() kullan.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Declare the DVO function
DVO <- function(___, navg = ___, percentlookback = ___) {
  
  # Compute the ratio between closing prices to the average of high and low
  ratio <- Cl(HLC)/((Hi(HLC) + Lo(HLC))/2)
  
  # Smooth out the ratio outputs using a moving average
  avgratio <- SMA(ratio, n = ___)
  
  # Convert ratio into a 0-100 value using runPercentRank()
  out <- runPercentRank(___, n = percentlookback, exact.multiplier = 1) * 100
  colnames(out) <- "DVO"
  return(out)
}
Kodu Düzenle ve Çalıştır