IniziaInizia gratis

Crea il tuo indicatore - I

Finora hai utilizzato indicatori già pronti tramite la funzione add.indicator(). Ora è il momento di scrivere e applicare un tuo indicatore.

La tua funzione di indicatore calcolerà la media di due indicatori diversi per creare un RSI di 3,5. Ecco come:

  • Prendi in input una serie di prezzi.
  • Calcola RSI 3.
  • Calcola RSI 4.
  • Restituisci la media tra RSI 3 e RSI 4.

Questo RSI può essere visto come un RSI 3,5, perché è più lungo di un RSI 3 e più corto di un RSI 4. Facendo la media, questo indicatore tiene conto dell'impatto di quattro giorni fa pur rimanendo più veloce di un semplice RSI 4, e inoltre riduce il rumore sia di RSI 3 sia di RSI 4.

In questo esercizio creerai una funzione per questo indicatore chiamata calc_RSI_avg() e la aggiungerai alla tua strategia strategy.st. Tutti i pacchetti necessari sono già caricati per te.

Questo esercizio fa parte del corso

Trading finanziario in R

Visualizza il corso

Istruzioni dell'esercizio

  • Crea e assegna il nome calc_RSI_avg a una funzione con tre argomenti, nell'ordine price, n1 e n2.
  • Calcola un RSI con lookback n1 chiamato RSI_1.
  • Calcola un RSI con lookback n2 chiamato RSI_2.
  • Calcola la media di RSI_1 e RSI_2. Chiamala RSI_avg.
  • Imposta il nome di colonna di RSI_avg su RSI_avg usando colnames() e restituisci RSI_avg.
  • Aggiungi questo indicatore alla tua strategia usando come input n1 = 3 e n2 = 4. Etichetta questo indicatore RSI_3_4.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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 = ___)
Modifica ed esegui il codice