DAX 1m 80% profitable e 3,3 di profit factor: dove sbaglio?

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • framzero
    Member
    • May 2010
    • 47

    #1

    DAX 1m 80% profitable e 3,3 di profit factor: dove sbaglio?

    buongiorno,
    da qualche tempo mi sto cimentando nei TS. Mi "alleno" prendendo parecchio spunto dai meravigliosi post di questo forum.

    Ad esempio ho provato a mettere il TRIX "alla APO" (che "vede" la pendenza) con il supertrend.
    Ho ottimizzato il tutto sul dax a 1 m (3000barre) e il risultato non sembra affatto male ma ho qualche domanda da porre.

    Dal punto di vista statistico, è valido questo backtest?
    come potrei migliorare l\'efficienza di entrata e uscita, unico valore ancora sotto gli standard di Tiziano Cagalli? (>80%)
    il valore ottimizzato migliore di takeprofit è 80 ma sembra basso. Con impostato "80" mi restituiva un profit factor che supera 15: avendo il dubbio che non fosse un dato realistico l\'ho portato a 200, ho fatto bene?

    Il binomio trix supertrend, credo proprio per la semplicità, funziona anche sullo stoxx (1m) ma peggiora tantissimo a TF più alti. Qualcuno ha suggerimenti per "rifinire" il codice?
    File Allegati
    Last edited by framzero; 16-09-16, 16:49.
  • Cagalli Tiziano
    Senior Member
    • Dec 2007
    • 11252

    #2
    Originariamente Scritto da framzero
    buongiorno,
    da qualche tempo mi sto cimentando nei TS. Mi "alleno" prendendo parecchio spunto dai meravigliosi post di questo forum.

    Ad esempio ho provato a mettere il TRIX "alla APO" (che "vede" la pendenza) con il supertrend.
    Ho ottimizzato il tutto sul dax a 1 m (3000barre) e il risultato non sembra affatto male ma ho qualche domanda da porre.

    Dal punto di vista statistico, è valido questo backtest?
    come potrei migliorare l\'efficienza di entrata e uscita, unico valore ancora sotto gli standard di Tiziano Cagalli? (>80%)
    il valore ottimizzato migliore di takeprofit è 80 ma sembra basso. Con impostato "80" mi restituiva un profit factor che supera 15: avendo il dubbio che non fosse un dato realistico l\'ho portato a 200, ho fatto bene?

    Il binomio trix supertrend, credo proprio per la semplicità, funziona anche sullo stoxx (1m) ma peggiora tantissimo a TF più alti. Qualcuno ha suggerimenti per "rifinire" il codice?
    Il risultato è assolutamente reale perchè il tuo sistema lavora in take profit e quindi quel determinato prezzo lo ha fatto veramente e non importa quando (nel time frame selezionato) poichè non è un Trailing stop che risente della differenza temporale dei prezzi che si trovano sulla stessa barra.
    L\'unico fatto che non è certo è se il TUO contratto sarebbe stato eseguito, ovvero se messo sul book dal sistema, ha avuto o meno il tempo di essere eseguito.
    Per ovviare a questo dubbio meglio inserire un valore di slippage (così si chiama la differenza tra il prezzo inviato e quello eseeguito).
    Mettine uno peggiorativo, magari osservando la velocità di contrattazione del book e così sei tranquillo che se dovesse andare diversamente....andrebbe soloo meglio!
    File Allegati
    ..se corri dietro a due lepri, non ne prendi nemmeno una.

    Comment

    • framzero
      Member
      • May 2010
      • 47

      #3
      Originariamente Scritto da Cagalli Tiziano
      Il risultato è assolutamente reale perchè il tuo sistema lavora in take profit e quindi quel determinato prezzo lo ha fatto veramente e non importa quando (nel time frame selezionato) poichè non è un Trailing stop che risente della differenza temporale dei prezzi che si trovano sulla stessa barra.
      L\'unico fatto che non è certo è se il TUO contratto sarebbe stato eseguito, ovvero se messo sul book dal sistema, ha avuto o meno il tempo di essere eseguito.
      Per ovviare a questo dubbio meglio inserire un valore di slippage (così si chiama la differenza tra il prezzo inviato e quello eseeguito).
      Mettine uno peggiorativo, magari osservando la velocità di contrattazione del book e così sei tranquillo che se dovesse andare diversamente....andrebbe soloo meglio!
      Il test l\'ho fatto settando lo slippage 1. Abbastanza a caso. Come mi posso regolare per rendere realistico il test su dax, stoxx e ftse?

      Comment

      • Cagalli Tiziano
        Senior Member
        • Dec 2007
        • 11252

        #4
        Originariamente Scritto da framzero
        Il test l\'ho fatto settando lo slippage 1. Abbastanza a caso. Come mi posso regolare per rendere realistico il test su dax, stoxx e ftse?
        1 punto di slippage è realistico su tutti e tre i future.

        In pratica scrivendo 1 tick di slippage significa che potresti inviare l\'ordine di uscita a Market perdendo così lo spread tra bid e ask che è appunto di 1 tick.

        Se il tuo sistema prevede l\'entrata "così o peggio" e uscita "così o meglio" (ordine stop in entrata e ordine limite in uscita) allora la valutazione ad 1 tick è valida, lo è un pò meno se entrambe le condizioni sono dello stesso tipo poichè:

        • nel caso di ordine limite potresti non essere servito perchè il prezzo viene fatto ma non vengono scambiati contratti sufficienti per essere serviti e quindi potresti, nello scenario reale non essere nemmeno a mercato oppure non essere uscito;
        • nel caso di ordine stop hai la certezza di essere sia entrato che uscito ma allora devi inserire uno slippage di 2 tick. Sei tu che vai a colpire e non aspetti di essere eseguito.


        Una uscita a target per essere veramente efficace dovrebbe essere calcolata appena entrati nel trade e posizionarsi nel book già al prezzo calcolato.
        In pratica la condizione di uscita deve sempre essere vera al prezzo di entrata più il gain. In questo modo appena entri viene inviato l\'ordine di uscita che è Limite.

        Concludo, si fanno i backtest con le varie simulazioni e poi si prova un periodo di front test (mercato reale ma simulato) e si vede come e se aggiustare. Se il broker non permette un portafoglio simulato allora si prova con 1 azione su un titolo scambiato (qui però c\'è il costo delle commissioni ma è un pedaggio che è meglio pagare piuttosto di trovarsi in difficoltà con contratti future di valore alto.)
        ..se corri dietro a due lepri, non ne prendi nemmeno una.

        Comment

        • framzero
          Member
          • May 2010
          • 47

          #5
          visto che sei tanto disponibile...

          Grazie mille per la spiegazione che mi ha chiarito molto. E\' tutto oggi, però, che non capisco in che modo posso specificare il tipo di ordine in entrata e uscita con lo script. Sul manuale non vedo riferimenti... O forse mi sfuggono? Bisogna forse passare da un\'altra funzione?

          Grazie mille dei chiarimenti, sono veramente preziosi.

          Non vedo l\'ora di testare in front test questo TS.

          Francesco

          Comment

          • framzero
            Member
            • May 2010
            • 47

            #6
            slippage

            credo di avere un problema con lo slippage. Imposto 1 ma nel report mi segna 0. Come mai?
            File Allegati

            Comment

            • Andrea Cagalli
              Senior Member
              • Oct 2010
              • 3995

              #7
              Originariamente Scritto da framzero
              Grazie mille per la spiegazione che mi ha chiarito molto. E\' tutto oggi, però, che non capisco in che modo posso specificare il tipo di ordine in entrata e uscita con lo script. Sul manuale non vedo riferimenti... O forse mi sfuggono? Bisogna forse passare da un\'altra funzione?

              Grazie mille dei chiarimenti, sono veramente preziosi.

              Non vedo l\'ora di testare in front test questo TS.

              Francesco
              Ciao,
              ti rispondo io perchè papà è fuori per qualche giorno: il discorso che fa Tiziano sui tipi di ordine riguarda l\'operatività in manuale, che è quella che devi riprodurre il più fedelmente possibile in un TS. Per quanto riguarda gli ordini generati in automatico vengono sempre inviati ordine MARKET in modo da essere sicuro che l\'ordine venga sempre eseguito (magari 1 tick o raramente 2 ticks peggio). Ed è proprio per questo motivo che nel backtest è presento lo slippage.

              Ciao Ciao
              Manuale beeTrader

              Comment

              • Andrea Cagalli
                Senior Member
                • Oct 2010
                • 3995

                #8
                Originariamente Scritto da framzero
                credo di avere un problema con lo slippage. Imposto 1 ma nel report mi segna 0. Come mai?
                Ciao,
                questo è un piccolo bug che verrà risolto nella prossima release, i calcoli nella versione che usi tengono comunque conto dello slippage che imposti, è solo la visualizzazione nella scheda settings che ti mostra sempre 0.

                Grazie della segnalazione.

                Ciao Ciao
                Manuale beeTrader

                Comment

                • framzero
                  Member
                  • May 2010
                  • 47

                  #9
                  Ciao!
                  Grazie mille della risposta.
                  Domani pubblico il codice che è davvero striminzito... Ma che fa capire che coppia straordinaria formano Trix e Super Trend. Ottimizzando leggermente i periodi e take profit e profit loss mi da ottimi risultati su minidax 1 min, ftse 1 min, stoxx 1 min e stoxx 5 min (slippage 1 e senza traling percent). Dovrei migliorare le statistiche di uscita soprattutto, ma ci lavorerò. Ora il computer sta subendo lo sforzo di un\'intera giornata di ottimizzazioni. XD

                  Grazie davvero per tutto.

                  Buona serata!

                  Comment

                  • Apocalips
                    Senior Member

                    • May 2011
                    • 2630

                    #10
                    Originariamente Scritto da framzero
                    Ciao!
                    Grazie mille della risposta.
                    .....Ottimizzando leggermente i periodi e take profit e profit loss mi da ottimi risultati ...

                    Ciao Fram, il miglior modo per testare una idea di trading che ha superato il backtest è il front test.
                    Il backtest è un arma a doppio taglio e si rischia quasi sempre di cadere nella trappola dell\' overfitting.

                    Ci sono diversi modi di procedere per non incorrere in questo errore , alcuni dei quali anche piuttosto complessi e difficili da eseguire in manuale.

                    a me invece piace fare in questo modo molto semplice ma molto efficace e cioè:

                    Per allontanare il piu possibile la trappola della sovraottimizzazione dovresti far girare il tuo TS su segmenti IN SAMPLE e OUT SAMPLE dopodichè se le performance non degradano sensibilmente puoi anche decidere di andare a mercato reale. In buona sostanza, supponiamo che tu voglia testare ed ottimizzare il tuo TS sulle ultime 1500 barre, ebbene, questo è il periodo che chiamiamo IN SAMPLE in cui si va alla ricerca dei migliori parametri. Terminata questa fase di ricerca ti vai a selezionare a ritroso un altro segmento OUT SAMPLE di 1500 barre che il Ts non ha mai visto, quello che precede le prime 1500 dell\' in sample e su di esso senza toccare niente fai girare il tuo TS e verifica i risultati. Se la equity che ottieni è abbastanza paragonabile a quella del periodo IN SAMPLE allora sei sulla buona strada e sei pronto per testarlo su un terzo periodo di 1500 barre ma questa volta in avanti ed in paper e se anche questa volta il ts supera il test allora potresti pensare di metterlo in real con una buona probabilità di ottenere gli stessi risultati e la sicurezza quantomeno di non averlo overfittato. Se fallisci una delle prime 2 fasi devi tornare indietro al primo punto e cercare altri parametri più stabili o addirittura modificare l\'impianto di base


                    PS: fondamentale è la scelta del periodo IN SAMPLE di apprendimento del TS, esso deve replicare il piu possibile al suo interno i diversi andamenti del mercato e cioè lateralità, fase rialzista, fase ribassista, alta volatilità, bassa volatilità etc..

                    Spero di essermi spiegato

                    Apo
                    Last edited by Apocalips; 20-09-16, 00:04.
                    ....non si desidera ciò che è facile ottenere (Ovidio)....

                    Comment

                    • fab62
                      Senior Member

                      • Jul 2012
                      • 674

                      #11
                      Originariamente Scritto da Apocalips
                      Ciao Fram, il miglior modo per testare una idea di trading che ha superato il backtest è il front test.
                      Il backtest è un arma a doppio taglio e si rischia quasi sempre di cadere nella trappola dell\' overfitting.

                      Ci sono diversi modi di procedere per non incorrere in questo errore , alcuni dei quali anche piuttosto complessi e difficili da eseguire in manuale.

                      a me invece piace fare in questo modo molto semplice ma molto efficace e cioè:

                      Per allontanare il piu possibile la trappola della sovraottimizzazione dovresti far girare il tuo TS su segmenti IN SAMPLE e OUT SAMPLE dopodichè se le performance non degradano sensibilmente puoi anche decidere di andare a mercato reale. In buona sostanza, supponiamo che tu voglia testare ed ottimizzare il tuo TS sulle ultime 1500 barre, ebbene, questo è il periodo che chiamiamo IN SAMPLE in cui si va alla ricerca dei migliori parametri. Terminata questa fase di ricerca ti vai a selezionare a ritroso un altro segmento OUT SAMPLE di 1500 barre che il Ts non ha mai visto, quello che precede le prime 1500 dell\' in sample e su di esso senza toccare niente fai girare il tuo TS e verifica i risultati. Se la equity che ottieni è abbastanza paragonabile a quella del periodo IN SAMPLE allora sei sulla buona strada e sei pronto per testarlo su un terzo periodo di 1500 barre ma questa volta in avanti ed in paper e se anche questa volta il ts supera il test allora potresti pensare di metterlo in real con una buona probabilità di ottenere gli stessi risultati e la sicurezza quantomeno di non averlo overfittato. Se fallisci una delle prime 2 fasi devi tornare indietro al primo punto e cercare altri parametri più stabili o addirittura modificare l\'impianto di base


                      PS: fondamentale è la scelta del periodo IN SAMPLE di apprendimento del TS, esso deve replicare il piu possibile al suo interno i diversi andamenti del mercato e cioè lateralità, fase rialzista, fase ribassista, alta volatilità, bassa volatilità etc..

                      Spero di essermi spiegato

                      Apo
                      E soprattutto inserirci anche i costi del broker. In un TS da 1min. è probabile che le operazioni fatte siano parecchie e quindi le commissioni incidono poi sulla equity.

                      Saluti Fab
                      Last edited by fab62; 20-09-16, 11:05.

                      Comment

                      • MazzDX
                        Senior Member

                        • Oct 2010
                        • 319

                        #12
                        Originariamente Scritto da fab62
                        E soprattutto inerirci anche i costi del broker. In un TS da 1min. è probabile che le operazioni fatte siano parecchie e quindi le commissioni incidono poi sulla equity.

                        Saluti Fab
                        Giustissima osservazione

                        Comment

                        • framzero
                          Member
                          • May 2010
                          • 47

                          #13
                          Originariamente Scritto da Apocalips
                          Ciao Fram, il miglior modo per testare una idea di trading che ha superato il backtest è il front test.
                          Il backtest è un arma a doppio taglio e si rischia quasi sempre di cadere nella trappola dell\' overfitting.

                          Ci sono diversi modi di procedere per non incorrere in questo errore , alcuni dei quali anche piuttosto complessi e difficili da eseguire in manuale.

                          a me invece piace fare in questo modo molto semplice ma molto efficace e cioè:

                          Per allontanare il piu possibile la trappola della sovraottimizzazione dovresti far girare il tuo TS su segmenti IN SAMPLE e OUT SAMPLE dopodichè se le performance non degradano sensibilmente puoi anche decidere di andare a mercato reale. In buona sostanza, supponiamo che tu voglia testare ed ottimizzare il tuo TS sulle ultime 1500 barre, ebbene, questo è il periodo che chiamiamo IN SAMPLE in cui si va alla ricerca dei migliori parametri. Terminata questa fase di ricerca ti vai a selezionare a ritroso un altro segmento OUT SAMPLE di 1500 barre che il Ts non ha mai visto, quello che precede le prime 1500 dell\' in sample e su di esso senza toccare niente fai girare il tuo TS e verifica i risultati. Se la equity che ottieni è abbastanza paragonabile a quella del periodo IN SAMPLE allora sei sulla buona strada e sei pronto per testarlo su un terzo periodo di 1500 barre ma questa volta in avanti ed in paper e se anche questa volta il ts supera il test allora potresti pensare di metterlo in real con una buona probabilità di ottenere gli stessi risultati e la sicurezza quantomeno di non averlo overfittato. Se fallisci una delle prime 2 fasi devi tornare indietro al primo punto e cercare altri parametri più stabili o addirittura modificare l\'impianto di base


                          PS: fondamentale è la scelta del periodo IN SAMPLE di apprendimento del TS, esso deve replicare il piu possibile al suo interno i diversi andamenti del mercato e cioè lateralità, fase rialzista, fase ribassista, alta volatilità, bassa volatilità etc..

                          Spero di essermi spiegato

                          Apo
                          Ti sei spiegato benissimo. Il backtest è estremamente delicato e complesso. Mi sfugge il procedimento con cui posso backtestarlo su un periodo passato...

                          Originariamente Scritto da fab62
                          E soprattutto inserirci anche i costi del broker. In un TS da 1min. è probabile che le operazioni fatte siano parecchie e quindi le commissioni incidono poi sulla equity.

                          Saluti Fab
                          Messi. In realtà in questo TS sono previsti pochi trade; a seconda dell\'indice diciamo dai 10 ai 20 su 3000 barre.


                          Questo il codice, riferito al minidax tf 1 min


                          BUY SCRIPT


                          # REQUIRED_BARS is used to adjust how many periods will be used to initialize calculations. Default value is 50 periods.
                          # Un-comment and edit the line below to set your own value.
                          # SET REQUIRED_BARS = 50

                          INPUTS: @TRIXperiods(10), @VECTOR(CLOSE), @takeprofit(210), @stopLoss(240), @STperiods(4),@STstrenght(11),

                          SET TAKE_PROFIT = @takeprofit
                          SET STOP_LOSS = @stopLoss
                          SET A = SuperTrend(@STperiods, @STstrenght)
                          SET T = TRIX(@VECTOR, @TRIXperiods)
                          SET T1 = REF (T,1)
                          SET T2 = REF (T,2)


                          T< 0 AND T> T1 AND T1< T2 AND CLOSE > A


                          PRINT(T)
                          PRINT(T1)
                          PRINT(T2)



                          SELL SCRIPT

                          SET T = TRIX(@VECTOR, @TRIXperiods)
                          SET T1 = REF (T,1)
                          SET T2 = REF (T,2)
                          SET A = SuperTrend(@STperiods, @STstrenght)

                          T> 0 AND T< T1 AND T1> T2 AND CLOSE < A




                          Verificatelo con qualche front test fatto a modo e magari ditemi come va, cosa non va. Vorrei usare questo spazio per capire che tipo di pensieri e miglioramenti si possono fare, e COME soprattutto. A me da ottimi risultati. Ripeto, trovo la combinazione TRIX/SuperTrend super performante quindi questo mi gasa molto... Spero di averlo testato in maniera corretta. Per vari problemi ancora non sono riuscito a far partire il paper, ma appena riesco a partire posto i risultati.
                          (slippage 1, commissioni inserite, 3000barre, senza trailing stop e percent. Teoricamente è abbastanza "peggiorativo"..)
                          File Allegati

                          Comment

                          • framzero
                            Member
                            • May 2010
                            • 47

                            #14
                            e questi sono i risultati sullo stoxx a 5 min

                            Variando leggermente i periodi e i valori di stop loss e take profit si possono raggiungere risultati decenti anche sullo stoxx a 5 minuti. E\' sicuramente migliorabile,ma almeno è un punto di partenza.
                            (i settaggi di slippage e commissioni sono come nella prova col minidax)
                            File Allegati

                            Comment

                            Working...