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
Instruções do exercício
- Use
add.signal()para adicionar umsigCrossoverespecificando que aSMA50cruza para baixo aSMA200. - 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 = "___")