Codez votre propre indicateur - I
Jusqu’ici, vous avez utilisé des indicateurs entièrement préécrits 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 les étapes :
- Prendre en entrée une série de prix.
- Calculer un RSI 3.
- Calculer un RSI 4.
- Retourner la moyenne du RSI 3 et du RSI 4.
On peut considérer cet indicateur comme un RSI 3,5, car 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 d’il y a quatre jours tout en restant plus réactif qu’un simple RSI 4, et il atténue aussi le bruit des 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 packages nécessaires sont déjà chargés pour vous.
Cet exercice fait partie du cours
Trading financier en R
Instructions
- Créez et nommez une fonction
calc_RSI_avgavec trois argumentsprice,n1etn2, dans cet ordre. - Calculez un RSI avec une fenêtre de regard
n1nomméRSI_1. - Calculez un RSI avec une fenêtre de regard
n2nomméRSI_2. - Calculez la moyenne de
RSI_1etRSI_2. Appelez-laRSI_avg. - Définissez le nom de colonne de
RSI_avgsurRSI_avgen utilisant colnames(), puis retournezRSI_avg. - Ajoutez cet indicateur à votre stratégie avec des entrées
n1 = 3etn2 = 4. Donnez à cet indicateur le libelléRSI_3_4.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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 = ___)