Announcement

Collapse
No announcement yet.

Walk Forward Analysis

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

    #31
    interessante ilgrigio,
    Stavo lavorando anche io su temi simili ai tuoi. Poi ho rinunciato perchè modificando il TS in tempo reale ottenevo o un'ulteriore versione, non testata, del TS stesso, o introducevo un'ulteriore livello di ottimizzazione che non ero in grado di controllare. Alla fine sono ritornato al classico interruttore on/off del TS valutando l'andamento della equity line sul singolo.
    Tengo inoltre sempre fermo il periodo di test OOS perchè in questo modo so esattamente quando ri-ottimizzare il sistema live. Nella mia esperienza infatti i risultati di un TS possono variare anche significativamente utilizzando rapporti IS/OOS differenti.
    Ho letto inoltre che effettui una distinzione tra parametri Long e Short. Applichi questo sistema indipendentemente dal numero di trade che ogni TS genera in anno o lo applichi sempre?

    Ciao

    Comment


      #32
      Ciao Matteo....
      .... se ci pensi la procedura della WFA è quella di ottimizzare il TS per valutare gli errori e decidere di rimodificare/ottimizere il TS per renderlo più robusto..../correggerlo.....
      ..... io invece faccio il contrario cerco di "ottimizzare" (anche se è improprio dire così..) la procedura di risposta/correzione errori per rendere i risultati stabili/profittevoli..... senza toccare più il TS....
      ..... spero di essermi spiegato.... lol lol

      per quanto riguarda l'ottimizzazione separata del buy e sell.... lo faccio perchè ho più flessibilità sulle variabili.... del TS.... (genero in questa maniera un "zona di incertezza" dove posso metterci le mani.... lol lol lol)
      ciao
      ilgrigio

      Comment


        #33
        Originally posted by ilgrigio View Post
        Ciao Matteo....
        .... se ci pensi la procedura della WFA è quella di ottimizzare il TS per valutare gli errori e decidere di rimodificare/ottimizere il TS per renderlo più robusto..../correggerlo.....
        ..... io invece faccio il contrario cerco di "ottimizzare" (anche se è improprio dire così..) la procedura di risposta/correzione errori per rendere i risultati stabili/profittevoli..... senza toccare più il TS....
        ..... spero di essermi spiegato.... lol lol

        per quanto riguarda l'ottimizzazione separata del buy e sell.... lo faccio perchè ho più flessibilità sulle variabili.... del TS.... (genero in questa maniera un "zona di incertezza" dove posso metterci le mani.... lol lol lol)
        ciao
        ilgrigio
        Ciao, sì ti sei spiegato benissimo- Quindi hai due ottimizzazione la prima insita nel TS stesso. Che abbia o meno parametri ottimizzati poco importa, Avendo scelto i parametri di un indicatore (o quant'altro, tanto per fare un esempio) si tratta comunque di un'ottimizzazione e una relativa alla correzione degli errori. Quali sono i benefici rispetto all'approccio più tradizionale ottimizzo i parametri di un TS e attivo/disattivo il trading del TS in base al comportamento dell'andamento della sua equity durante il trading?

        Ciao

        Comment


          #34
          Matteo... ciao....
          ..... più che attivare disattivare il TS io cerco di creare una funzione che corregge gli errori del TS cioè cambio il comportamento del TS per minimizzare gli errori (ridurre il DD e aumentare il profitto)..... insomma è la funzione di risposta del TS che deve essere valutata e non il TS in se.....
          ciao
          ilgrigio

          Comment


            #35
            Ok ilgrigio, quando hai un attimo se riesci a farmi un esempio concreto, magari capisco meglio. Grazie e ciao

            Comment


              #36
              ..... allora un'esempio concreto eh???.... va bene.... (spero di riuscire nell'impresa lol lol lol lol)
              ..... ogni TS ha delle condizioni che ti fanno decidere se comprare o vendere.... giusto??..... queste condizioni riguardano parametri/variabili utili a decidere.... giusto???
              .... ora qual'è il confine (variabili/condizioni/parametri/soglie... ecc ecc) che fa scattare la decisione di comprare o vendere???
              ..... questo strano confine può essere modificato per "anticipare/ritardare" la risposta???? fino ad un ipotetico limite che addirittura ne capovolgerebbe il funionamento???? cioè il buy diventa il sell e viceversa.....

              .... io opero in questa maniera.... prima codifico il confine (variabili che fanno scattare il buy e il sell).... e poi alzo e abbasso le soglie in funzione del rendimento complessivo e del DD..... (questo detto barbaramente...... in realtà ti devi creare una funzione specifica che cambi in automatico i vari parametri e che valuti sia l'andamento del mercato.... sia la risposta (se adaguata va mantenuta o incoraggiata..... se non adeguata il contrario....)

              Spero di non averti generato ulteriore confusione.... e spero che almeno il concetto ti sia arrivato....

              PS: esistono anche altri modi di realizzare questo concetto/metodologia.... (cioè della risposta più adeguata.... del TS al mercato....!!!)
              ciao
              ilgrigio

              Comment


                #37
                Originally posted by ilgrigio View Post
                ..... allora un'esempio concreto eh???.... va bene.... (spero di riuscire nell'impresa lol lol lol lol)
                ..... ogni TS ha delle condizioni che ti fanno decidere se comprare o vendere.... giusto??..... queste condizioni riguardano parametri/variabili utili a decidere.... giusto???
                .... ora qual'è il confine (variabili/condizioni/parametri/soglie... ecc ecc) che fa scattare la decisione di comprare o vendere???
                ..... questo strano confine può essere modificato per "anticipare/ritardare" la risposta???? fino ad un ipotetico limite che addirittura ne capovolgerebbe il funionamento???? cioè il buy diventa il sell e viceversa.....

                .... io opero in questa maniera.... prima codifico il confine (variabili che fanno scattare il buy e il sell).... e poi alzo e abbasso le soglie in funzione del rendimento complessivo e del DD..... (questo detto barbaramente...... in realtà ti devi creare una funzione specifica che cambi in automatico i vari parametri e che valuti sia l'andamento del mercato.... sia la risposta (se adaguata va mantenuta o incoraggiata..... se non adeguata il contrario....)

                Spero di non averti generato ulteriore confusione.... e spero che almeno il concetto ti sia arrivato....

                PS: esistono anche altri modi di realizzare questo concetto/metodologia.... (cioè della risposta più adeguata.... del TS al mercato....!!!)
                ciao
                ilgrigio
                Grazie, ora è tutto più chiaro.. Ciao

                Comment


                  #38
                  buongiorno a tutti.....
                  sono felice che Matteo abbia capito i concetti che volevo esprimere.....(lol lol molto spesso mi ingarbuglio da solo.... lol lol lol)
                  un caro saluto
                  ilgrigio

                  Comment


                    #39
                    Ho trovato un'altra fonte che parla dell'argomento delle tre fasce di dati storici da usare nel processo di ricerca di trading system creati con algoritmi di programmazione genetica.

                    Poiché il manuale ed il software erano già online nel lontano 1998, questa è probabilmente la fonte da cui sia StrategyQant che Gandalf hanno attinto per introdurre questo potente strumento nei loro software.

                    Parlo di Discipulus, un software di programmazione genetica che viene usato in ambito scientifico, prodotto dalla RML Technologies, Inc. (Register Machine Learning Technologies, Inc).

                    Il software Trading System Lab lo usa come motore genetico, applicandolo al mondo finanziario.
                    Il manuale Discipulus_Owners_Manual.pdf consiglia di suddividere i dati storici in tre parti uguali, corrispondenti alle tre finestre temporali di dati storici

                    Training data = In Sample Training
                    Validation data = In Sample Validation
                    Applied data = Out of Sample


                    Il manuale dettaglia la logica delle tre finestre di dati da pagina 206.

                    Vogliamo costruire un programma software con la logica della programmazione genetica, che sia in grado di descrivere il comportamento di un fenomeno in ambito scientifico/finanziario, di cui conosciamo i dati storici:

                    - i dati storici di Training contengono i dati su cui viene calcolata la funzione di fitness di ciascun programma della popolazione,

                    - i dati di Validation sono i dati su cui performano i programmi al fine di scegliere i migliori nella popolazione,

                    - gli Applied Data sono i dati su cui viene verificata l'effettiva capacità del programma di descrivere il comportamento del fenomeno.

                    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


                      #40
                      Grazie Umberto delle nozioni, tutto molto interessante e chiaro e mi si sta aprendo un mondo nuovo, anche se sono nuovo di queste cose e ho strumenti non appropriati (soltanto Excel che uso sia per backtesting che per valutazione del TS).

                      Mi sorgono tre domande prima di mettermi a fare WFA su portafoglio di strategie forex sulle news.

                      Ho una serie storica di 9 anni con 5 strategie che si intersecano con un totale operazioni sul periodo del portafoglio di 250 operazioni e circa 50 operazioni mediamente a strategia nei 9 anni.

                      1) come mi consiglieresti di impostare la WFA su ogni singola strategia, cioè quante iterazioni IS - OOS sui 9 anni, con che periodi e meglio una WFA ancorata o rolling?

                      2) nel caso mi consigliaste la WFA rolling la formula WFE riportata all'inizio, al posto di T (in), che in questo caso cambierebbe di volta in volta, devo sostituirlo con la media di T in?

                      3) il punto 1) nel caso di un unica strategia in 15 anni di dati con un totale operazioni di 300 come può essere impostata?

                      Grazie mille Umberto,

                      Saluti
                      Stefano

                      Comment


                        #41
                        Beh Stefano, diciamo che hai una situazione in numero di trade che esce dalle regole statistiche di avere almeno 100 trade, affinché ci sia un minimo di significatività statistica.

                        Perciò per me non ha senso fare una Walk Forward Analysis nel tuo caso: ogni strategia fa soltanto 50 trade in 9 anni!

                        Quindi, per le prime due domande posso risponderti che,
                        avendo tu a disposizione 15 anni di dati, più che WFA puoi fare un solo ciclo di
                        - In sample di 10 anni su cui ottimizzi la singola strategia
                        - e poi verifichi la profittabilità del setting ottimizzato nei successivi 5 anni di Out Of Sample

                        Per il terzo punto, se hai un trading system che su 15 anni fa soltanto 300 operazioni,
                        puoi suddividere i dati IS e OOS facendo in modo che nei dati In Sample tu abbia almeno 100 trade fatti dall'EA,
                        quindi se su 15 anni fai 300 trade, in 5 anni ne farai mediamente 100... da cui:
                        finestra di dati In Sample = 7 anni
                        finestra di dati Out Of Sample = 2 anni
                        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


                          #42
                          Grazie Umberto, quindi nel caso del terzo punto ogni ciclo deve traslare in avanti della durata dell'OOS quindi 2 anni giusto? mi consigli WFA rolling o ancorata?

                          Comment


                            #43
                            si, ogni ciclo trasla in avanti della durata di OOS; consiglio la WFA rolling.
                            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


                              #44
                              ciao a tutti....
                              posto un paper interessante... (almeno spero.... lol lol)
                              - il sito dove potete scaricarlo è questo: http://papers.ssrn.com/sol3/papers.c...act_id=2326253
                              ilgrigio

                              Comment


                                #45
                                grigio grazie per il pdf, l'ho letto, concettualmente interessante, ma davvero molto complicato da realizzare per normali fini pratici con Mt4.

                                Hai qualche idea per rendere il tutto fruibile e pratico?
                                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

                                Working...
                                X