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

Stratejini çalıştırma

quantstrat içinde bir strateji oluşturduğun için tebrikler! Özetlemek gerekirse, stratejin üç ayrı gösterge ve beş ayrı sinyal kullanıyor. Strateji, DVO_2_126 göstergesinin eşiğinin 20’nin altında olması ve SMA50’nin SMA200’ün üzerinde olması koşullarını birlikte arıyor. Strateji, DVO_2_126 değeri 80’in üzerine çıktığında veya SMA50 değeri SMA200’ün altına indiğinde satış yapıyor.

Bu stratejinin düzgün çalışması için beş ayrı sinyal belirledin:

  1. SMA50’nin SMA200’den büyük olması için sigComparison;
  2. cross değeri FALSE olacak şekilde DVO_2_126 20’den küçük olduğunda sigThreshold;
  3. Bunları birbirine bağlamak ve cross’u TRUE yapmak için sigFormula;
  4. SMA50’nin SMA200’den küçük olduğu durumda sigCrossover; ve
  5. cross değeri TRUE olacak şekilde DVO_2_126 80’den büyük olduğunda sigThreshold.

Strateji her işlemde 100.000 $ (senin initeq) yatırır ve DVO_2_126 20 civarında dalgalanırsa küçük bir ortalama maliyet etkisi olabilir (ancak bu etki başlangıç tahsisine kıyasla çoğunlukla ihmal edilebilir düzeydedir).

Bu son bölümde, portföyünün gerçek sonuçlarını nasıl görüntüleyeceğini öğreneceksin. Ama önce, sonuçları oluşturmak için stratejini çalıştırman ve quantstrat’ın her şeyi kaydettiğinden emin olmak üzere biraz daha şablon kodu tamamlaman gerekiyor. Bu egzersizdeki kod, ileride kopyalayıp yapıştıracağın türden bir koddur.

Bu egzersiz

R ile Finansal Alım Satım

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

Egzersiz talimatları

  • Stratejini (strategy.st) portföyüne (portfolio.st) uygulamak için applyStrategy() kullan. Bunu out nesnesine kaydet.
  • Stratejinin sonuçlarını kaydetmek için gerekli fonksiyonları çalıştır: daterange ayarlayarak updatePortf() ve ayrıca updateAcct() ile updateEndEq().
  • Bu bilgilere dayanarak, son işlemin tarihini bulup bulamayacağını kontrol et.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Use applyStrategy() to apply your strategy. Save this to out
out <- applyStrategy(strategy = ___, portfolios = ___)

# Update your portfolio (portfolio.st)
updatePortf(___)
daterange <- time(getPortfolio(___)$summary)[-1]

# Update your account (account.st)
updateAcct(___, daterange)
updateEndEq(___)
Kodu Düzenle ve Çalıştır