Uso de sigCrossover
Aunque contar con un filtro largo es necesario, no es suficiente para abrir una operación en esta estrategia. Además, en el momento en que la condición deje de cumplirse, la estrategia no debería mantener ninguna posición. En este ejercicio, implementarás lo contrario de la regla indicada arriba usando la función sigCrossover().
A diferencia de sigComparison(), que siempre indica si una condición se cumple o no, sigCrossover() solo devuelve un positivo en el momento en que la señal ocurre por primera vez y después no se repite. Esto es útil para una señal que se utilizará para iniciar una transacción, ya que en la mayoría de los casos solo quieres una transacción, en lugar de que se dispare una y otra vez.
En este caso, implementarás la función sigCrossover() especificando que la SMA50 cruza por debajo de la SMA200. Etiquetarás esta señal como filterexit, ya que saldrá de tu posición cuando el filtro de medias móviles indique que el entorno no es adecuado para que la estrategia mantenga una posición.
Este ejercicio forma parte del curso
Trading financiero en R
Instrucciones del ejercicio
- Usa
add.signal()para añadir unasigCrossoverespecificando que laSMA50cruza por debajo de laSMA200. - Etiqueta esta señal como
filterexit.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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 = "___")