Title | 4-RW Efficient Mkts-F - Matematica finanziaria progredito (corso Finanza) |
---|---|
Author | Luca Zaffaina |
Course | Matematica finanziaria |
Institution | Università degli Studi di Trento |
Pages | 7 |
File Size | 336.7 KB |
File Type | |
Total Downloads | 17 |
Total Views | 116 |
Download 4-RW Efficient Mkts-F - Matematica finanziaria progredito (corso Finanza) PDF
Random Walk & Efficient Mkt Hypothesis Load data from .mat file clear load Stock_FX_BondModified
Compute Returns and Log-Returns GM_logRet=log(GM_AC(2:end)./GM_AC(1:end-1)); SP_logRet=log(F_AC(2:end)./F_AC(1:end-1)); F_logRet=log(SP_AC(2:end)./SP_AC(1:end-1)); % faccio il calcolo per F %F_logRet=SP_logRet %altrimenti posso usare trova/sostituisci CTRL+F %Plot Scatterplot figure(1) clf plot(F_logRet,'r') xlabel('Time') ylabel('Log Return') title('Ford')
Histograms with Fitted Normal
1
figure(2) clf histfit(F_logRet,100,'normal') xlabel('Log Return') ylabel('Frequency') title('Ford')
% % % % %
Distribuzione piu' appuntita e con code pesanti, questo vuol dire che La frequenza empirica delle osservazioni estreme e' maggiore di quella prevista da una normale. Inoltre, ci aspettiamo asimmetria negativa, questa asimmetria perdite-guadagni conferma il fatto stilizzato che le perdite estreme sembrano essere di dimensione maggiore dei guadagni.
Normal Plot or QQplot vs Normal Distribution figure(3) clf normplot(F_logRet) xlabel('Log Return') ylabel('Probability') title('Ford')
2
% Vedo se la distribuzione di probabilita' dei ritorni in scala logartimica % e' approssimabile con una normale.
Autocorrelation nlags=20; [SP_acf,SP_lags,SP_bounds] = autocorr(F_logRet,nlags); figure(4) clf bar(SP_lags,SP_acf) hold Current plot held
plot(SP_lags,SP_bounds(1).*ones(1,nlags+1),'r*') plot(SP_lags,SP_bounds(1).*ones(1,nlags+1),'r') plot(SP_lags,SP_bounds(2).*ones(1,nlags+1),'r*') plot(SP_lags,SP_bounds(2).*ones(1,nlags+1),'r') xlabel('Lags') ylabel('Autocorrelation (blue) and Confidence Interval (red)') title('Ford: Return Autocorrelation')
3
% Notice that the second element in SP_acf, which is the autocorrelation % of order one is equal to 0.0009. Do you have any other idea how to compute it? % What if we use ? corrcoef(F_logRet(2:end)',F_logRet(1:end-1)') ans = 2×2 1.0000 0.0009
0.0009 1.0000
% How can we compute the autocorrelation of order 2? corrcoef(F_logRet(3:end)',F_logRet(1:end-2)'); % % % %
il grafico conferma quello previsto dai fatti stilizzati per cui non vi e' autocorrelazione tra il prezzo oggi e il suo passato. Quindi il passato e' approssimabile come white noise e la miglior stima del prezzo oggi e' il prezzo ieri.
Plot Returns(t) vs Returns(t-1) figure(5) clf plot(F_logRet(1:end-1),F_logRet(2:end),'r+') % Qui sto confrontando il log-rendimenti di ieri con il log-rend, di oggi. % Se crediamo nell'efficienza dei mercati questi devono essere incorrelati. xlabel('S&P at time (t-1)') ylabel('S&P at time (t)') title('S&P Lag plot')
4
% % % %
vediamo che a parte alcuni eventi estremi, se togliamo questi, abbiamo una nuvola di punti casuali (palla da baseball), quindi sembra che i rendimenti non siano tra loro correlati, quindi non vi e' una dipendenza di ordine 1 tra i rendimenti.
% Questo grafico e' anche utile per verificare l'efficienza dei mercati.
Compute Descriptive Statistics F_logRet_size=length(F_logRet); F_logRet_mean=mean(F_logRet); F_logRet_median=median(F_logRet); F_logRet_std=std(F_logRet); F_logRet_var=var(F_logRet); F_logRet_skew=skewness(F_logRet); F_logRet_kurt=kurtosis(F_logRet); F_logRet_min=min(F_logRet); F_logRet_max=max(F_logRet); sprintf('Size: %0.5g ',F_logRet_size) ans = 'Size: 4962 '
sprintf('Mean: %0.5g ',F_logRet_mean) ans = 'Mean: 0.00033684 '
5
sprintf('Median: %0.5g ',F_logRet_median) ans = 'Median: 0.0004976 '
sprintf('Std: %0.5g ',F_logRet_std) ans = 'Std: 0.010838 '
sprintf('Skewness: %0.5g ',F_logRet_skew) % se fosse normale mi aspetto skewness = 0 ans = 'Skewness: -2.079 '
sprintf('Kurtosis: %0.5g ',F_logRet_kurt) % se fosse normale mi aspetto kurtosis = 3 ans = 'Kurtosis: 47.75 '
sprintf('Min: %0.5g ',F_logRet_min) ans = 'Min: -0.229 '
sprintf('Max: %0.5g ',F_logRet_max) ans = 'Max: 0.087089 '
% What are the values of the kurtosis and skewness? % If you perform the Jarque-Bera Test, do you expect to accept or reject % the null hypothesis of normality?
Test for Normality: Jarque-Bera Test [h_jb,p_jb,stat_jb] = jbtest(F_logRet,0.05) Warning: P is less than the smallest tabulated value, returning 0.001. h_jb = 1 p_jb = 1.0000e-03 stat_jb = 4.1760e+05
% % % % % % %
What's the Conclusion? test basato su skewness e kurtosis. e' basato su una distribuzione chi quadro, H = 1, rifiuto l'ipotesi nulla di normalita'. Posso vedere ancha dal p-value...