ComeçarComece de graça

Usando sigCrossover

Embora ter um filtro de tendência de alta seja necessário, isso não é suficiente para abrir uma operação nesta estratégia. No entanto, no momento em que a condição deixar de valer, a estratégia não deve manter posição alguma. Neste exercício, você vai implementar o oposto da regra especificada acima usando a função sigCrossover().

Diferentemente de sigComparison(), que sempre informa se uma condição é satisfeita ou não, sigCrossover() só retorna positivo no momento em que o sinal ocorre pela primeira vez e depois não repete. Isso é útil para um sinal usado para iniciar uma transação, pois, na maioria dos casos, você quer apenas uma transação, em vez de disparos repetidos.

Neste caso, você vai implementar a função sigCrossover() especificando que a SMA50 cruza para baixo a SMA200. Você vai rotular esse sinal como filterexit, pois ele vai encerrar sua posição quando o filtro de médias móveis indicar que o ambiente não é propício para a estratégia manter uma posição.

Este exercício faz parte do curso

Negociação financeira em R

Ver curso

Instruções do exercício

  • Use add.signal() para adicionar um sigCrossover especificando que a SMA50 cruza para baixo a SMA200.
  • Rotule esse sinal como filterexit.

Exercício interativo prático

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

# Add a sigCrossover which specifies that the SMA50 is less than the SMA200 and label it filterexit
add.signal(strategy.st, name = "___",
           
           # We're interested in the relationship between the SMA50 and the SMA200
           arguments = list(columns = c("___", "___"),
                            
                            # The relationship is that the SMA50 crosses under the SMA200
                            relationship = "___"),
           
           # Label it filterexit
           label = "___")
Editar e executar o código