Distribuzione delle chiusure di mercato

Una domanda che mi sono spesso posto è se le chiusure dei titoli seguano una distribuzione normale. Ho fatto alcune prove per verificare se è corretto assumere un andamento normale. Nello studio ho usato l’indice di borsa FTSMIB, ma ripetendo le prove con diversi titoli sembra che il comportamento sia analogo anche per i diversi titoli.

Il codice è scritto per Jupyter, strumento di analisi abbastanza standard, facie da usare e molto diffuso. Primo importo le librerie.

#Import vari
import yfinance as yf
from datetime import datetime
from datetime import timedelta
import scipy.stats as sp
import pylab
import numpy as np
from matplotlib import pyplot as plt

Poi carico i dati da yahoo, poi li normalizzo attraverso un’operazione, anch’essa comune, logaritmo sui dati, e differenza tra i valori logaritmici.

#carico i dati, uso il FTSEMIB
start = '2015-01-01' 
#ticker = "A2A.MI"
ticker = "FTSEMIB.MI"
sp_list = [ticker]
end = '2020-12-31'
print(f'{ticker} Stock download')
spy = yf.download(sp_list, start,end)

log_spy = np.log(spy.Close)
log_return = (np.diff(log_spy ,axis=0))
spy = spy.iloc[1:,:]
spy.loc[:,('log_return')] = log_return
data = spy.log_return.values

E ora i grafici e l’analisi.

Distribuzione normale

Faccio un fittin dei dati con la curva normale.

xmin, xmax = plt.xlim([-0.2,0.2])
x = np.linspace(xmin, xmax, len(data))
print(f'lunghezza dati {len(data)}')
plt.hist(data, bins=100, density=True, alpha=0.5)

r = sp.norm.fit(data)
print(f'fit normale: {r}')
p1 = sp.norm.pdf( x, r[0], r[1])
plt.plot(x, p1, 'r' ,linewidth=2,label='norm Returns')

# Plot the PDF.
title = f"Fitting Distributione Normale {ticker} " 
plt.title(title)
plt.legend()
plt.show()

sp.probplot(data, dist="norm", plot=pylab)
pylab.show()

Il risultato è quello mostrato in figura, il fitting è solamente discreto, si nota un picco nella parte centrale che supera la curva normale e il grafico delle probabilità conferma che le code sono distanti dai valori della distribuzione normale.

Distribuzione t-Student

Il picco centrale suggerisce che una distribuzione t-student con un basso grado di libertà (< 30) possa avere un fitting migliore.

Una distribuzione di t-student sembra in effetti avere un fitting migliore, rimangono delle asimmetrie sulle code e allontanamento dalla norma, con conseguente skewness (asimmetria) e kurtosi.

Approfondimenti da fare: per quali ragioni la distribuzione è t-student?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

WP to LinkedIn Auto Publish Powered By : XYZScripts.com