Implementare un indicatore - I
A questo punto, è il momento di entrare nella meccanica dell’implementazione di un indicatore all’interno della libreria quantstrat. In questo esercizio imparerai ad aggiungere un indicatore alla tua strategia. Per questo esercizio userai la strategia creata negli esercizi precedenti, strategy.st. Come primo indicatore, aggiungerai una media mobile semplice (SMA) a 200 giorni.
Per aggiungere un indicatore alla tua strategia, userai add.indicator(). Imposta strategy uguale al nome della tua strategia, name al nome di una funzione tra virgolette, e arguments agli argomenti della funzione indicata, sotto forma di lista. Per esempio, se il nome della funzione fosse SMA, l’argomento arguments conterrà gli argomenti della funzione SMA:
add.indicator(strategy = strategy.st,
name = "SMA",
arguments = list(x = quote(Cl(mktdata)), n = 500),
label = "SMA500")
Quando fai riferimento a dati di mercato dinamici nella tua chiamata a add.indicator(), includi mktdata dentro la funzione quote() perché viene creata all’interno di quantstrat e cambierà a seconda dello strumento che il pacchetto sta usando in quel momento. quote() garantisce che i dati possano cambiare dinamicamente durante l’esecuzione della tua strategia.
In questo esercizio aggiungerai una SMA a 200 giorni alla tua strategia esistente strategy.st. I pacchetti quantstrat e quantmod sono già caricati per te.
Questo esercizio fa parte del corso
Trading finanziario in R
Istruzioni dell'esercizio
- Usa
add.indicator()sulla tua strategia esistentestrategy.st. Segui da vicino l’esempio di codice. - Fornisci la funzione SMA come argomento
name. - Specifica gli argomenti desiderati di SMA, usando il prezzo di chiusura di
mktdatae un periodo di lookbackndi 200 giorni. - Etichetta il tuo indicatore
"SMA200".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Add a 200-day SMA indicator to strategy.st
add.indicator(strategy = ___,
# Add the SMA function
name = ___,
# Create a lookback period
arguments = list(___),
# Label your indicator SMA200
label = ___)