Correlazione e backtesting

L'importanza della correlazione nello sviluppo di trading system e nella fase di backtesting di strategie, attraverso i dati in sample e out of sample.

Condividi questo post

Condividi su linkedin
Condividi su facebook
Condividi su email
Condividi su twitter
Condividi su whatsapp
Condividi su telegram

La correlazione, in ambito finanziario e statistico è un indicatore che consente di capire e studiare quale relazione intercorre tra 2 o più asset all’interno di un portafoglio o direttamente del mercato stesso.

Viene calcolata attraverso il “coefficiente di correlazione”, ovvero un valore che oscilla a -1 a +1.

Più il risultato di una correlazione tende verso il “-1” più gli asset presi in esame tendono a muoversi in maniera opposta l’uno dall’altro. In questo caso si dice che hanno una correlazione inversa.

Gli asset (o i mercati) che riportano una correlazione intorno allo 0 si dicono invece decorrelati, in quanto il movimento di uno non influisce sul secondo, non essendoci un legame diretto tra di loro.

La correlazione diretta si ha invece quando il risultato si avvicina verso il +1 (da 0.5 può già essere considerata una relazione positiva) e in questo caso gli asset tendono a muoversi nello stesso modo, avendo un legame diretto.

In questo caso stiamo prendendo in esame una casistica puramente teorica, in quanto esistono pochi titoli e mercati che possono essere definiti perfettamente correlati inversamente o direttamente.

Nel mercato del Forex è molto importante tenerne conto in quanto diversi cross tendono a rispettare i loro gradi di correlazione.

Analogamente al Forex anche nella costruzione di portafogli azionari o portafogli di strategie automatiche il rapporto di correlazione deve essere sempre monitorato.

Quando si costruisce un portafoglio di investimenti o strategie è fondamentale mirare a una diversificazione dei titoli, o a una mancanza di correlazione tra i vari componenti del proprio portafoglio.

I gradi correlazione

I gradi di correlazione possono essere classificati in questo modo:

  • +1 – Completa correlazione positiva
  • +0.8 – Correlazione positiva forte
  • +0.6 – Correlazione positiva moderata
  • 0 – Nessuna correlazione (decorrelazione)
  • -0.6 – Correlazione moderatamente negativa
  • -0.8 – Correlazione negativa forte
  • -1 – Completa correlazione negativa

Esempio di grafico a dispersione, utilizzato per comparare la correlazione tra due variabili

La correlazione e il backtesting di strategie

Le correlazioni svolgono un ruolo importante nella finanza perché vengono utilizzate quindi per prevedere le tendenze future e per gestire i rischi all’interno di un portafoglio. 

Ormai, grazie alle numerose librerie e i moltissimi provider di data feed, continuamente aggiornati, le correlazioni possono essere facilmente calcolate utilizzando vari programmi di scrittura e programmazione come Python.

Un esempio che può essere fatto è calcolare la possibilità di variazioni di prezzo di azioni nel comparto industriale e dei basic materials, analizzando il comportamento delle quotazioni delle materie prime (utilizzando l’indice composito delle commodities come il DJP). 

Ma lo studio di correlazione nel trading automatico può essere usato anche per effettuare backtesting di strategie, prendendo ad esame dei dati storici iniziali su cui si basa la strategia stessa, che vengono chiamati “dati in sample

Sono presenti poi i cosiddetti “dati out of sample“, importanti per testare un’idea di trading con dati che non sono stati componenti del modello di ottimizzazione.

Prima di qualsiasi backtesting o ottimizzazione, si possono riservare una percentuale dei dati storici per i test fuori campione. 

Ad esempio un metodo consiste nel dividere i dati storici 3 parti e separare un terzo da utilizzare nei test fuori campione. Solo i dati nel campione dovrebbero essere utilizzati per il test iniziale e qualsiasi ottimizzazione.

Qui entra in gioco il concetto di correlazione, che in questo caso svolge il ruolo di “somiglianza” tra le prestazioni dei due seti di dati (nel campione e fuori campione).

Dati in sample e out of sample

Nella Statistica Inferenziale esiste una tecnica, detta metodo di test “in sample – out of sample” o “previsione out of sample”, che cerca di controllare un fenomeno sulla base dei suoi risultati campionari, scartando momentaneamente la parte più recente del campione per studiarne soltanto la parte iniziale.

Tutto ciò al fine di eseguire previsioni da verificare poi nella parte scartata; quanto più i valori previsti del fenomeno, basati sulla prima parte del campione sono simili a quelli che si riscontrano nella seconda parte del campione, tanto è migliore la forza del modello di prevedere il fenomeno.

Facciamo un esempio: facendo un backtest di dati dal 2010 al 2021, potremmo prendere in esame il lasso temporale dal 2010 al 2017 (che saranno i nostri dati in sample), basandomi su una strategia come quella dell’incrocio delle medie mobili su uno specifico sottostante, ci verrà fornito un determinato risultato.

Procedendo per validare il risultato, scartando la possibilità di overfitting, ovvero quando un modello statistico si adatta al campione grazie solamente al numero eccessivo di parametri rispetto al numero di osservazioni, ricavo una piccola parte dei dati cosiddetto “out of sample” (2017-2021), utilizzandolo come controprova.

In questo caso, per valutare che la strategia abbia performance positive attraverso profit factor, drawdown e altri parametri nel primo periodo, la si analizza anche per il secondo periodo. Per avere una conferma della sua solidità i dati in uscita dovrebbero essere simili e entrambi, ovviamente, positivi.

La correlazione tra Gold e DJP

Oggi come esempio di correlazione presenteremo il rapporto che intercorre tra il Gold e il DJP, ovvero iPath Bloomberg Commodity Index Total Return(SM) ETN, l’ETF delle materie prime di Ipath, emesso da Barclays.

Come detto nella newsletter inviata la settimana scorsa, il Gold è una commodity molto particolare, perché solo in piccolissima parte viene utilizzata nella lavorazione.

Vediamo quindi oggi se il suo andamento del prezzo è correlato o meno con il resto del mondo delle commodities.


Installiamo le librerie di yfinance e Numpy, con i quali calcoleremo i coefficienti di correlazione

pip install yfinance
pip install numpy

Importiamo le librerie di Numpy e yfinance. Numpy, in particolare, ci consentirà di effettuare successivamente lo studio di correlazione

 import yfinance as yf
import matplotlib.pyplot as plt
import numpy as np

Scarichiamo i dati del gold e del ETF DJP da yfinance per il periodo 01/01/2021 – 31/12/2021

 dataInizio = '2021-01-01'
dataFine = '2021-12-31'
mp = yf.download('DJP', dataInizio, dataFine)
gold = yf.download('GOLD', dataInizio, dataFine)
np.corrcoef(mp['Close'], gold['Close'])

I risultati della correlazione è di -0.37, ovvero inversa, anche se non molto forte.

Estendendo lo studio dal 2010 ad oggi i risultati sarebbero i seguenti:

  • 2010: 0.68
  • 2011: 0.34
  • 2012: 0.33
  • 2013: 0.01
  • 2014: 0.80
  • 2015: 0.87
  • 2016: 0.75
  • 2017: 0.18
  • 2018: 0.38
  • 2019: -0.35
  • 2020: -0.19
  • 2021: -0.37
Il grafico di correlazione tra Gold (giallo) e DJP (nero). Nota come dal 2019 i due andamenti hanno riportato un andamento opposto, sottolineando la correlazione negativa che abbiamo ricavato.

Scopri tutti i nostri articoli del blog sul sito e iscriviti alla newsletter.

Iscriviti alla nostra newsletter gratuita

Rimani aggiornato e impara sempre 😀

Altri articoli che potresti trovare interessanti

Fintech

La Modern Portfolio Theory

La Modern Portfolio Theory, una delle teorie di asset allocation di portafoglio più famose.
La relazione tra rischio e rendimento.

Fintech

Correlazione e backtesting

L’importanza della correlazione nello sviluppo di trading system e nella fase di backtesting di strategie, attraverso i dati in sample e out of sample.

Scopri la nostra academy

Diventa un Quant Trader e crea i tuoi trading system automatici