Come posso testare backtest su date specifiche, peresempio 2008 :: 2010 in Quanstrat? Voglio caricare i simboli da 2001 :: 2017, ma voglio solo eseguire il test su un sottoinsieme di date. (piuttosto che ricaricare i simboli ogni volta per intervalli di date specifici)
risposte:
3 per risposta № 1Non esiste un modo integrato per farlo quantstrat
. Infatti, c'è un commento all'inizio del applicare* funzioni che dice:
#TODO add Date subsetting
(patch benvenuto)
Ci sono un certo numero di modi possibili per farlo con il codice esistente però.
Probabilmente il modo più semplice è di caricare tutti i dati di mercato in un ambiente, quindi suddividere i dati di mercato in .GlobalEnv prima di ogni chiamata a applyStrategy
.
Indicatori e segnali dovrebbero utilizzare funzioni vettorializzate e dovrebbero impiegare (al massimo) secondi per applicare all'intera serie. Quindi la cosa più semplice è probabilmente quella di correre applyIndicators
e applySignals
manualmente su tutta la serie, quindi chiama applyRules
con solo il sottoinsieme che vuoi.
Potresti anche aggiungere una funzione di segnale che lo facapire i sottoinsiemi. Questa funzione del segnale sarebbe l'ultima nella specifica della strategia e filtrerebbe tutti gli altri segnali a 0 al di fuori dell'intervallo di date preferito.