IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Usa add.signal() per aggiungere un sigCrossover specificando che la SMA50 incrocia al di sotto della SMA200.
  • 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 = "___")
Modifica ed esegui il codice