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:
SMA50’ninSMA200’den büyük olması içinsigComparison;crossdeğeriFALSEolacak şekildeDVO_2_12620’den küçük olduğundasigThreshold;- Bunları birbirine bağlamak ve
cross’uTRUEyapmak içinsigFormula; SMA50’ninSMA200’den küçük olduğu durumdasigCrossover; vecrossdeğeriTRUEolacak şekildeDVO_2_12680’den büyük olduğundasigThreshold.
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ırEgzersiz talimatları
- Stratejini (
strategy.st) portföyüne (portfolio.st) uygulamak için applyStrategy() kullan. Bunuoutnesnesine kaydet. - Stratejinin sonuçlarını kaydetmek için gerekli fonksiyonları çalıştır:
daterangeayarlayarakupdatePortf()ve ayrıcaupdateAcct()ileupdateEndEq(). - 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(___)