CommencezCommencez gratuitement

Utiliser sigCrossover

Avoir un filtre long est nécessaire, mais ce n'est pas suffisant pour entrer en position avec cette stratégie. Toutefois, dès que la condition n'est plus respectée, la stratégie ne doit conserver aucune position. Dans cet exercice, vous allez implémenter l'inverse de la règle ci-dessus à l'aide de la fonction sigCrossover().

Contrairement à sigComparison(), qui indique toujours si une condition est vraie ou non, sigCrossover() ne renvoie un positif qu'au moment où le signal survient pour la première fois, puis plus ensuite. C'est utile pour un signal servant à initier une transaction, puisque vous ne voulez généralement qu'une seule transaction, plutôt que d'en déclencher à répétition.

Ici, vous allez implémenter la fonction sigCrossover() en précisant que la SMA50 croise sous la SMA200. Vous donnerez à ce signal l'étiquette filterexit, puisqu'il fera sortir votre position lorsque la moyenne mobile indique que le contexte n'est pas favorable au maintien d'une position pour la stratégie.

Cette activité fait partie du cours

Négociation financière en R

Voir le cours

Instructions de l’exercice

  • Utilisez add.signal() pour ajouter un sigCrossover indiquant que la SMA50 croise sous la SMA200.
  • Donnez à ce signal l'étiquette filterexit.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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 = "___")
Modifier et exécuter le code