Implementando um indicador - I
Agora é hora de entrar na mecânica de implementar um indicador dentro do escopo da biblioteca quantstrat. Neste exercício, você vai aprender a adicionar um indicador à sua estratégia. Para este exercício, você usará a estratégia que criou nos exercícios anteriores, strategy.st. Para o seu primeiro indicador, você vai adicionar uma média móvel simples de 200 dias.
Para adicionar um indicador à sua estratégia, você usará a função add.indicator(). Defina strategy como o nome da sua estratégia, name como o nome de uma função entre aspas, e arguments como os argumentos da função nomeada na forma de uma lista. Por exemplo, se o nome da sua função fosse SMA, o argumento arguments conteria os argumentos da função SMA:
add.indicator(strategy = strategy.st,
name = "SMA",
arguments = list(x = quote(Cl(mktdata)), n = 500),
label = "SMA500")
Ao referenciar dados de mercado dinâmicos na sua chamada a add.indicator(), inclua mktdata dentro da função quote() porque ela é criada dentro do quantstrat e mudará dependendo do instrumento que o pacote estiver usando no momento. quote() garante que os dados possam mudar dinamicamente ao longo da execução da sua estratégia.
Neste exercício, você vai adicionar uma SMA de 200 dias à sua estratégia existente strategy.st. Os pacotes quantstrat e quantmod também já estão carregados para você.
Este exercício faz parte do curso
Negociação financeira em R
Instruções do exercício
- Use
add.indicator()na sua estratégia existentestrategy.st. Siga de perto o código de exemplo. - Forneça a função SMA como argumento
name. - Especifique os argumentos desejados de SMA, usando o preço de fechamento de
mktdatae uma janela de retrocessonde 200 dias. - Rotule seu indicador como
"SMA200".
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Add a 200-day SMA indicator to strategy.st
add.indicator(strategy = ___,
# Add the SMA function
name = ___,
# Create a lookback period
arguments = list(___),
# Label your indicator SMA200
label = ___)