Come ottimizzare un Trading System

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • Smash
    Senior Member

    • Feb 2012
    • 351

    #31
    Originariamente Scritto da Marco Bosco
    ciao Marco,


    certo....lancio solo l\'idea però non ho provato..... come sai i nostri script lanciano gli ordini quando l\'espressione dello script diventa vera (in termini booleani)

    Quindi se l\'espressione è TRUE (1) .... l\'ordine viene eseguito...se è FALSE (0) l\'ordine non viene eseguito...

    prendiamo come esempio lo script che sta circolando adesso sul forum (il WilliamsPctR per capirsi)...

    L\'espressione finale è :

    Codice:
    CROSSOVER( DecisionConst, @lowlevel)

    che sarà vera se incrocia o non vera se non incrocia.


    Quindi se scriviamo:

    Codice:
    CROSSOVER( DecisionConst, @lowlevel) and 1
    AND 1 sarà neutro...

    se scriviamo :

    Codice:
    CROSSOVER( DecisionConst, @lowlevel) and 0
    sara sempre FALSA

    Lo scopo qua quindi è di scrivere invece di subito 0 o 1 ... un qualcosa che scriva 0 o 1 in base a delle condizione.

    Quindi va creata una funzione definita dall\'utente... che chiameremo MyMatchCalendar()

    Codice:
    CROSSOVER( DecisionConst, @lowlevel) and MyMatchCalendar()
    dentro MyMatchCalendar() ci dovra essere scritto un qualcosa che : "se oggi parla draghi allora 0 se oggi NON parla Draghi allora 1"....

    OK, allora ecco il codice per un\'ipotetica funzione definita dall\'utente MyMatchCalendar():

    Codice:
    
    # Date in cui parla Draghi
    SET A = DATE = 20140528
    SET B = DATE = 20140627
    SET C = DATE = 20140728
    SET D = DATE = 20140828
    SET E = DATE = 20140929
    SET F = DATE = 20141028
    SET G = DATE = 20141128
    
    
    SET Riep = A OR B OR C OR D OR E OR F OR G
    
    
    SET MyMatchCalendar = NOT Riep

    Per creare la UserFunction bisogna creare una nuova funzione

    Click image for larger version

Name:	0.png
Views:	2
Size:	69.6 KB
ID:	156887

    quindi inserirci un codice tipo quello di cui sopra, e salvare il file con il nome "MyMatchCalendar".


    Per verificarne il funzionamento basta aprire un grafico daily ed aggiungere un indicatore di tipo Custom 1 Line come segue:

    Click image for larger version

Name:	1.png
Views:	1
Size:	18.8 KB
ID:	156888

    ottenendo un risultato di questo tipo:

    Click image for larger version

Name:	2.jpg
Views:	1
Size:	103.7 KB
ID:	156889

    Si noti come la funzione restituisca sempre 1, ad eccezione delle date in cui parla Draghi (avevo ovviamente inserito delle date a caso!) per le quali la funzione invece restituisce zero; in questo modo la funzione può essere utilizzata in un trading system tipo quello che avevi indicato:

    Codice:
    CROSSOVER( DecisionConst, @lowlevel) and MyMatchCalendar()

    Comment

    • alex69
      Senior Member

      • Dec 2012
      • 432

      #32
      Se non vi dispiace faccio passo passo una nuova analisi al fine di verificare se ho ben compreso quanto spiegato finora.
      Per ora tengo in stand-by il TS che abbiamo analizzato finora e utilizzo la sua versione base (senza variazioni dinamiche del periodo tipo allunga-accorcia).

      Lavoro sul Bund con TF 1M.

      1) Impostiamo il periodo di 1.500 barre.
      2) Ottimizzo i 3 parametri (@periods, @lowMark, @highMark)
      3) Ottengo i risultati dell\'ottimizzazione e ordino i risultati sulla colonna Return on Account:

      Click image for larger version

Name:	Immagine 024.jpg
Views:	1
Size:	102.6 KB
ID:	156890

      Utilizzo la funzione Open Sidebar (tasto destro sulla tabella risultati) e mi appare un\'utilissima Equity Line Curve.

      Scorrendo i risultati dell\'ottimizzazione, trovo un set che oltre ad avere un\'equity line molto buona, ha un Profit Factor= 45.33 e un numero di trades molto contenuto (18) rispetto ai primi risultati (89-95).

      4) Apro il report e valuto i risultati:

      Click image for larger version

Name:	Immagine 025.jpg
Views:	1
Size:	150.4 KB
ID:	156894

      Oltre al Profit Factor eccellente di 45.33 (>3) ho un Percent Profitable di 88.24% (>60%).

      5) Esamino quindi l\'Efficiency Analysis:

      Click image for larger version

Name:	Immagine 026.jpg
Views:	1
Size:	131.6 KB
ID:	156896

      Qui ho qualche dubbio, perché se non ho capito male, i valori da verificare (dovrebbero essere quelli cerchiati in rosso) devono essere >80%.
      Se fosse così il nostro TS non sarebbe idoneo.

      In attesa di conferma da parte di qualche utente, immagino che il punto 5 sia andato bene e procedo oltre.

      6) Fase di verifica. Impostiamo il periodo di 3.000 barre.

      7) Apro il report e valuto i risultati:

      Click image for larger version

Name:	Immagine 028.jpg
Views:	1
Size:	164.9 KB
ID:	156897 Click image for larger version

Name:	Immagine 030.jpg
Views:	1
Size:	156.2 KB
ID:	156898 Click image for larger version

Name:	Immagine 029.jpg
Views:	1
Size:	132.2 KB
ID:	156899

      Vedo che Profit Factor 27.86 (>3) è sceso ma ancora buono e che il Percent Profitable 93.10% (>60%) è ulteriormente cresciuto. Equity line buona.

      L\'Efficiency Analysis mostra risultati molto simili a quelli precedenti.


      8) Ipotizzando che anche questi risultati siano idonei, potrei mettere il TS in paper per un periodo di 3.000 barre.

      9) Se il paper da esito in linea con quanto ottenuto in backtest, seguirebbe messa a mercato.

      Comment

      • Cagalli Tiziano
        Senior Member
        • Dec 2007
        • 11252

        #33
        Originariamente Scritto da fnet
        ... non sò , la mia era proprio una domanda, vediamo se cortesemente qualcuno del forum ha qualche indicazione in merito ... ...

        fabio
        Certo che sì!
        ..se corri dietro a due lepri, non ne prendi nemmeno una.

        Comment

        • alex69
          Senior Member

          • Dec 2012
          • 432

          #34
          Originariamente Scritto da alex69
          Se non vi dispiace faccio passo passo una nuova analisi al fine di verificare se ho ben compreso quanto spiegato finora.
          Per ora tengo in stand-by il TS che abbiamo analizzato finora e utilizzo la sua versione base (senza variazioni dinamiche del periodo tipo allunga-accorcia).

          Lavoro sul Bund con TF 1M.

          1) Impostiamo il periodo di 1.500 barre.
          2) Ottimizzo i 3 parametri (@periods, @lowMark, @highMark)
          3) Ottengo i risultati dell\'ottimizzazione e ordino i risultati sulla colonna Return on Account:

          [ATTACH=CONFIG]17115[/ATTACH]

          Utilizzo la funzione Open Sidebar (tasto destro sulla tabella risultati) e mi appare un\'utilissima Equity Line Curve.

          Scorrendo i risultati dell\'ottimizzazione, trovo un set che oltre ad avere un\'equity line molto buona, ha un Profit Factor= 45.33 e un numero di trades molto contenuto (18) rispetto ai primi risultati (89-95).

          4) Apro il report e valuto i risultati:

          [ATTACH=CONFIG]17119[/ATTACH]

          Oltre al Profit Factor eccellente di 45.33 (>3) ho un Percent Profitable di 88.24% (>60%).

          5) Esamino quindi l\'Efficiency Analysis:

          [ATTACH=CONFIG]17121[/ATTACH]

          Qui ho qualche dubbio, perché se non ho capito male, i valori da verificare (dovrebbero essere quelli cerchiati in rosso) devono essere >80%.
          Se fosse così il nostro TS non sarebbe idoneo.

          In attesa di conferma da parte di qualche utente, immagino che il punto 5 sia andato bene e procedo oltre.

          6) Fase di verifica. Impostiamo il periodo di 3.000 barre.

          7) Apro il report e valuto i risultati:

          [ATTACH=CONFIG]17123[/ATTACH] [ATTACH=CONFIG]17124[/ATTACH] [ATTACH=CONFIG]17125[/ATTACH]

          Vedo che Profit Factor 27.86 (>3) è sceso ma ancora buono e che il Percent Profitable 93.10% (>60%) è ulteriormente cresciuto. Equity line buona.

          L\'Efficiency Analysis mostra risultati molto simili a quelli precedenti.


          8) Ipotizzando che anche questi risultati siano idonei, potrei mettere il TS in paper per un periodo di 3.000 barre.

          9) Se il paper da esito in linea con quanto ottenuto in backtest, seguirebbe messa a mercato.

          Silenzio.
          Pensavo in una maggiore reattività da parte degli utenti.
          Probabilmente oggi tutti a fare shopping per le feste.

          L\'argomento è interessante e tra l\'altro il TS dell\'esempio non lo vedo affatto male (anche se aspetto ancora conferme sui quesiti relativi all\'Efficiency).

          Opinioni? Consigli? Domande?

          Non abbiate timore a intervenire e dire la vostra. Siamo qui per crescere insieme e trovare la via più corretta per raggiungere la nostra meta.
          Possiamo contare sul supporto dei ragazzi di Playoptions, di utenti esperti e ovviamente del grande Tiziano.

          Contavo anche sul contributo degli utenti che in questi giorni ci hanno stimolato pubblicando i risultati dei loro trades.
          La loro esperienza potrebbe essere un utile argomento di discussione e crescita.

          La voglia di fare e di imparare è al massimo.
          Ho concluso, ora tocca a voi.

          Comment

          • Apocalips
            Senior Member

            • May 2011
            • 2630

            #35
            Ottimo lavoro Alex, questo approccio Walk Forward Analisys è quello giusto per valutare se i risultati non sono frutto di overfitting e quindi in sintesi per testare quanto un TS sia robusto o meno.

            Devi solamente effettuare una modifica:

            Devi scegliere un campione di dati su cui effettuare l\'ottimizzazione sufficientemente ampio da garantire un numero di trade che abbia un minimo di significatività statistica e possibilmente deve contenere le varie fasi del mercato in quanto a direzione e volatilità, io comunque rispetto al numero non scendo mai sotto i 30 trade, di piu è ancora meglio.

            quindi:

            - aumenta il numero di barre da 1500 a 3000
            - ottimizza i parametri
            - scegli il profilo piu soddisfacente che abbia almeno 30 trade e una equity regolare con profit Factor >3
            - infine testa il tutto su 6000 barre

            Se i risultati sono in linea allora sei pronto per la verifica in paper sulle prossime 6000 barre che poi a TF 1 min. si fa subito, sono solo pochi giorni di borsa. Se anche in paper ottieni gli stessi risultati allora sei con ottime probabilità davanti ad un TS ben costruito, robusto e non affetto da overfitting.

            questo è l\'approccio diciamo quello piu simplex della WFA che nella versione completa prevede la valutazione delle performance di piu WFA in finestre mobili scorrevoli. Comunque già questo primo approccio è un ottimo passo in avanti.

            Vai Alex !!!...con la speranza che si aggiunga alla discussione anche qualche altro trader di PlayOptions


            PS: superata questa prima fase, si potrebbe, con l\'aiuto di Tiziano, valutare la maniera per migliorare la exit efficency con l\'introduzione di script in exit long e exit short legati alla volatilità dello strumento, insomma qui di carne al fuoco ce n\'è tanta, procediamo per gradi, un passo per volta ma senza fermarci

            Apo
            Last edited by Apocalips; 08-12-14, 22:29.
            ....non si desidera ciò che è facile ottenere (Ovidio)....

            Comment

            • alex69
              Senior Member

              • Dec 2012
              • 432

              #36
              Originariamente Scritto da Apocalips
              Ottimo lavoro Alex, questo approccio Walk Forward Analisys è quello giusto per valutare se i risultati non sono frutto di overfitting e quindi in sintesi per testare quanto un TS sia robusto o meno.

              Devi solamente effettuare una modifica:

              Devi scegliere un campione di dati su cui effettuare l\'ottimizzazione sufficientemente ampio da garantire un numero di trade che abbia un minimo di significatività statistica e possibilmente deve contenere le varie fasi del mercato in quanto a direzione e volatilità, io comunque rispetto al numero non scendo mai sotto i 30 trade, di piu è ancora meglio.

              quindi:

              - aumenta il numero di barre da 1500 a 3000
              - ottimizza i parametri
              - scegli il profilo piu soddisfacente che abbia almeno 30 trade e una equity regolare con profit Factor >3
              - infine testa il tutto su 6000 barre

              Se i risultati sono in linea allora sei pronto per la verifica in paper sulle prossime 6000 barre che poi a TF 1 min. si fa subito, sono solo pochi giorni di borsa. Se anche in paper ottieni gli stessi risultati allora sei con ottime probabilità davanti ad un TS ben costruito, robusto e non affetto da overfitting.

              questo è l\'approccio diciamo quello piu simplex della WFA che nella versione completa prevede la valutazione delle performance di piu WFA in finestre mobili scorrevoli. Comunque già questo primo approccio è un ottimo passo in avanti.

              Vai Alex !!!...con la speranza che si aggiunga alla discussione anche qualche altro trader di PlayOptions


              PS: superata questa prima fase, si potrebbe, con l\'aiuto di Tiziano, valutare la maniera per migliorare la exit efficency con l\'introduzione di script in exit long e exit short legati alla volatilità dello strumento, insomma qui di carne al fuoco ce n\'è tanta, procediamo per gradi, un passo per volta ma senza fermarci

              Apo
              Grazie Apo,
              prendo subito nota dei tuoi preziosi suggerimenti e domani mi metto all\'opera.
              L\'argomento diventa sempre più interessante......

              Comment

              • Claudio61
                Senior Member

                • May 2011
                • 3017

                #37
                Mi sono letto il post tutto d\'un fiato non avendolo seguito dall\'inizio
                aspetto di spegnermi
                Click image for larger version

Name:	400_F_46846027_FZC8jw3sQHJmXsd0iEE6vZyyW31zUY5Z.jpg
Views:	1
Size:	34.0 KB
ID:	156927
                e provo a fare qualche test anche io ... ma siete cmq distanti dalle mie 4 operazioni matematiche di base.

                Comment

                • fab62
                  Senior Member

                  • Jul 2012
                  • 674

                  #38
                  Originariamente Scritto da Claudio61
                  Mi sono letto il post tutto d\'un fiato non avendolo seguito dall\'inizio
                  aspetto di spegnermi
                  [ATTACH=CONFIG]17160[/ATTACH]
                  e provo a fare qualche test anche io ... ma siete cmq distanti dalle mie 4 operazioni matematiche di base.


                  Anche io volevo iniziare con qualche test oggi ma ho un problemino logistico con BT .... spero per domani .

                  Saluti Fab

                  Comment

                  • alex69
                    Senior Member

                    • Dec 2012
                    • 432

                    #39
                    Originariamente Scritto da Apocalips
                    .....

                    - aumenta il numero di barre da 1500 a 3000
                    - ottimizza i parametri
                    - scegli il profilo piu soddisfacente che abbia almeno 30 trade e una equity regolare con profit Factor >3
                    - infine testa il tutto su 6000 barre
                    ......
                    Ho un problema con lo storico delle barre.
                    Per fare questi test sto utilizzando la versione di prova di IW che dovrebbe offrire uno storico più ampio rispetto ad IB.

                    1) Facciamo 2 conti.
                    Una giornata di borsa sul Bund (h 8.00-22.00) sono 14x60= 840 minuti/barre

                    2) Quando imposto il grafico con 3.000 barre, lo storico parte dal 4 dicembre.
                    Dovrebbe essere corretto, infatti 3.000/840=3.57 gg. (giornate di borsa: 4dic+5dic+8dic+9dic(parziale))

                    3) Quando però vado ad impostare 6.000 barre, lo storico resta invariato.
                    Quindi sono impossibilitato a fare la verifica su un periodo che va oltre le 3.000 barre.

                    Ho notato che anche IB parte dal 4 dicembre.
                    C\'è qualche soluzione per aumentare lo storico?
                    Grazie.

                    Comment

                    • fnet
                      Senior Member
                      • Aug 2010
                      • 738

                      #40
                      Originariamente Scritto da alex69

                      ho notato che anche ib parte dal 4 dicembre.
                      C\'è qualche soluzione per aumentare lo storico?
                      Grazie.
                      barchart
                      "Tempus omnia medetur" .... e fà guadagnare di Theta

                      Comment

                      • alex69
                        Senior Member

                        • Dec 2012
                        • 432

                        #41
                        Originariamente Scritto da fnet
                        barchart
                        Grazie fnet,
                        non ci avevo proprio pensato.
                        Quando il cervello comincia a fumare......(vedasi post di Claudio)

                        Comment

                        • alex69
                          Senior Member

                          • Dec 2012
                          • 432

                          #42
                          Originariamente Scritto da Apocalips
                          .....

                          Devi solamente effettuare una modifica:

                          Devi scegliere un campione di dati su cui effettuare l\'ottimizzazione sufficientemente ampio da garantire un numero di trade che abbia un minimo di significatività statistica e possibilmente deve contenere le varie fasi del mercato in quanto a direzione e volatilità, io comunque rispetto al numero non scendo mai sotto i 30 trade, di piu è ancora meglio.

                          quindi:

                          - aumenta il numero di barre da 1500 a 3000
                          - ottimizza i parametri
                          - scegli il profilo piu soddisfacente che abbia almeno 30 trade e una equity regolare con profit Factor >3
                          - infine testa il tutto su 6000 barre

                          Se i risultati sono in linea allora sei pronto per la verifica in paper sulle prossime 6000 barre ......
                          Allora, vediamo se questa volta il nostro TS passa l\'esame, con i criteri sopra citati.

                          Solito TS, sul Bund con TF 1M.

                          1) Imposto il periodo di 3.000 barre.
                          2) Ottimizzo i 3 parametri (@periods, @lowMark, @highMark)
                          3) Ottengo i risultati dell\'ottimizzazione.
                          In questo caso, avendo un TS che genera pochi trades e volendo rispettare il criterio n° minimo trades>30 ordino i risultati sulla colonna Num. Trades.
                          Passo in rassegna le righe con Num. Trades>30 valutando:
                          -Profit Factor
                          -Total Net Profit
                          -% Profitables
                          -Equity Line

                          Click image for larger version

Name:	Immagine 041.jpg
Views:	1
Size:	88.9 KB
ID:	156934

                          Da qui in avanti non sono certo che la procedura che ho seguito sia corretta, in quanto non ho scelto 1 singolo set ma 6.
                          Non vorrei aver fatto una forzatura.

                          4) Prendo nota dei set migliori.
                          5) Imposto il periodo di 6.000 barre.
                          6) Verifico i 6 set, uno risulta idoneo.

                          Click image for larger version

Name:	Immagine 042.jpg
Views:	1
Size:	168.7 KB
ID:	156935 Click image for larger version

Name:	Immagine 044.jpg
Views:	1
Size:	148.4 KB
ID:	156936 Click image for larger version

Name:	Immagine 043.jpg
Views:	1
Size:	136.9 KB
ID:	156937

                          Parametri rispettati:
                          -Percent Profitable: 78.79% (>60%)
                          -Profit Factor 3.05 (>3)

                          Dubbi:
                          -Equity fortemente penalizzata da un drawdown
                          -Efficiency Analysis, valori inferiori all\'80%.
                          -Il Total Net Profit su 6.000 barre è praticamente uguale a quello su 3.000 barre.

                          Commenti?

                          Comment

                          • fnet
                            Senior Member
                            • Aug 2010
                            • 738

                            #43
                            Originariamente Scritto da alex69


                            Commenti?
                            ... una vincita e una perdita di importo di gran lunga sopra la media ..... secondo me da analizzare ....
                            insomma una curva equity non omogenea ....
                            "Tempus omnia medetur" .... e fà guadagnare di Theta

                            Comment

                            • Apocalips
                              Senior Member

                              • May 2011
                              • 2630

                              #44
                              Allora Alex, se questi sono i dati, il Ts non ha superato il test.
                              Però prima di buttare il bambino con l\'acqua sporca bisogna fare una cosiderazione.
                              Dalla Equity line vedo 2 trade uno in forte gain e l\'altro in forte quadagno, 2 spike.
                              Verifica le cause che hanno prodotto questi 2 trade anomali e se si tratta di profitti/perdite derivanti da gap overnight allora devi eliminarli semplicemente impostando sia in exit long che in exit short la condizione
                              Codice:
                              TIME>2129
                              Se di questo si tratta ripeti l\'analisi e posta i risultati.
                              Se di questo non si tratta significa che il Ts è overfittato sulla serie di dati campionari (in sample)

                              Aspetto positivo: abbiamo visto l\' efficacia di una analisi WFA che a mio avviso è l\'unico mezzo per testare la robustezza di un Trading System e tenerci alla larga da sistemi sovraottimizzati e quindi non performanti su dati non campionari (Out sample)

                              Apo
                              Last edited by Apocalips; 09-12-14, 21:13.
                              ....non si desidera ciò che è facile ottenere (Ovidio)....

                              Comment

                              • Apocalips
                                Senior Member

                                • May 2011
                                • 2630

                                #45
                                Per tutte le simulazioni e backtest sul Bund il cui nuovo contratto è partito da pochi giorni, conviene caricarsi il future precedente che Barchart fornisce integralmente (3 mesi ) fino a time frame 1 minuto, oltre 50.000 barre pienamente scambiate, incredibile.

                                Click image for larger version

Name:	1.jpg
Views:	1
Size:	110.8 KB
ID:	156941

                                Ovviamente il giochetto si puo ripetere anche con altri future

                                Apo
                                Last edited by Apocalips; 10-12-14, 00:17.
                                ....non si desidera ciò che è facile ottenere (Ovidio)....

                                Comment

                                Working...