Exécuter votre stratégie
Félicitations pour avoir créé une stratégie dans quantstrat ! Pour récapituler, votre stratégie utilise trois indicateurs distincts et cinq signaux distincts. Elle exige à la fois que le seuil de l’indicateur DVO_2_126 soit inférieur à 20 et que la SMA50 soit supérieure à la SMA200. La stratégie vend lorsque le DVO_2_126 passe au‑dessus de 80, ou lorsque la SMA50 passe sous la SMA200.
Pour que cette stratégie fonctionne correctement, vous avez défini cinq signaux distincts :
sigComparisonindiquant queSMA50est supérieure àSMA200;sigThresholdaveccrossdéfini àFALSEpourDVO_2_126inférieur à 20 ;sigFormulapour les lier et définircrossàTRUE;sigCrossoveravecSMA50inférieure àSMA200; etsigThresholdaveccrossdéfini àTRUEpourDVO_2_126supérieur à 80.
La stratégie investit 100 000 $ (votre initeq) dans chaque trade, avec un léger lissage du coût unitaire possible si le DVO_2_126 oscille autour de 20 (même si l’effet reste négligeable par rapport à l’allocation initiale).
Dans ce dernier chapitre, vous allez apprendre à consulter les résultats réels de votre portefeuille. Mais d’abord, pour pouvoir générer ces résultats, vous devez exécuter votre stratégie et ajouter un peu de code standard afin que quantstrat enregistre tout. Le code de cet exercice est du code que vous aurez à copier‑coller à l’avenir.
Cet exercice fait partie du cours
Trading financier en R
Instructions
- Utilisez applyStrategy() pour appliquer votre stratégie (
strategy.st) à votre portefeuille (portfolio.st). Enregistrez le résultat dans l’objetout. - Exécutez les fonctions nécessaires pour enregistrer les résultats de votre stratégie, notamment
updatePortf()et la définition dedaterange, ainsi queupdateAcct()etupdateEndEq(). - À partir de ces informations, voyez si vous pouvez trouver la date du dernier trade.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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(___)