ComeçarComece de graça

Crie seu próprio indicador - I

Até agora, você usou indicadores totalmente pré-programados por meio da função add.indicator(). Agora é hora de escrever e aplicar o seu próprio indicador.

Sua função de indicador vai calcular a média de dois indicadores diferentes para criar um RSI de 3,5. Veja como:

  • Receba uma série de preços.
  • Calcule o RSI 3.
  • Calcule o RSI 4.
  • Retorne a média do RSI 3 e do RSI 4.

Esse RSI pode ser visto como um RSI 3,5, porque é mais longo que um RSI 3 e mais curto que um RSI 4. Ao fazer a média, esse indicador considera o impacto de quatro dias atrás, continua mais rápido que um simples RSI 4 e ainda reduz o ruído tanto do RSI 3 quanto do RSI 4.

Neste exercício, você vai criar uma função para esse indicador chamada calc_RSI_avg() e adicioná-la à sua estratégia strategy.st. Todos os pacotes relevantes já estão carregados para você.

Este exercício faz parte do curso

Negociação financeira em R

Ver curso

Instruções do exercício

  • Crie e nomeie uma função calc_RSI_avg com três argumentos price, n1 e n2, nessa ordem.
  • Calcule um RSI com retrospecto n1 chamado RSI_1.
  • Calcule um RSI com retrospecto n2 chamado RSI_2.
  • Calcule a média de RSI_1 e RSI_2. Chame isso de RSI_avg.
  • Defina o nome da coluna de RSI_avg como RSI_avg usando colnames() e retorne RSI_avg.
  • Adicione esse indicador à sua estratégia usando entradas n1 = 3 e n2 = 4. Rotule esse indicador como RSI_3_4.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código