Announcement
Collapse
No announcement yet.
Walk Forward Analysis
Collapse
X
-
Umberto ti disturbo ancora per un dubbio.
Per il mio software ho una serie storica un po breve, 2 anni e mezzo. Utilizzo per il mio ts timeframe di 1h. Secondo te la serie storica è troppo corta per avere una WFA soddisfacente? La combinazione IS -OOS ottimale che ho trovato per tentativi (ottimale in termini di WFE) è di 9 mesi per IS e 3 mesi per OOS con cui si riesce a fare 6 test. Secondo ha senso? oppure la serie non è abbastanza significativa e non ha dentro tutte le condizioni di mkt tale per cui a questo punto conviene ottimizzare su tutto il periodo in maniera classica rischiando magari l'overfitting?
Grazie mille di nuovo
Comment
-
Con solo 2 anni la soluzione migliore è fare:
- ottimizzazione IS = 1 anni e 8 mesi
- verifica su OOS = 4 mesi
Infine, se su IS hai almeno 100 trade ed il risultato su OOS ti soddisfa, allora, puoi riottimizzare con la stessa logica sui 2 anni interi ed il setting ottimale ottenuto lo usi in LIVE sui dati futuri.
L'ottimizzazione genetica è uno strumento potentissimo per individuare i valori ottimali di un set di variabili, quando il numero di cicli dell'ottimizzazione è eccessivamente elevato e l'ottimizzazione brute force impiegherebbe troppo tempo.
Si perde in esaustività nella ricerca, ma il risultato è in genere vicinissimo a quello che otterresti con l'ottimizzazione normale.
Comment
-
SI, io ho osservato nella pratica che:
- se uso la WFA ancorata, quindi con finestra di dati In Sample che aumenta all'aumentare del numero di cicli di WFA, ottengo performance minori ma in Live l'EA dura più a lungo, quindi decade lentamente
- se uso la WFA standard, quindi con finestra di dati In Sample che rimane costante all'aumentare del numero di cicli di WFA, ottengo performance maggiori ma in Live l'EA dura meno tempo, quindi decade velocemente
Comment
-
? :_o:
se sto facendo una WFA il setting ottimale scelto dopo l'ottimizzazione su IS va usato pari pari senza alcuna modifica in backtest su OOS per verificare se il setting ottimizzato performa bene sui dati sconosciuti immediatamente successivi ai dati IS
...o non ho capito la tua domanda :28.nerd_80_anim_gif
Comment
-
Originally posted by umbertosm View Post? :_o:
se sto facendo una WFA il setting ottimale scelto dopo l'ottimizzazione su IS va usato pari pari senza alcuna modifica in backtest su OOS per verificare se il setting ottimizzato performa bene sui dati sconosciuti immediatamente successivi ai dati IS
Sicuramente ho un po le idee confuse io al riguardo
Leggendo qualche post precedente (non solo in questo thread) mi è sorto il dubbio che magari su 10(ad esempio) parametri ottimizzabili se ne scelgono solo 8(ad esempio) sulle successive ottimizzazioni e 2 si lasciano di base (ovvero sempre uguali ricavati dalla primissima ottimizzazione IS) per qualche motivo (che non so e che sto chiedendo).
Invece mi sembra di capire che si riottimizza tutto. :03.bigsmile_80_anim
Comment
-
Originally posted by Cristian View PostLeggendo qualche post precedente (non solo in questo thread) mi è sorto il dubbio che magari su 10(ad esempio) parametri ottimizzabili se ne scelgono solo 8(ad esempio) sulle successive ottimizzazioni e 2 si lasciano di base (ovvero sempre uguali ricavati dalla primissima ottimizzazione IS) per qualche motivo (che non so e che sto chiedendo).
Invece mi sembra di capire che si riottimizza tutto. :03.bigsmile_80_anim
Una volta scelte QUALI variabili saranno oggetto delle ottimizzazioni,
per tutti i cicli della Walk Forwad Analisys si scelgono quelle e non si cambiano più.
Se fai 4 cicli e nella prima scegli 6 variabili, ti piace il setting di 2 variabili e li vuoi tenere sempre a valori fissi, ok
allora farai 4 cicli di ottimizzazione IS e test forward OOS con le 4 variabili, lasciando fisso il valore delle altre 2
Comment
-
Ciao Umberto,
Volevo farti alcune domande in merito alla WFA,
1)
Per l'individuazione delle finestre temporali ottimali sono stati consigliati delle proporzioni della lunghezza delle finestre IS/OOS.
Nel mio caso ho lo storico dal 2008, utilizzando la wfa ancorata vorrei fare 4 cicli da un anno OOS.
2008-2012(IS) --> 2013 (OOS) (20%)
2008-2013(IS) --> 2014 (OOS) (16%)
2008-2014(IS) --> 2015 (OOS) (14%)
2008-2015(IS) --> 2016 (OOS) (12%)
2008-2016(IS) --> 2017 Live....
La proporzione iniziale è stata rispettata ovvero 1/5 (20%), ma essendo una wfa ancorata con il passare del tempo questa proporzione va a diminuire.
E' corretto ho mi sfugge qualcosa?
2)
Preferisci fare da te la WFA, nel senso che scrivi nel codice le condizioni? Tipo una cosa del genere?
if (TimeCurrent() > StrToTime("2012.12.31") && ......){StopLoss = 50;}
.....
3)
Inoltre dici che "Pochi EA riuscivano a raggiungere una WFEfficiency del 0.5 con 6 cicli di ottimizzazione..."
Quindi vuol dire che non consideri strettamente necessari ne' i 6 cicli ne' tantomeno la WFE?
Usi ad esempio NetProfit/MaxDD o qualche parametro custom?
4)
Se la wfe non funziona subito nei vari cicli, si ripete il processo piu' volte e potrebbe diventare una procedura davvero molto lunga, e cosi?
In base alla tua esperienza quanto puo' durare un processo di valutazione di questo tipo (mediamente) rispetto alla sola procedura IS?
Consigli al riguardo?
5)
Siamo abituati a vedere equity nel backtest semplice IS, che non per forza sono sempre crescenti, anzi alcuni anni magari sono in pari o
leggermente perdenti per poi fare negli anni successivi buoni guadagni.
Se invece prendiamo come parametro la wfe (almeno 0.5) avremmo (ammettendo di concludere tutta la wfe) un' equity sicuramente piu' regolare dal punto dei vista dei guadagni,
ma suppongo che si potrebbero scartare molte strategie che magari avrebbero potuto produrre dei guadagni.) Da questo punto di vista forse è un po' troppo rigida. Cosa ne pensi?
Thx
Ciao
Comment
-
1) va bene come fai: 1 anno di test forward è più che sufficiente, facendo la WF ancorata, è normale che la percentuale dei dati OOS si riduca con l'aumentare del numero di cicli
2) faccio la WFA scegliendo da me le finestre temporali per l'ottimizzazione con il Tester (=Collaudatore) di Metatrader e dopo aver scelto il setting ottimale proseguo con il test forward sui dati storici successivi che scelgo io, usando sempre il Tester di Metatrader; questo per ogni ciclo di WFA.
3) quando scrivevo che "Pochi EA riuscivano a raggiungere una WFEfficiency del 0.5 con 6 cicli di ottimizzazione..." significa semplicemente che questi EA non li ho usati in reale con quello specifico criterio di ottimizzazione perché non sarebbero stati profittevoli in Live.
Come conseguenza ho cambiato EA, oppure mantenendo lo stesso EA, ho cambiato la finestra temporale della WFA (esempio aumentando i dati IS), o le variabili di ottimizzazione, ecc.
4) SI, la procedura può essere assai lunga, oggi non faccio più di 3 cicli IS-OOS e cerco di sbrigarmela in una giornata.
la WFA la adotto solo per EA con poche variabili da ottimizzare.
Se voglio usare un EA che gestisce tanti parametri, come ... trailing stop con diverse logiche, più trade contemporanei che vengono gestiti, tante altre regole, faccio un solo ciclo di WFA, tipo 5 anni di ottimizzazione ed 1 anno di test forward e se va bene faccio la verifica Demo Live
5) la WFE cerco di mantenerla 0.5 ma non scelgo un EA solo perché ha superato la WFA: la equity dei dati OOS deve essere crescente e con piccoli periodi di stagnazione
Comment
-
E' così che vi ho scoperto due anni fa.
Cercando "Walk Forward Analysis" Forexdream è forse l'unico sito italiano che compare.
E' così che si distingue chi fa vero trading algo da chi scambia backtest overfittati sui forum...
Complimenti ancora, peccato che ste cose le digeriscano in pochi.
- 2 likes
Comment
Comment