Kom igångKom igång gratis

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:

  1. sigComparison för att SMA50 ska vara större än SMA200;
  2. sigThreshold med cross satt till FALSE för att DVO_2_126 ska vara mindre än 20;
  3. sigFormula för att knyta ihop dem och sätta cross till TRUE;
  4. sigCrossover med SMA50 mindre än SMA200; och
  5. sigThreshold med cross satt till TRUE för att DVO_2_126 ska 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

Visa kurs

Övningsinstruktioner

  • Använd applyStrategy() för att tillämpa din strategi (strategy.st) på din portfölj (portfolio.st). Spara resultatet i objektet out.
  • Kör de nödvändiga funktionerna för att registrera strategins resultat, inklusive updatePortf() och att ange daterange, samt updateAcct() och updateEndEq().
  • 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(___)
Redigera och kör kod