Exécuter votre stratégie
Félicitations d'avoir créé une stratégie dans quantstrat! Pour récapituler, votre stratégie utilise trois indicateurs et cinq signaux distincts. Elle exige 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 dépasse 80 à la hausse, ou lorsque la SMA50 passe sous la SMA200.
Pour que cette stratégie fonctionne correctement, vous avez défini cinq signaux distincts :
sigComparisonpour indiquer queSMA50est supérieure àSMA200;sigThresholdaveccrossréglé àFALSEpourDVO_2_126inférieur à 20;sigFormulapour les lier et définircrossàTRUE;sigCrossoveravecSMA50inférieure àSMA200;sigThresholdaveccrossréglé àTRUEpourDVO_2_126supérieur à 80.
La stratégie investit 100 000 $ (votre initeq) dans chaque opération, et peut effectuer un léger lissage du coût d'achat si le DVO_2_126 oscille autour de 20 (même si l'effet est surtout négligeable par rapport à l'allocation initiale).
Dans ce dernier chapitre, vous apprendrez à visualiser les résultats réels de votre portefeuille. Mais avant, pour 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 celui que vous devrez copier-coller à l'avenir.
Cette activité fait partie du cours
Négociation financière en R
Instructions de l’exercice
- 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 consigner 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 de la dernière opération.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(___)