CommencezCommencez gratuitement

Programmez votre propre indicateur - I

Jusqu'ici, vous avez utilisé des indicateurs entièrement préprogrammés grâce à la fonction add.indicator(). Il est maintenant temps d'écrire et d'appliquer votre propre indicateur.

Votre fonction d'indicateur calculera la moyenne de deux indicateurs différents pour créer un RSI de 3,5. Voici comment procéder :

  • Recevoir une série de prix.
  • Calculer le RSI 3.
  • Calculer le RSI 4.
  • Retourner la moyenne des RSI 3 et 4.

On peut considérer ce RSI comme un RSI 3,5, puisqu'il est plus long qu'un RSI 3 et plus court qu'un RSI 4. En faisant la moyenne, cet indicateur tient compte de l'impact du prix d'il y a quatre jours tout en demeurant plus rapide qu'un simple RSI 4, et il atténue aussi le bruit présent dans les RSI 3 et 4.

Dans cet exercice, vous allez créer une fonction pour cet indicateur appelée calc_RSI_avg() et l'ajouter à votre stratégie strategy.st. Tous les ensembles de fonctions nécessaires sont déjà chargés pour vous.

Cette activité fait partie du cours

Négociation financière en R

Voir le cours

Instructions de l’exercice

  • Créez et nommez une fonction calc_RSI_avg avec trois arguments price, n1 et n2, dans cet ordre.
  • Calculez un RSI avec une fenêtre n1 nommé RSI_1.
  • Calculez un RSI avec une fenêtre n2 nommé RSI_2.
  • Calculez la moyenne de RSI_1 et RSI_2. Nommez-la RSI_avg.
  • Attribuez le nom de colonne RSI_avg à RSI_avg à l'aide de colnames(), puis retournez RSI_avg.
  • Ajoutez cet indicateur à votre stratégie en utilisant les paramètres n1 = 3 et n2 = 4. Donnez à cet indicateur l'étiquette RSI_3_4.

Exercice interactif pratique

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

# Write the calc_RSI_avg function
calc_RSI_avg <- function(price, n1, n2) {
  
  # RSI 1 takes an input of the price and n1
  RSI_1 <- RSI(price = price, n = ___)
  
  # RSI 2 takes an input of the price and n2
  RSI_2 <- RSI(price = price, n = ___)
  
  # RSI_avg is the average of RSI_1 and RSI_2
  RSI_avg <- (___ + ___)/2
  
  # Your output of RSI_avg needs a column name of RSI_avg
  colnames(RSI_avg) <- "___"
  return(___)
}

# Add this function as RSI_3_4 to your strategy with n1 = 3 and n2 = 4
add.indicator(strategy.st, name = ___, arguments = list(price = quote(Cl(mktdata)), n1 = ___, n2 = ___), label = ___)
Modifier et exécuter le code