Uso di sigCrossover
Sebbene avere un filtro long sia necessario, non è sufficiente per aprire una posizione con questa strategia. Tuttavia, nel momento in cui la condizione non è più valida, la strategia non deve mantenere alcuna posizione. In questo esercizio, implementerai l'opposto della regola sopra specificata usando la funzione sigCrossover().
Diversamente da sigComparison(), che indica sempre se una condizione è soddisfatta o meno, sigCrossover() restituisce un valore positivo solo nel momento in cui il segnale si verifica per la prima volta, e poi non più. Questo è utile per un segnale che verrà usato per avviare una transazione, perché nella maggior parte dei casi vuoi una sola transazione, invece di farne scattare di continuo.
In questo caso, implementerai la funzione sigCrossover() specificando che la SMA50 incrocia al di sotto della SMA200. Etichetta questo segnale filterexit, perché servirà a chiudere la posizione quando il filtro a media mobile indica che l'ambiente non è favorevole a mantenere una posizione per la strategia.
Questo esercizio fa parte del corso
Trading finanziario in R
Istruzioni dell'esercizio
- Usa
add.signal()per aggiungere unsigCrossoverspecificando che laSMA50incrocia al di sotto dellaSMA200. - Etichetta questo segnale
filterexit.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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 = "___")