Implémenter un indicateur - I
À présent, il est temps d’entrer dans la mécanique d’implémentation d’un indicateur dans le cadre de la bibliothèque quantstrat. Dans cet exercice, vous allez apprendre à ajouter un indicateur à votre stratégie. Pour cela, vous utiliserez la stratégie créée dans les exercices précédents, strategy.st. Pour votre premier indicateur, vous ajouterez une moyenne mobile simple à 200 jours.
Pour ajouter un indicateur à votre stratégie, vous utiliserez add.indicator(). Définissez strategy égal au nom de votre stratégie, name au nom d’une fonction entre guillemets, et arguments aux arguments de la fonction nommée sous forme de liste. Par exemple, si votre fonction s’appelle SMA, l’argument arguments contiendra les arguments de la fonction SMA :
add.indicator(strategy = strategy.st,
name = "SMA",
arguments = list(x = quote(Cl(mktdata)), n = 500),
label = "SMA500")
Lorsque vous faites référence à des données de marché dynamiques dans votre appel à add.indicator(), incluez mktdata dans la fonction quote() car ces données sont créées au sein de quantstrat et varieront en fonction de l’instrument utilisé à un instant donné. quote() garantit que les données peuvent évoluer dynamiquement pendant l’exécution de votre stratégie.
Dans cet exercice, vous allez ajouter une SMA à 200 jours à votre stratégie existante strategy.st. Les packages quantstrat et quantmod sont également déjà chargés pour vous.
Cet exercice fait partie du cours
Trading financier en R
Instructions
- Utilisez
add.indicator()sur votre stratégie existantestrategy.st. Suivez de près l’exemple de code. - Fournissez la fonction SMA comme argument
name. - Spécifiez les arguments souhaités de SMA, en utilisant le prix de clôture de
mktdataet une fenêtre de retournde 200 jours. - Donnez à votre indicateur le libellé
"SMA200".
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Add a 200-day SMA indicator to strategy.st
add.indicator(strategy = ___,
# Add the SMA function
name = ___,
# Create a lookback period
arguments = list(___),
# Label your indicator SMA200
label = ___)