Köra din strategi
Grattis till att du har skapat en strategi i quantstrat! För att sammanfatta: din strategi använder tre separata indikatorer och fem separata signaler. Strategin kräver att tröskelvärdet för indikatorn DVO_2_126 är under 20 och att SMA50 är större än SMA200. Strategin säljer när DVO_2_126 korsar över 80, eller när SMA50 korsar under SMA200.
För att strategin ska fungera korrekt specificerade du fem separata signaler:
sigComparisonför attSMA50ska vara större änSMA200;sigThresholdmedcrosssatt tillFALSEför attDVO_2_126ska vara mindre än 20;sigFormulaför att knyta ihop dem och sättacrosstillTRUE;sigCrossovermedSMA50mindre änSMA200; ochsigThresholdmedcrosssatt tillTRUEför attDVO_2_126ska vara större än 80.
Strategin investerar 100 000 dollar (ditt initeq) i varje affär och kan ha en viss mindre genomsnittskostnadseffekt om DVO_2_126 oscillerar kring 20 – effekten är dock i regel försumbar jämfört med den ursprungliga allokeringen.
I det här sista kapitlet lär du dig att se de faktiska resultaten för din portfölj. Men först måste du köra din strategi och fylla i ytterligare standardkod för att se till att quantstrat registrerar allt. Koden i den här övningen är kod som du kommer att behöva kopiera och klistra in i framtida projekt.
Den här övningen är en del av kursen
Finansiell handel i R
Övningsinstruktioner
- Använd applyStrategy() för att tillämpa din strategi (
strategy.st) på din portfölj (portfolio.st). Spara resultatet i objektetout. - Kör de nödvändiga funktionerna för att registrera strategins resultat, inklusive
updatePortf()och att angedaterange, samtupdateAcct()ochupdateEndEq(). - Baserat på denna information, se om du kan hitta datumet för den senaste affären.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(___)