Announcement

Collapse
No announcement yet.

VALUTAZIONE di Trading System in EXCEL: AverageTrade, Prof Factor, Ulcer index, StDev

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

    VALUTAZIONE di Trading System in EXCEL: AverageTrade, Prof Factor, Ulcer index, StDev

    ciao,

    di seguito una sintesi di alcuni parametri classici di valutazione delle prestazioni di un trading system, su un arco temporale, sia essa una performance reale o un backtest.

    :115.WAsmile: In allegato il file Excel contenente tutte le formule che ho elaborato :109.WAsmile:



    Il Net Profit è il profitto netto ottenuto da un sistema di trading nel periodo di tempo in cui ha operato.


    Il Drawdown è il denaro perso nell’attività di trading, si misura in valore assoluto o percentuale come perdita ottenuta sul massimo capitale raggiunto: è la diminuzione del valore di un conto, come differenza tra un picco di massimo e il successivo minimo in una equity line (=grafico dei guadagni); il Maximum Drawdown di una strategia di trading, nella finestra temporale in cui ha lavorato, è la massima diminuzione di capitale da un picco del capitale; è l’ammontare massimo di denaro che si restituisce al mercato nel corso del periodo di attività della strategia di trading.


    Il Profit factor (=Gross Profit/Gross Loss) è il rapporto tra l’ammontare di tutti i profitti conseguiti nelle operazioni positive e l’ammontare delle perdite delle operazioni negative. Questo numero dice approssimativamente quanti € o $ il trading system guadagna per ogni € o $ perso. Il valore unitario individua un trading system con profitti uguali alle perdite; un sistema profittevole da poter usare in reale dovrebbe avere un profit factor maggiore di 1,5.


    Il Net Profit / MaxDD misura il rendimento/rischio del trading system come rapporto Net Profit / Max drawdown, quindi è il rapporto tra il profitto netto totale del sistema di trading nel periodo considerato, e la massima perdita di soldi verificatasi; quindi misura quanto riesce a guadagnare il trading system a fronte del rischio di perdere un MaxDrawdown.
    Ad esempio un Net Profit / MaxDD di 4 indica che per ogni 4 € di profitto, il rischio, calcolato con il valore assoluto del MaxDD, è di perdere 1 € in media.


    L'Average trade è il rendimento medio per operazione, il valor medio del guadagno o perdita di tutti i trade, cioè la sommatoria di tutte le vincite e perdite diviso il numero totale di trade. l'average trade è detto anche speranza matematica o expected payoff, in un trading system rappresenta l’atteso guadagno/perdita del trade successivo; è importante che l’average trade sia il più alto possibile per non essere eroso da commissioni e slippage. Un sistema che riuscisse ad ottenere una performance elevata ma con un numero elevatissimo di operazioni, tutte con basso profitto medio per operazione, rischierebbe di essere difficilmente applicabile in tempo reale; infatti basterebbero piccoli scostamenti di prezzo negli eseguiti per alterare notevolmente il risultato finale complessivo.


    La Deviazione Standard
    σ o standard deviation o scostamento quadratico medio, misura la dispersione dei dati intorno al valore atteso, cioè la differenza esistente in media tra i valori osservati e la loro media aritmetica.
    Maggiore è la deviazione standard e maggiore è la variabilità della performance del sistema di trading; in altre parole se la volatilità dei rendimenti dei trade è elevata, l’EA sta realizzando utili a fronte di una elevata variabilità di rendimento, rendendo quindi la sua performance rischiosa.

    Data la lista dei trade di un backtest, e calcolati l'Average trade (= valor medio del profit/loss dei trade) e la Deviazione Standard, risulta statisticamente che il 68,26% dei trade ha un profit/loss che cade nell'intervallo [average trade ± σ].
    Ad esempio, nel caso del backtest elaborato nell'Excel allegato, si ha
    * Average trade =
    37,47 €
    * Deviazione Standard σ = 184,75 €
    --> risulta che il 68,3% di tutti i trade del backtest hanno un profit/loss tra 37,47 ± 184,75 cioè tra -147,28 € e +222,22


    Importante: la deviazione standard ha la stessa unità di misura dei valori osservati; la varianza è il quadrato della deviazione standard ed ha come unità di misura il quadrato dell'unità di misura dei valori di riferimento.
    Per questo quando si fa il rapporto tra il profitto di un EA (euro o dollari) e la deviazione standard dei rendimenti (euro o dollari), il risultato è un valore di per sé già normalizzato
    e permette di fare il raffronto tra le performance di diversi EA nello stesso periodo di riferimento, indipendentemente dal profitto totale raggiunto e dall'esposizione dei trade di diversi EA.


    Lo Sharpe Ratio è simile al rapporto Profit/MaxDD, ma misura il rendimento/rischio del trading system come rapporto Net Profit / deviazione standard (mentre nel rapporto Profit/MaxDD il rischio è il MaxDD).
    Poiché nella formula dello Sharpe ratio la deviazione standard è al denominatore, con riferimento ad un trading system su un certo periodo di backtest/ottimizzazione

    - più alto è lo Sharpe ratio, tanto più il rendimento dell’investimento è stato ottenuto con minore rischiosità, cioè con una bassa deviazione standard dei rendimenti,
    - più basso è lo Sharpe ratio, maggiore è la volatilità di rendimento e più rischiosa e altalenante è la sua performance.

    Ad esempio uno Sharpe Ratio di 4 indica che per ogni 4 € di profitto, il rischio, calcolato con la deviazione standard, è di perdere 1 € in media.

    Come elemento critico della formula, va considerata l‘eventualità di trade con profitti molto più elevati rispetto alla media, che sebbene aumentino il profitto totale, aumentano altresì la deviazione standard dei rendimenti contribuendo irragionevolmente a ridurre il valore dello Sharpe ratio; ma se consideriamo che questi pochi trade eccessivamente vincenti alterano la significatività del profitto finale di un trading system perché statisticamente poco probabili che avvengano nuovamente in futuro, la conseguente diminuzione dello Sharpe ratio ha una sua valenza.


    Come consigliato dall’analisi della performance dei vincitori dei diversi campionati di trading system realizzati dalla metaquotes, http://championship.mql5.com/2011/en/news/78
    l'indice di Sharpe è un indicatore importante di rendimento/rischio perché tutti i trading system leader dei vari campionati hanno mostrato un valore positivo dell’indice di Sharpe, rendendo consigliabile scegliere nell’ottimizzazione i setting con i più alti valori dello Sharpe ratio.

    The numerical values of the Sharp ratio of 20 most successful participants of the ATC 2006, 2007, 2008 and 2010.





    L’Ulcer Index o indice dell’ulcera, sviluppato da Peter Martin nel 1987, fu cosi denominato in relazione all’ansia indotta negli investitori dalle perdite di portafoglio e si fonda sul presupposto che la rischiosità di un’attività finanziaria è determinata sia dalla profondità delle sue perdite dai massimi relativi precedentemente raggiunti (=drawdown) sia dal tempo necessario per recuperare tali perdite. In altri termini, la rischiosità di un portafoglio o di uno strumento finanziario è una misura a due dimensioni (profondità delle perdite e tempo necessario per recuperarle), in quanto nessuna delle due dimensioni singolarmente considerata ci offre un quadro completo del rischio.

    Come ben spiegato qui: http://www.soldionline.it/archivio/j...ce-dell-ulcera

    nella figura seguente i fondi A, B e C presentano la medesima redditività annualizzata e la medesima volatilità, conseguentemente presentano lo stesso Sharpe Ratio, ma nessuno potrebbe sostenere che presentano anche lo stesso rischio.


    L'indice dell'ulcera è espresso dalla superficie (nera) che indica il tempo in cui un fondo permane sotto i massimi relativi precedentemente raggiunti diviso, ovviamente, l'intera lunghezza della serie storica considerata.




    Il Martin Ratio discende dall'Ulcer Index ed è costruito come lo Sharpe Ratio, ma al denominatore al posto della deviazione standard ha l'Ulcer Ratio.



    °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

    Nell'Excel che ho allegato, c'è un esempio di valutazione di un sistema di trading applicato al future del DAX.

    Dopo aver riportato in colonna i risultati dei 391 trade di 1 anno di trading da giugno 2014 a giugno 2015
    ho elaborato le formule per visualizzare il grafico ed i parametri di sintesi della performance del sistema di trading.

    B4OEyf.png


    7TWbaG.png







    Da queste premesse, guardando anche il file excel allegato, ecco una tabella riassuntiva, che mi permette di fare la seguente sintesi sulla performance del trading system. eAF2Sx.png






    PRO
    Il rapporto Profitto / MaxDD è molto buono 11,06 cioè il sistema riesce a guadagnare 11 volte rispetto al massimo rischio di perder soldi sul mercato.
    Il Profit Factor ad 1,5 è valore statisticamente sufficiente per tradare il sistema con profitto.
    Lo Sharpe Ratio è di quasi 80 un ottimo valore statistico, cioè il sistema riesce a guadagnare 80 volte di più rispetto al massimo rischio di perdita, calcolato sulla base della deviazione standard di rendimento.


    CONTRO
    l'Average Trade, cioè il valor medio di guadagno di un trade, è molto basso 1,5 punti (= 37,5 €) : c'è il rischio che lo slippage possa in reale rendere il sistema poco profittevole.

    Nota: I trade SELL performano meglio dei trade BUY



    Attached Files
    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
    Grande!! grazie e complimenti.

    Comment


      #3
      Scusa umbertosm, ma come importi i dati nell file Excel?

      Comment


        #4
        L'Excel creato non è un software "chiavi in mano" su cui si possono importare i trade di uno statement di Metatrader, ma bisogna ricopiare nel file excel il profit/loss di ciascun trade e comunque saper ritoccare le somme di ciascun capo colonna.
        Ma basta conoscere un minimo excel e le sue funzioni statistiche per lavorarci e trarre rapidamente i risultati voluti su un proprio statement di backtest.
        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
          Originally posted by mico View Post
          Scusa umbertosm, ma come importi i dati nell file Excel?
          mico, mandami uno statement di almeno 200 trade di metatrader e ti tiro fuori l'excel che ne sintetizza i valori

          cercami su skype: 'umbertosm' e me lo mandi lì

          poi lo pubblico in questo thread, con il grafico e l'analisi della prestazione e l'excel
          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


            #6
            Introduco ora un nuovo parametro di sintesi, il System Quality Number, SQN, ideato da Van Tharp, che lui considera una misura della qualità di un trading system.

            testo: Van Tharp’s Definitive Guide to Position SizingSM (2008)
            sito: http://www.vantharp.com/tharp-concepts/sqn.asp


            SQN = (Average trade / Standard Deviation) * RadQ(Numero Trades)

            Secondo Van Tharp ad un SQN ottenuto da un sistema di trading che realizzi 100 trade, è possibile attribuire un giudizio sulla qualità delle prestazioni.


            Tabella pagina 50 del libro Van Tharp’s Definitive Guide to Position SizingSM (2008)
            dwf6Q1.png


            Poiché Van Tharp propone questa tabella di giudizi in funzione degli SQN di un trading system con 100 trade,

            per confrontare diversi trading system tra di loro, bisogna normalizzare il valore di SQN a 100 trades

            SQN di un sistema di trading che ha realizzato 100 trade = SQN * (100 / Numero Trades)



            Per vedere come sono fatte le equity line di un backtest che realizzi valori diversi di SQN,

            ho usato lo stesso Excel del primo post di questo thread,

            ed ho aggiunto un parametro numerico a ciascun profit/loss di ogni trade, affinché aumentando o diminuendo questo parametro (ad esempio da -15 a +100) potessi aumentare proporzionalmente ciascun trade del backtest in positivo o in negativo, cambiando quindi la performance del trading system e verificando come cambia il valore di SQN e la forma della equity line.

            Ed ecco i risultati nelle figure seguenti.


            Questa è la equity line del sistema originale dove il parametro che altera ogni profit/loss dei trade è = 0.

            La SQN = 1,03 e la equity line è quella in figura... Van Tharpe considera un trading system che dia una prestazione come questo, un sistema poco vincente.

            zIF8dI.png






            Se andiamo a peggiorare la performance dei trade si ha un caso pessimo, il seguente, con SQN = 0.3 . Da notare come aumenta il Drawdown
            acHSyX.png




            Migliorando un po' si ha SQN = 0.53
            acHSyX.png





            Ma soltanto con SQN = 2.02 il sistema viene valutato da Van Tharp come un "Good System"
            acHSyX.png




            Ottenendo SQN crescenti, la equity è sempre più lineare e potenzialmente vincente
            acHSyX.png




            acHSyX.png



            fino a raggiungere l'Holy Grail System
            acHSyX.png





            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
              ciao sam un sqn 3,02 puo essere considerato un buon dato? grazie per una risposta

              Comment


                #8
                Originally posted by astribale View Post
                ciao sam
                Chi è sam?
                SQN normalizzato a 100 = 3
                e se l'hai calcolato bene
                lo vedi da te nei grafici sopra se è un buon dato.
                Io e Van Tharpe diremmo di si.
                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


                  #9
                  si ti chiami umberto ma sm io ti riconosco come sam, senti grazie per il parere, ho solo messo dentro i miei dati non so altro ho visto solo il 3.02 a destra del tuo file

                  Comment


                    #10
                    come ho scritto sopra "se l'hai calcolato bene" allora SQN100 = 3 significa un ottimo valore.

                    Tenendo conto che
                    - il file excel è calcolato su risultati scritti a mano per 391 trade di un sistema sul DAX
                    - se hai inserito a mano i risultati di tuo backtest, inserendo opportunamente i dati numerici di profit/loss dei tuoi trade
                    - se hai cancellato tutti i trade extra preesistenti nell'Excel, dopo aver inserito i tuoi dati
                    - se hai modificato opportunamente le somme dei capocolonna di ciascuna colonna per adattarli alla numerosità dei trade del tuo backtest
                    - se hai ottenuto una forma della equity line che assomiglia moltissimo a quella del post che ho fatto io dove SQN100 = 3,19

                    Ecco se tutti i "SE" sono rispettati, bene, allora lo sai già da te che il tuo sistema performa bene,
                    perché già sulla tua piattaforma di trading dove hai condotto il backtest, dovresti aver notato che la equity sale sempre con pochissimo drawdown
                    e l'excel non ha fatto altro che riprodurre la equity line e calcolare i parametri di sintesi del tuo backtest. :sorrriso:

                    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


                      #11
                      mico mi ha inviato un suo backtest, questa è la equity line ottenuta con Metatrader



                      acHSyX.png



                      e qui di seguito il suo statement elaborato con Excel, che allego

                      acHSyX.png


                      Direi che
                      - ha un drawdown molto basso,
                      - average trade sufficientemente grande di 13 € (o dollari) a fronte di un'esposizione fissa in lotti pari a 0.1 il che gli consente di reggere eventuali slippage che gli vanno contro
                      - deviazione standard abbastanza bassa (è quel valore per cui i due terzi dei trade fatti cascano nell'intervallo [average trade ± deviazione standard]) quindi profitto di circa 10000 euro ottenuto con una bassa rischiosità
                      - profit factor ben oltre 1.5
                      - Ulcer Index bassissimo, quindi il tempo necessario per recuperare le perdite di drawdown è molto breve



                      acHSyX.png



                      --------------------------
                      performance strategia di mico.xlsx1.1 MB
                      https://mega.nz/#!9pgynJiL!5A1nlCldZ...ag060c0l1UA6oA
                      --------------------------

                      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
                        Ciao Umberto e grazie per la tua analisi del mio expert.
                        Sicuramente conoscerai il software EA Analyzer, ci sono alcune cose che non mi sono chiare di questo software.
                        Analizzando lo stesso report abbiamo un sqn pari a 8,95 ed un sqn score pari a 2.1 .
                        Questi parametri allora sono calcolati con una formula diversa da quella usata da te?
                        Altra cosa , un sistema del genere lo metteresti in real secondo i tuoi parametri?
                        Purtroppo con la versione free del software non si può fare l'analisi montecarlo per avere una visione del sistema più completa.
                        Grazie.

                        Comment


                          #13
                          Scusami ho dimenticato di allegare l' immagine dei risultati di EA Analyzer.
                          Eccola.
                          Cattura.PNG

                          Comment


                            #14
                            Originally posted by mico View Post
                            Sicuramente conoscerai il software EA Analyzer, ci sono alcune cose che non mi sono chiare di questo software.
                            Analizzando lo stesso report abbiamo un sqn pari a 8,95 ed un sqn score pari a 2.1 .
                            Questi parametri allora sono calcolati con una formula diversa da quella usata da te?
                            Altra cosa , un sistema del genere lo metteresti in real secondo i tuoi parametri?
                            mico, hai scaricato l'excel che ho allegato con il link ?

                            SQN del mio excel coincide con quello calcolato da Quant Analizer, SQN = 8,95


                            acHSyX.png


                            Se hai letto la spiegazione che ho dato al lungo post su SQN

                            SQN100 è la normalizzazione a 100 trade che ho introdotto io,
                            in quanto Van Tharpe ha scritto una tabella, su riportata, nella quale dà una valutazione sulla qualità di un trading system, in base al punteggio ottenuto dall'SQN,
                            MA SOLTANTO SE il trading system fa 100 trade, come lui scrive chiaramente nel suo libro e sulla tabella stessa.

                            Questo vincolo, che io definisco "del cavolo", di 100 trade è una imposizione di Van Tharpe, che io ritengo un errore di metodo dell'autore!

                            Al fine di poter CONFRONTARE trading system diversi, che avranno inevitabilmente numero di trade diversi, è necessario normalizzare a 100 trade i trading system da confrontare.

                            Ti ricordo che la formula del calcolo di SQN = ( Average trade / Deviazione Standard ) * Radice Quadrata(Numero trades)

                            ad esempio se hai
                            - un trading system di 100 trade che ti dà un SQN = 3
                            - un altro trading system di 1000 trade con SQN = 3

                            NON puoi paragonarli, perché il fattore RadiceQuadrata(Numero trades) aumenta il valore di SQN soltanto perché viene fatto un trade,
                            quindi il valore di SQN non aumenta o diminuisce perché la strategia sta diventando migliore, ma soltanto perché c'è un nuovo trade.


                            Quindi se vuoi calcolare SQN come lo fa Van Tharpe, poi NON puoi confrontare questo valore con altri trading system.


                            L'SQN Score segue un'altra logica, l'ha formulato Marc Fric, l'ideatore del software Quant Analizer e StrategyQuant, ed è semplicemente
                            SQN Score = SQN * (averageTradesPerYear / 100)

                            SQN e SQN score sono misure legate
                            - in maniera direttamente proporzionale all'average trade (valor medio di profit dei trade)
                            - inversamente proporzionale alla deviazione standard (scostamento dei profit/loss dei trade dal valor medio dei trade)
                            - e direttamente proporzionale al numero di trade fatti.


                            Quindi anche se differenti nella costruzione entrambi gli SQN e SQN Score misurano la stessa grandezza.

                            Se aumenta l'average trade, aumenta il profitto totale del backtest, e aumenta l'SQN e SQN score.
                            Se si riduce la deviazione standard si riduce la variabilità della equity line che diventa meno altalenante e più piatta, e aumenta l'SQN e SQN score.

                            A me non piacciono né l'uno né l'altro perché non permettono di confrontare due trading system che hanno diverso numero di trade: non permettono un confronto oggettivo tra due trading system, chi fa più trade tende ad avere SQN più alto senza che questo si traduca in una migliore equity line.


                            Il confronto tra due trading system con differenti SQN è molto relativo e spannometrico, potresti avere ad esempio:
                            - una strategy con 1000 trade e SQN = 5
                            - ed una strategy con 300 trade e SQN = 4
                            Bene, in questo caso
                            - la strategy con SQN = 4 e 300 trade avrà equity line più bella, lineare e meno altalenante
                            - della strategy con SQN = 5 e 1000 trade.
                            Per verificarlo basta osservare che SQN / Radice Quadrata(Numero trades) = Average trade / Deviazione Standard
                            perciò
                            - SQN300 / radQ(300) = 4/radQ(300) = 0.231
                            - SQN1000 / radQ(1000) = 5/radQ(1000) = 0.158
                            e quindi il rapporto Average trade / Deviazione Standard del trading system con 300 trade (=0.231) è maggiore di quello del trading system con 1000 trade (=0.158),
                            perciò la equity line con SQN = 4 è più bella, lineare e meno altalenante della equity line con SQN = 5



                            .
                            Riguardo al mettere online il tuo trading system, io dico di si, ha tutte le carte in regola per andare live, prima un po' in demo e poi in reale
                            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
                              Originally posted by umbertosm View Post
                              Questo vincolo, che io definisco "del cavolo", di 100 trade è una imposizione di Van Tharpe, che io ritengo un errore di metodo dell'autore!

                              Al fine di poter CONFRONTARE trading system diversi, che avranno inevitabilmente numero di trade diversi, è necessario normalizzare a 100 trade i trading system da confrontare.
                              Stavo riflettendo su questa cosa, cercando di pensare a un modo per dare il giusto valore al numero di trade eseguiti. Invece della radice quadrata del numero di trades si potrebbe usare Log(N° trades). All'aumentare del numero di trades nel rapporto tra le due strategie c'è meno divario (la funzione Log[x] cresce molto più lentamente di Rad[x] ) legato al numero dei trades. Però non risolve comunque il problema secondo me. Sarebbe interessante cercare di trovare una soluzione più logica a questo problema.

                              Comment

                              Working...
                              X