ComenzarEmpieza gratis

Programa tu propio indicador - I

Hasta ahora, has usado indicadores totalmente predefinidos mediante la función add.indicator(). Ahora toca que escribas y apliques tu propio indicador.

Tu función de indicador calculará la media de dos indicadores distintos para crear un RSI de 3,5. Así es como lo harás:

  • Recibe una serie de precios.
  • Calcula el RSI 3.
  • Calcula el RSI 4.
  • Devuelve la media del RSI 3 y el RSI 4.

Este RSI puede entenderse como un RSI 3,5, porque es más largo que un RSI 3 y más corto que un RSI 4. Al promediar, este indicador tiene en cuenta el impacto de hace cuatro días, sigue siendo más rápido que un RSI 4 simple y además reduce el ruido tanto del RSI 3 como del RSI 4.

En este ejercicio, crearás una función para este indicador llamada calc_RSI_avg() y la añadirás a tu estrategia strategy.st. Todos los paquetes relevantes ya están cargados para ti.

Este ejercicio forma parte del curso

Trading financiero en R

Ver curso

Instrucciones del ejercicio

  • Crea y nombra una función calc_RSI_avg con tres argumentos price, n1 y n2, en ese orden.
  • Calcula un RSI con retroceso n1 llamado RSI_1.
  • Calcula un RSI con retroceso n2 llamado RSI_2.
  • Calcula la media de RSI_1 y RSI_2. Llámala RSI_avg.
  • Establece el nombre de columna de RSI_avg a RSI_avg usando colnames(), y devuelve RSI_avg.
  • Añade este indicador a tu estrategia usando entradas n1 = 3 y n2 = 4. Etiqueta este indicador como RSI_3_4.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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 = ___)
Editar y ejecutar código