Utiliser sigCrossover
Avoir un filtre long est nécessaire, mais cela ne suffit pas pour passer un ordre avec cette stratégie. En revanche, dès que la condition n’est plus vérifiée, la stratégie ne doit plus détenir aucune position. Dans cet exercice, vous allez implémenter l’opposé de la règle ci‑dessus à l’aide de la fonction sigCrossover().
Contrairement à sigComparison(), qui indique en permanence si une condition est vérifiée, sigCrossover() ne renvoie un résultat positif qu’au moment où le signal se produit pour la première fois, puis plus ensuite. C’est utile pour un signal destiné à initier une transaction, car dans la plupart des cas, vous souhaitez une seule transaction plutôt que d’en déclencher plusieurs fois.
Ici, vous allez implémenter la fonction sigCrossover() en spécifiant que la SMA50 croise à la baisse la SMA200. Vous nommerez ce signal filterexit, car il servira à clôturer votre position lorsque le filtre de moyennes mobiles indiquera que le contexte n’est pas favorable au maintien d’une position pour la stratégie.
Cet exercice fait partie du cours
Trading financier en R
Instructions
- Utilisez
add.signal()pour ajouter unsigCrossoverspécifiant que laSMA50croise à la baisse laSMA200. - Donnez à ce signal le nom
filterexit.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
# We're interested in the relationship between the SMA50 and the SMA200
arguments = list(columns = c("___", "___"),
# The relationship is that the SMA50 crosses under the SMA200
relationship = "___"),
# Label it filterexit
label = "___")