Je strategie uitvoeren
Gefeliciteerd met het maken van een strategie in quantstrat! Ter herinnering: je strategie gebruikt drie afzonderlijke indicatoren en vijf afzonderlijke signalen. De strategie vereist zowel dat de drempel van de indicator DVO_2_126 onder de 20 ligt, als dat de SMA50 groter is dan de SMA200. De strategie verkoopt wanneer de DVO_2_126 boven de 80 kruist, of wanneer de SMA50 onder de SMA200 kruist.
Voor deze strategie heb je vijf aparte signalen gespecificeerd:
sigComparisonvoorSMA50die groter is danSMA200;sigThresholdmetcrossopFALSEvoorDVO_2_126kleiner dan 20;sigFormulaom ze aan elkaar te koppelen encrossopTRUEte zetten;sigCrossovermetSMA50kleiner danSMA200; ensigThresholdmetcrossopTRUEvoorDVO_2_126groter dan 80.
De strategie investeert $100.000 (je initeq) in elke trade, en kan een beetje middelen in dollar-termen toepassen als de DVO_2_126 rond de 20 schommelt (al is het effect verwaarloosbaar vergeleken met de initiële allocatie).
In dit laatste hoofdstuk leer je hoe je de werkelijke resultaten van je portefeuille bekijkt. Maar eerst, om resultaten te genereren, moet je je strategie uitvoeren en nog wat standaardcode toevoegen zodat quantstrat alles registreert. De code in deze oefening is code die je in de toekomst vaak zult kopiëren en plakken.
Deze oefening maakt deel uit van de cursus
Financieel traden in R
Oefeninstructies
- Gebruik applyStrategy() om je strategie (
strategy.st) toe te passen op je portefeuille (portfolio.st). Sla dit op in het objectout. - Voer de noodzakelijke functies uit om de resultaten van je strategie vast te leggen, waaronder
updatePortf()en het instellen van dedaterange, evenalsupdateAcct()enupdateEndEq(). - Kijk op basis van deze informatie of je de datum van de laatste transactie kunt vinden.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(___)