Announcement

Collapse
No announcement yet.

Walk Forward Analysis

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Walk Forward Analysis

    Walk Forward Analysis

    Nella statistica inferenziale esiste una tecnica, detta metodo di test “in sample-out of sample” o “previsione out of sample”, che cerca di individuare un fenomeno sulla base dei risultati campionari, scartando momentaneamente la parte più recente del campione per studiare la parte iniziale, al fine di fare previsioni da verificare poi nella parte scartata: quanto più i valori previsti del fenomeno, basandosi sulla prima parte del campione, sono simili a quelli che si riscontrano nella seconda parte del campione, migliore è la capacità del modello di prevedere il fenomeno.


    La Walk Forward Analisys (WFA), proposta per la prima volta da Robert Pardo (1952), usa questo metodo in maniera ricorsiva sull'arco temporale di dati storici, per valutare la robustezza, in termini di performance e gestione del rischio, della logica di un trading system e dell’efficacia del metodo di ottimizzazione utilizzato.
    Vengono ottimizzati i valori dei parametri su un segmento di dati storici di mercato (detti in sample) e poi viene verificata la performance del trading system testandolo sui dati storici di mercato immediatamente successivi a quelli sui quali è avvenuta l'ottimizzazione (detti out of sample).
    Ogni coppia di step, “Ottimizzazione sulla sezione di dati in sample“ e “Verifica (backtest) sulla sezione di dati out of sample”, costituisce un singolo Walk Forward Test (WFT)
    La ripetizione dei successivi WFT sui successivi segmenti di dati storici, fino al giorno corrente o fino al più recente dato storico, costituisce la Walk Forward Analysis.

    L'immagine seguente illustra come si realizza una Walk Forward Analysis.
    Viene suddiviso un arco temporale di dati storici in una successione di finestre temporali, divisa ciascuna in dati in sample e dati out of sample.
    Ogni finestra temporale è sfasata in avanti nel tempo, rispetto alla precedente finestra, di un passo di lunghezza pari al segmento temporale dei dati out of sample.
    walkfwd2.gif




    Immagine tratte da: http://www.amibroker.com/guide/h_walkforward.html


    Si inizia con il Walk Forward Test partendo dalla finestra temporale più lontana nel tempo.

    Step 1 Ottimizzazione sulla 1a sezione di dati in sample
    Step 2 Verifica (backtest) sulla 1a sezione di dati out of sample.


    Step 3 Ottimizzazione sulla 2a sezione di dati in sample
    Step 4 Verifica (backtest) sulla 2a sezione di dati out of sample.

    … e così via fino al giorno corrente.


    Ad esempio, supponiamo di voler effettuare una Walk Forward Analysis di un trading system su EUR/USD con time frame 1 ora.
    Scegliamo una finestra di dati in sample di 4 mesi seguita da 1 mese di dati out of sample.
    Decidiamo di effettuare 6 Walk Forward Test così da avere 6 mesi di simulazione di come si sarebbe comportato l’EA sui dati storici con le ottimizzazioni effettuate sui dati precedenti.
    Decidiamo che l’ultimo giorno dell’ultimo backtest sia il 31 dicembre 2010.
    Qual è il primo giorno da cui inizia la WFA? Cioè, qual è il primo giorno del primo WFT?
    Ogni WFT occupa una finestra temporale di 5 mesi: 4 mesi di ottimizzazione ed 1 mese di verifica in backtest.
    La WFA è formata da 6 WFT, ciascuno sfasato rispetto al successivo di 1 mese, corrispondente alla finestra temporale dei dati out of sample.
    Il numero di mesi che coinvolge l’intera WFA è pari a 10 mesi.
    Quindi dal 31 dicembre 2010, andando indietro di 10 mesi, il primo giorno della WFA è il primo marzo 2010.
    wf1a.gif








    Lo scopo della WFA
    Lo scopo principale della WFA è di determinare se la performance di un trading system ottimizzato è il risultato illusorio dell’overfitting, oppure è il risultato di un modello di trading robusto in grado di prevedere la dinamica di prezzo del mercato e quindi di essere profittevole sui dati di mercato non noti, successivi alla ottimizzazione.


    Walk Forward Efficiency
    La Walk Forward Analysis permette di individuare una misura unica di performance del trading system, la Walk Forward Efficiency (WFE), che è pari al rapporto tra il profitto annualizzato del rendimento dei test walk forward ed il profitto annualizzato del rendimento delle ottimizzazioni.


    Un trading system ha buone possibilità di essere profittevole in real trading soltanto quando, dopo aver applicato la WFA, abbia ottenuto una performance sui dati out of sample paragonabili alle performance sui dati in sample.

    Un trading system è in overfitting quando ha una bassa WF efficiency, cioè i risultati del trading system nei dati out of sample sono nettamente minori dei risultati dell’ottimizzazione in sample.

    Il principale criterio per cui la Walk Forward Analysis può venir giudicata superata da un trading system ottimizzato è il criterio di efficienza: come regola empirica, la letteratura sulla WFA afferma che un trading system è profittevole quando la WFE è maggiore del 50%.
    Come afferma il trader quantitativo Robert Pardo, creatore della procedura della walk forward analysis (Design, Testing and Optimization of Trading Systems, 1991), le ricerche hanno chiaramente dimostrato che strategie robuste di trading hanno una WFE più grande del 50-60%.
    In questi casi il trading system può venir preso in considerazione per essere utilizzato in real time.
    Il passo successivo è quello di valutare come si è comportato nei test out of sample in termini di distribuzione del profitto, dei drawdown, del profit factor, dell’average trade.
    Poiché un trading system deve essere valutato in entrambe le variabili profitto e rischio, Pardo afferma che ai fini di una reale possibilità di utilizzare il trading system in real trading è importante che il post-optimization maximum drawdown si mantenga al di sotto del 150% dell’optimization maximum drawdown.



    Overfitting

    L’Overfitting o Sovraottimizzazione o eccesso di curve fitting letteralmente significa “eccessivo adattamento” di un modello matematico ai dati sperimentali di un fenomeno, con scarsa capacità del modello di descrivere correttamente e di prevedere la dinamica del fenomeno.
    Curve fitting significa approssimare una linea ad un insieme di dati.
    Per Robert Pardo “overfitting is optimization done wrong”.
    L’overfitting è una eccessiva ottimizzazione del trading system sui dati storici, per cui il set di parametri ottimizzati permette al trading system di adattarsi moltissimo al passato, ma non lo rende in grado di valorizzarne il potenziale predittivo sui dati del mercato corrente, cioè l’overfitting non rende il trading system profittevole sul mercato con i dati in tempo reale.
    L’overfitting si evidenzia quando agli ottimi risultati del trading system durante l'ottimizzazione si contrappongono risultati scadenti durante il trading in real time.
    Una buona e solida idea di trading può perdere denaro in real time se è stata iper ottimizzata.

    Un esempio.







    Tipologie di Walk Forward Analysis
    Esistono due forme di WFA,

    - quella “ancorata” all’inizio dei dati: la finestra temporale dei dati in sample parte sempre dall’inizio della serie storica e aumenta di ampiezza cammin facendo,





    - e quella “rolling”, per cui la finestra temporale dei dati in sample ha una lunghezza invariata che parte dopo l’inizio della precedente ottimizzazione, con una lunghezza del passo che spesso si assume uguale al segmento temporale dei dati out of sample.





    Per i modelli di trading che operano su barre settimanali e giornaliere è preferibile la WFA ancorata, perché se si riducesse l’ampiezza della serie storica la significatività dei segnali, che sulle serie settimanali e giornaliere sono tipicamente radi, ne soffrirebbe.
    Per i trading system intraday la WFA rolling è adatta a cogliere la natura ondivaga delle serie storiche.




    Bibliografia
    ° Design, Testing and Optimization of Trading Systems (1951, 1991) - Robert Pardo
    ° The Evaluation and Optimization of Trading Strategies (2008) - Robert Pardo
    ° Trading Systems. A New Approach to System Development and Portfolio Optimisation (2009) - Emilio Tomasini e Urban Jaekle
    ° Trading di Borsa. Le tecniche vincenti dei migliori trader professionali - 2011 (edizione aggiornata, a cura di Tomasini)





    umberto.sm@gmail.com
    La vita non è un giro di prova, cogli l’attimo..
    Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

    #2
    La WFA fornisce una visione della performance del trading system al mutare delle condizioni di mercato: un modello di trading robusto è capace di adeguarsi efficacemente a questi cambiamenti, mantenendo buoni profitti e bassi rischi.
    Esistono quattro differenti tipi di mercato:
    - mercato in trend al rialzo (bull market),
    - mercato in trend al ribasso (bear market),
    - mercato in trading range (trading range market o cyclic market),
    - mercato in congestione (congested market).

    A causa della ciclicità del mercato, il mercato corrente potrebbe avere dei comportamenti significativamente diversi dal periodo in sample immediatamente precedente e quindi i parametri ottimizzati potrebbero mal adattarsi alle condizioni correnti.
    Nella scelta delle finestre di dati in sample e out of sample possono verificarsi due estremi di situazioni, come riportato nelle figure seguenti:
    - nel caso ideale, viene scelta una finestra di ottimizzazione che cattura una parte del mercato contenente tutte le informazioni del mercato,
    - nel caso peggiore, la finestra di dati in sample cattura un’area di mercato che è completamente differente dalla struttura di prezzo dei dati di mercato seguenti, out of sample.





    Immagini tratte da Trading Systems; A New Approach to System Development and Portfolio Optimisation by Tomasini & Jaekle (2009)


    L’individuazione delle finestre temporali ottimali può essere scoperta soltanto attraverso l’esperienza di una serie di test:
    - maggiore è il campione dei dati in sample e maggiore è la probabilità che esso contenga la maggior parte delle condizioni che è probabile si possano incontrare nel futuro,
    - se la finestra di ottimizzazione è breve, aumentano le probabilità di perdere dinamiche di movimento del prezzo che potrebbero verificarsi nei dati out of sample e quindi l’ottimizzazione del trading system riduce il potenziale di predire il futuro.

    Solo l'esperienza e le ripetute prove sui dati storici con il software WFA per Metatrader4 sopra postato, permette di individuare per un dato cross la lunghezza delle finestre ottimali per i dati in sample e out of sample.[/QUOTE]




    Robert Pardo afferma che la finestra di dati out of sample deve essere approssimativamente il 25% - 35% della finestra di dati in sample (The Evaluation and Optimization of Trading Strategies, 2008, pag. 249)
    cioè la verifica del trading system ottimizzato va fatta su una finestra temporale di un quarto o un terzo della finestra temporale su cui è avvenuta l’ottimizzazione.
    In generale si divide l’arco temporale in sample e out of sample in 4 parti e si prendono
    - 3 parti di tempo per l’ottimizzazione del trading system sui i dati in sample
    - ed 1 parte per il backtest sui dati out of sample.

    Ad esempio, un modello di trading
    - testato su cinque anni di dati in sample, può essere tradato per uno o due anni,
    - testato su due anni di dati in sample, può essere tradato per sei o otto mesi,
    - testato su un anno di dati in sample, può essere tradato per tre o quattro mesi,
    - testato su sei mesi di dati in sample, può essere tradato per uno o due mesi.

    Tomasini e Jaekle nel loro testo (2009) dettagliano l’applicazione di una WFA, formata da 19 WFT di 1 anno di dati in sample, 3 mesi di dati out of sample e passo (shifting period) di 3 mesi, su un trading system che lavora con barre a 30 minuti della coppia di valute GBP/USD.


    E poi c'è un altro fattore molto importante, il numero di trade minimi per avere una significatività statistica nel processo di ottimizzazione del trading system sui dati in sample: è necessario che la finestra temporale scelta permetta di effettuare un minimo di 30 trade, mentre maggiore accuratezza si ha superando i 100 trade.
    La statistica ci dice che un campione di 30 trade rende i risultati medi meno soggetti al caso e sufficientemente rappresentativi della dinamica del mercato finanziario.

    Secondo Tomasini e Jaekle (2009), un backtest con solo 100 trade restituisce risultati che sono molto probabilmente frutto del caso, mentre con 2000 trade è elevata la probabilità statistica che il trading system performi in modo simile al backtest nel prossimo futuro.

    Secondo Boris Odintsov, vincitore del torneo organizzato dalla Metaquotes sul forex con la piattaforma Metatrader5 (http://championship.mql5.com/2010/en), 300 è il numero minimo di trade che un backtest deve realizzare per poter fare una affidabile valutazione statistica di un trading system, mentre 30 è la minima soglia statistica (http://championship.mql5.com/2010/en/news/47).
    La vita non è un giro di prova, cogli l’attimo..
    Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

    Comment


      #3
      Buonasera, volevo segnalare che è staro reso di nuovo disponibile free il programma Walk Forward Analyzer sul sito: http://www.easyexpertforex.com/.

      Comment


        #4
        Ultimamente sono venuto a conoscenza di una evoluzione teorica della walk forward analysis: il 3 data parts approach, l'evoluzione genetica in 3 parti.
        come si può leggere accennato qui o ben spiegato in questo PDF a pagina 18

        3 data parts approach
        Traditionally, only In Sample + Out of sample (2 data parts) were used in evolution. Strategies were evolved only on In Sample data, and tested on Out of Sample data.
        With 3 data parts approach we can divide In Sample data to additional two parts, so we'll get three parts:
        In Sample Training (IS Training)
        In Sample Validation (IS Validation)
        Out of Sample (OOS)
        Dividing data to three parts allows us to control the evolution better. By comparing performance on Training vs Validation part we can decide to restart the evolution to avoid wasting time on evolution going nowhere.



        Normalmente in ottimizzazione ed in evoluzione genetica, si usa il metodo In Sample + Out Of Sample.
        Con l’approccio in 3 parti, i dati In Sample vengono divisi in due parti, così da avere un totale di tre porzioni di dati storici:

        In Sample Training (IS Training) questa parte di dati storici viene utilizzata per l'evoluzione delle strategie di trading, la fitness della strategia è misurata su questa parte di dati, e le strategie con la migliore fitness verranno scelte per produrre la prossima generazione.

        In Sample Validation (IS Validation) questa parte di dati storici viene utilizzata per confrontare le prestazioni della strategia di trading con quella ottenuta con i dati IS Training. Quindi la fitness della strategia viene misurata anche su questa parte di dati IS Validation, al fine di decidere di
        - riavviare l'evoluzione se la fitness o le prestazioni iniziano a ristagnare (= non produrre miglioramenti della equity line) sui dati IS Validation,
        - o se le prestazioni della strategia (utile netto, fattore di profitto, ecc) nel periodo temporale di IS Validation non sono simili a quelli di IS Training.

        Out of Sample (OOS) questa terza parte di dati storici viene utilizzata per verificare la strategia di trading su dati sconosciuti. Poiché si utilizzano i dati storici IS Validation per influenzare l'evoluzione, la strategia va testata su dati nuovi, realmente Out Of Sample, cioè che siano dati sconosciuti alla strategia di trading, al fine di verificarne le prestazioni in maniera indipendente.


        Nelle figure seguenti, esempi di prestazioni di una strategia di trading nelle tre porzioni di dati storici.

        In questo esempio la strategia performa negativamente nella parte IS Validation.


        Una strategia migliore dovrebbe essere più simile a quest'altro esempio, in cui tutte le tre parti hanno performance positive ...anche se si osserva un drawdown troppo elevato.
        La vita non è un giro di prova, cogli l’attimo..
        Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

        Comment


          #5
          Grande Umberto! Grazie mille!
          Una domanda ... sai se esiste un'altra piattaforma/software dove si puo' testare/ottimizzare ed eventualmente fare WFA, montecarlo etc su strategie MQL, dandogli in pasto un .MQ4 o un .ex4 ? Intendo un software di terze parti che riceve file/strategie in formato mql4 (o diversi altri formati) che sia ottimizzato anche multiprocessore etc . La metatrader e' molto lenta e non fa WFA ...

          Grazie!
          Sten

          Comment


            #6
            Originally posted by sten View Post
            sai se esiste un'altra piattaforma/software dove si puo' testare/ottimizzare ed eventualmente fare WFA, montecarlo etc su strategie MQL, dandogli in pasto un .MQ4 o un .ex4 ? Intendo un software di terze parti che riceve file/strategie in formato mql4 (o diversi altri formati) che sia ottimizzato anche multiprocessore etc .
            forse questo ma non l'ho mai usato
            Forex Strategy Builder
            http://forexsb.com/index.php
            Analyse your strategy behavior
            Monte Carlo robustness tests
            Test on multiple markets at once
            Compare various testing methods

            .
            Sicuramente puoi usare il software gratuito Quant Analyzer

            http://www.strategyquant.com/quantanalyzer/
            Verifying a new EA? Use Monte Carlo on strategy backtest to find out if the strategy will survive in real world
            La vita non è un giro di prova, cogli l’attimo..
            Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

            Comment


              #7
              Ho trovato una spiegazione video di come avviene la logica di ricerca di strategie
              generate nei dati In Sample Training,
              validate nei dati In Sample Validation
              ed infine verificate nella loro effettiva efficacia nei dati Out of Sample

              Lo spiega bene Giovanni Trombetta in questo video pubblicato su you-videolive.it dal minuto 45 in poi.

              Ho estratto i 7 minuti in cui dettaglia il funzionamento di queste tre fasce di dati storici, che Trombetta ed il suo partner Luca Giusti, nel progetto Gandalf, chiamano

              In Sample --> In Sample Training
              OOS1 = Out of Sample Impuro --> In Sample Validation
              OOS2 = Out of Sample Puro --> Out Of Sample





              Il breve video estratto con la spiegazione la potete vedere direttamente qui, su Vimeo: https://vimeo.com/142054478






              La vita non è un giro di prova, cogli l’attimo..
              Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

              Comment


                #8
                Molto interessante Umberto il video.
                Quindi correggimi se sbaglio... esistono delle piattaforme o dei software che cercano in automatico "pattern operativi"???

                Comment


                  #9
                  Si, eccone tre:



                  http://www.strategyquant.com/






                  http://www.adaptrade.com/Builder/






                  http://www.tradingsystemlab.com/



                  La vita non è un giro di prova, cogli l’attimo..
                  Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                  Comment


                    #10
                    E io che ho passato gli anni a cavarmi gli occhi che robaaaaaaaa

                    Comment


                      #11
                      eeeeeeh, ma usare bene questi software è quasi un'arte, bisogna configurare per bene i blocchi di pattern da cercare, saper usare i test di robustezza, e walk forward analysis, saper validare un trading system e infine costruire i portafogli di trading system che siano scorrelati nella equity.

                      Ci si perde molto tempo e solo dopo una lunga gavetta, pare da chi ho conosciuto, finalmente si comincia a guadagnare realmente.

                      Io ho iniziato a studiare questo approccio soltanto da pochi mesi ed in modalità part time, per cui sono ancora in progress :16.dull_80_anim_gif
                      La vita non è un giro di prova, cogli l’attimo..
                      Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                      Comment


                        #12
                        Originally posted by umbertosm View Post
                        eeeeeeh, ma usare bene questi software è quasi un'arte, bisogna configurare per bene i blocchi di pattern da cercare, saper usare i test di robustezza, e walk forward analysis, saper validare un trading system e infine costruire i portafogli di trading system che siano scorrelati nella equity.

                        Ci si perde molto tempo e solo dopo una lunga gavetta, pare da chi ho conosciuto, finalmente si comincia a guadagnare realmente.

                        Io ho iniziato a studiare questo approccio soltanto da pochi mesi ed in modalità part time, per cui sono ancora in progress :16.dull_80_anim_gif

                        condivido Umberto i soldi.... facili.... solo un ingenuo può farla semplice

                        Comment


                          #13
                          Originally posted by fuzzytrade View Post
                          E io che ho passato gli anni a cavarmi gli occhi che robaaaaaaaa

                          C'è anche price action lab che mi dicono essere uno dei migliori
                          http://www.priceactionlab.com

                          Comment


                            #14
                            Originally posted by rawos View Post
                            C'è anche price action lab che mi dicono essere uno dei migliori
                            http://www.priceactionlab.com
                            Mah...
                            Michael Harris è l'inventore di questo software,
                            ho letto qualche anno fa il suo bel libro Trading sistematico e redditività : metà sono informazioni interessanti, l'altra metà è pubblicità martellante dei suoi tool, indicatori proprietari, libri.
                            Harris vende la sua idea di ricerca pattern da decenni!

                            E' un grande venditore, aggancia un cliente e gli fa pagare canoni annuali,
                            addirittura per il suo nuovo libro online
                            This is an online book and if you subscribe you will not get a hard copy or a PDF.
                            $49/year No refunds for cancellations Pay via PayPal or credit card

                            Per il suo software, Price Action Lab v7.0
                            si fa pagare
                            - Price of a license in USD : 995
                            - Annual maintenance in USD : 295

                            Tutto questo attaccamento ai soldi e pubblicità dei suoi tools e libri mi ha sempre insospettito.

                            Fino a poco tempo fa il suo sito di riferimento era www.Tradingpatterns.com
                            ora fa più figo e alla moda chiamarlo www.priceactionlab.com​

                            Il software cerca pattern di candele e le valida con In sample e Out of sample classico.

                            Non so quanto abbia evoluto il suo software nel tempo, quanto si avvicini alle potenzialità di StrategyQuant o degli altri software,
                            leggendo il manuale in PDF sul sito presenta le stesse logiche (search pattern, validazione con il p-indicator) che aveva anni fa, con la stessa grafica obsoleta alla "Windows 95" che non si è neanche curato di rendere moderna.

                            Chi parla bene di questo software non è detto che abbia approfondito anche gli altri nuovi software di ricerca trading system con algoritmi genetici che ho postato sopra.
                            La vita non è un giro di prova, cogli l’attimo..
                            Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                            Comment


                              #15
                              Azzerola!!! Leggevo sul sito di " TradingSystemLab " che non esiste nessun periodo di prova in demo, ma un costo annuale della licenza di $ 20.000. :11.tongueout_80_ani

                              Comment

                              Working...
                              X