Announcement

Collapse
No announcement yet.

Correlogramma e Autocorrelazione

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

    Correlogramma e Autocorrelazione

    Una serie storica (o temporale), come possono essere i dati storici di uno strumento finanziario, è un insieme di variabili casuali ordinate rispetto al tempo, ed esprime la dinamica di un certo fenomeno nel tempo.

    Il Correlogramma è uno strumento grafico per la valutazione della tendenza di una serie storica ad evolversi in modo più o meno regolare.

    Il correlogramma si costruisce a partire dall’autocorrelazione ρk di una serie storica in funzione del ritardo (lag) k con cui l'autocorrelazione è calcolata: nel grafico ogni barretta verticale riporta il valore dell’autocorrelazione (sull’asse delle ordinate) in funzione del ritardo (sull’asse delle ascisse).

    Considerando le coppie di valori (k,ρk), i correlogrammi possono presentare gli andamenti più disparati, ma vengono normalmente confrontati con quelli illustrati nei grafici seguenti con le tre situazioni tipiche di andamento di ρk al variare di k.

    correl1.JPG
    Da: Tommaso Di Fonzo e Francesco Lisi, Serie storiche economiche, Roma, Carocci, 2005



    Correlogramma in cui prevale la componente tendenziale, o trend: il valore di ρk è sempre positivo e decresce lentamente all’aumentare di k; i valori della serie storica sono fortemente correlati a quelli della serie ritardata di un periodo, poi un po’ meno per quella ritardata di due periodi e così via, ovvero che il presente è influenzato dal passato recente, questo dal passato più remoto. In generale la serie presenta una tendenza di fondo, ad esempio, tende a crescere linearmente o esponenzialmente nel tempo.

    Correlogramma in cui prevale la componente stagionale: il valore di ρk varia, ma è positivo e massimo in corrispondenza di valori di k tali da configurare una periodicità annuale, ad esempio per k = 4 o suoi multipli nel caso di dati trimestrali, mentre è minore o negativo per altri valori di k; ciò vuol dire che i valori di un dato istante o periodo dell’anno sono fortemente correlati con quelli degli stessi istanti o periodi degli anni precedenti, quindi che il fenomeno varia nel corso di ciascun anno e in modo simile da un anno all’altro.

    Correlogramma in cui prevale la componente stocastica o casuale: il valore di ρk varia, ma oscilla sempre entro una banda ristretta; ciò vuol dire che la serie non è significativamente correlata con le serie ritardate, ovvero che il passato non "spiega" il presente e che le variazioni da un istante o periodo ad un altro sono sostanzialmente casuali.

    Il correlogramma è quindi utile per individuare subito un’eventuale componente dominante prima di procedere alla vera e propria analisi della serie, ma anche per verificare i risultati di questa.



    Se applichiamo la Covarianza ad una serie temporale con la variabile casuale x(t) riferita a due istanti diversi xt e xt+k , otteniamo l’Autocovarianza che indica il modo in cui la variabile co-varia nel tempo.
    L’Autocovarianza fornisce una misura di quanto un segnale si assomigli, si correli, ha proprietà comuni con se stesso con un lag k≥0: il segnale all'istante t viene confrontato con un altro valore di se stesso ritardato di un tempo k (senza tale ritardo il segnale è logicamente sempre uguale) per verificare quanto si somigli, più precisamente quanto si correli, all'avanzare del tempo di ritardo k.

    Se un segnale varia lentamente nel tempo, il valore degli istanti xt e xt+k sarà pressoché simile e l'autocorrelazione avrà segno positivo, mentre se varia rapidamente, il valore di tali istanti sarà molto diverso e l'autocorrelazione assume un valore prossimo allo zero.

    L’autocovarianza ha il difetto di non essere compresa fra limiti fissi per cui è difficile giudicare il significato di un dato valore. Per questo motivo è stata introdotta l’Autocorrelazione, che si ricava immediatamente dall’autocovarianza e che presenta il vantaggio di essere sempre compresa fra i limiti fissi -1 e +1.

    L'autocorrelazione (autocorrelation function, ACF) si ottiene dividendo l’autocovarianza al lag k per il prodotto delle deviazioni standard (o prodotto degli scarti quadratici medi) di xt e xt+k :

    correl2.GIF



    Coefficiente di Autocorrelazione EMPIRICO

    Come dettagliato nei programmi statistici









    per serie di dati con n molto più grande di k la formula del coefficiente di approssimazione viene approssimata, in quanto la differenza dai valori della formula completa sono considerati trascurabili.

    Al denominatore della formula del coefficiente di Autocorrelazione, il prodotto delle deviazioni standard di xt e xt+k si approssima alla Varianza di x(t)

    correl3.JPG


    Al numeratore nel calcolo della Autocovarianza al lag k, si approssima il valor medio di ciascuna serie, con il valor medio della serie originaria

    correl4.JPG

    Si ottiene quindi la formula del coefficiente di autocorrelazione empirico:

    correl5.JPG


    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
    Partendo da questa base teorica, ho costruito un file Excel che allego

    autocorrelazione_n_1000.xlsx

    che riporta

    - una serie di dati EURUSD H1

    - il correlogramma calcolato con la formula statistica corretta dell'autocorrelazione

    - il correlogramma calcolato con l'autocorrelazione empirica



    correl6.JPG







    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
      Ciao Umberto,

      avresti voglia e piacere di spiegare esattamente come si legge il grafico e come "andrebbe" interpretato ( in questo caso sul grafico EUR USD H1 )?

      Giusto in questi giorni stavo approfondendo varie letture sulla Random Walk e sul Processo markoviano, dove si evince appunto che " le probabilità di passare da uno stato all’altro in un tempo unitario dipende probabilisticamente soltanto dallo stato immediatamente precedente e non dalla complessiva storia del sistema ".

      Ovviamente è un problema esistenziale che mi pongo già da diverso tempo, perché si fa trading se siamo arrivati a queste conclusioni ?

      Stiamo cercando, "forzando", di trovare un ordine dove in realtà un ordine non c'è!!

      Cercare di trovare una logica ai movimenti futuri del mercato ha lo stesso senso di dare una logica al percorso che fa una pecora che bruca al pascolo. Sono movimenti del tutto casuali, dipendenti solamente dal movimento t-1 .

      Il famoso economista Malkiel sostiene che una scimmia bendata potrebbe selezionare a caso un portafoglio di azioni, che garantirebbe prestazioni altrettanto buone rispetto a quelle di un portafoglio accuratamente selezionato da professionisti.

      Ricordo che qui non stiamo parlando di teorie basate sul nulla, ma stiamo parlando di teorie ampiamente dimostrate.

      Nonostante ciò continuo a cercare vari sistemi di trading profittevoli, forse con la speranza che tali teorie possano essere contraddette.
      Poi però vedo grandi Hedge Fund a livello mondiale che in alcuni anni sono addirittura in perdita.

      Hanno capitalizzazioni di miliardi di dollari, staff composto dai migliori analisti usciti da chissà quali università americane con i voti massimi.
      Come possiamo noi pensare di essere superiori, sia mentalmente che strumentalmente a loro?

      Ogni tanto mi capita di fare queste riflessioni e fermarmi un attimo a pensare...
      Sono curioso della tuo opinione in tutto ciò .

      Ti ringrazio



      Comment


        #4
        Ho iniziato da poco a studiare l'Autocorrelazione.

        Ho verificato che

        - la funzione di autocorrelazione è invariante rispetto a traslazioni nel tempo: se inverto i dati storici oggetto di correlogramma, considerando come ordine i dati più recenti in alto ed i dati più vecchi in basso, il grafico del correlogramma non cambia, ha lievi variazioni trascurabili.

        - il Correlogramma parte da 1 e poi scende a zero: la candela del lag k per cui il grafico incontra per la prima volta lo zero, che possiamo chiamare candela k_zero, dipende dalla numerosità del campione n di candele oggetto dello studio.

        Infatti, per EURUSD H1 ho verificato che:

        usando n = 1000 barre H1 = 2 mesi di dati storici --> k_zero = 150 candele H1 = 6 giorni

        usando n = 37.655 barre H1 = 6 anni di dati storici --> k_zero = 4860 candele H1 = 40 settimane = 9 mesi e mezzo

        Il Correlogramma sta dicendo che se analizzo una serie storica, le candele più correlate alle candele recenti sono
        - le candele degli ultimi 6 giorni, se considero come dati storici soltanto 2 mesi e mezzo
        - le candele degli ultimi 9 mesi e mezzo, se considero come dati storici 6 anni di dati passati

        Teoricamente quindi verrebbe da pensare di scegliere un range di dati storici pari al numero di barre per cui il correlogramma è positivo e per sicurezza quelli per cui la autocorrelazione è significativamente positiva, quindi la metà di k_zero, in quanto le dinamiche di mercato delle ultime k_zero barre storiche sono simili tra di loro e quindi un trading system performante su questi dati ha teoricamente maggiore probabilità di performare con le stesse regole sui dati futuri che sono nel breve correlati con i dati storici oggetto di ottimizzazione.

        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
          Ho riflettuto sulla curva del correlogramma all'aumentare del numero di dati storici usati per fare l'autocorrelazione.

          Si osserva che, spannometricamente,
          - con 5 anni di dati storici ho 6 mesi correlati, poi il correlogramma raggiunge lo zero,
          - con 10 anni di dati storici ho 1 anno di dati storici correlati
          - con 20 anni di dati storici ho 2 anni correlati
          e così via...

          Ma questo aumento da cosa dipende ?

          Vediamo come si costruisce l'autocorrelazione...
          L'autocorrelazione dei dati storici al lag k misura la correlazione di se stessa ritardata di k barre.

          Se ad esempio prendiamo 10 anni di dati storici H1 con k = 1 io correlo
          - la serie di dati (1) che va dalla prima barra alla penultima barra (la barra relativa a 10 anni di dati storici meno 1 barra)
          - la serie di dati (2) che va dalla seconda barra all'ultima (la barra relativa a 10 anni di dati storici)

          poi proseguo con il lag k = 2 che correla
          - il segnale (1) che va dalla prima barra alla terzultima barra
          - il segnale (2) che va dalla terza barra fino all'ultima

          e così via.

          Quando vedo che il correlogramma arriva a zero dopo ad esempio 10 mila barre H1, per fare cifra tonda diciamo 1 anno di dati storici,
          significa che ho una correlazione positiva tra le due serie di dati che si annulla al lag k = 10.000 barre, corrispondente ad 1 anno di dati storici recenti.
          Il valore nullo del correlogramma quindi si ottiene quando:
          - la serie di dati (1) va dalla prima barra alla "ultima barra - 10.000 barre" (la barra distante 1 anno dall'ultima)
          - la serie di dati (2) va dalla barra "distante 1 anno dalla barra iniziale", fino all'ultima barra (la barra relativa a 10 anni di dati storici)

          Che significa quindi che facendo il correlogramma di 10 anni di dati storici H1, risulterebbe che si ha autocorrelazione > 0 soltanto per per 1 anno ?
          Esiste davvero una correlazione positiva di 1 anno di dati storici recenti con una dinamica di mercato che si spera sia predittiva dei dati futuri?

          Conoscendo come si costruisce il correlogramma appare evidente che l'autocorrelazione di 10 anni di dati storici mi ha dato 1 anno di dati storici recenti autocorrelati
          soltanto perché ho usato 9 anni di dati storici più vecchi che hanno aumentato il valore dell'autocorrelazione... 9 anni di dati storici che non userò mai.

          Il valore elevato dell'autocorrelazione non è detto che dipenda dall'autocorrelazione della porzione di 1 anno di dati storici più recenti, ma potrebbe dipendere dal contributo di autocorrelazione dei 9 anni di dati storici più antichi, che non sfrutterò mai.

          L'incremento del numero di barre autocorrelate che si ottiene aumentando i dati storici oggetto di correlogramma, dipende dal contributo di autocorrelazione dei dati storici passati che nulla hanno a che vedere con i dati recenti.
          Quindi vado ad attribuire ai dati storici recenti una autocorrelazione che invece dipende dal contributo di autocorrelazione dei dati storici remoti che ho aggiunto al correlogramma.

          Se aumento a dismisura i dati storici, aumento anche il range di dati storici recenti con autocorrelazione maggiore di zero.

          Da ciò quindi, ritengo che autocorrelare i dati storici su tutti i dati storici possibili aumenta le barre autocorrelate recenti, ma tutto il discorso perde di significatività.


          logica_autocorrelazione.gif
          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 .

          Comment


            #6
            di seguito il grafico dell'autocorrelazione di EURUSD H1
            - con 20mila barre reali EURUSD H1
            - con 30mila barre reali EURUSD H1
            - con 30mila barre di cui 20mila barre reali + 10mila barre fittizie EURUSD al prezzo fisso di 1,0000

            Il correlogramma al variare del lag k correla i dati futuri qualsiasi sia il suo valore, e CAMBIA la correlazione dei dati recenti (varia il valore k per cui il correlogramma arriva a zero),
            indipendentemente dai dati storici remoti, spazzatura o dati reali: il correlogramma delle candele recenti dipende dai dati futuri, quando invece i dati recenti rimangono sempre gli stessi.



            Il correlogramma si costruisce così, questo fa riflettere su come vada interpretato, correttamente o meno, il valore k su cui va zero l'autocorrelazione, al variare delle barre storiche a disposizione.


            correlA.GIF


            correlB.GIF



            correlC.GIF





            Se io lascio i dati recenti come sono e cambio i dati remoti con altri, il correlogramma dei dati recenti cambia.
            Questo significa che il correlogramma dei dati recenti cambia al variare dei dati remoti... ma di fatto i dati recenti NON sono cambiati, sono sempre gli stessi.

            Quindi se scelgo di ottimizzare su un numero di barre di dati storici pari al valore per cui il correlogramma raggiunge lo zero, io credo di ottimizzare su dati recenti che considero correlati, ma che invece risultano correlati nel correlogramma soltanto perché nei dati remoti ci sono valori che aumentano la autocorrelazione dei dati recenti.

            Questa osservazione per me inficia il valore del correlogramma = 0 come criterio per scegliere il numero di barre su cui ottimizzare.
            Il correlogramma a zero non dà una misura corretta del numero di barre da prendere il considerazione per l’ottimizzazione.


            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