clear
close all

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CALCOLO DEL VAR CON ESPANSIONE CORNISH-FISHER
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% Scarico le serie dei rendimenti (comprese le Labels)
[DB_RENDIMENTI LABEL]=xlsread('File Excel MTGR.xlsx','Cornish-Fisher','B1:B301');

% Identifico la dimensione della serie storica
[SIZE NNN]=size(DB_RENDIMENTI);

% Scarico il Valore di Mercato del Portafoglio
VALORE_MERCATO=xlsread('File Excel MTGR.xlsx','Cornish-Fisher','E2:E2');

LIVELLO_CONFIDENZA=0.99;

% Calcolo il Multiplo della devizione standard (k)
Z=norminv(1-LIVELLO_CONFIDENZA, 0, 1);

% Calcolo la deviazione standard dei rendimenti
SIGMA=std(DB_RENDIMENTI);

% Calcolo Asimmetria
SKEW=skewness(DB_RENDIMENTI,0);

% Calcolo Curtosi
KURT=kurtosis(DB_RENDIMENTI,0)-3;


% CALCOLO LO Z Adjusted
Z_Adj=Z+(Z^2-1)*(SKEW/6)+(Z^3-3*Z)*(KURT/24)-(2*Z^3-5*Z)*(SKEW^2/36)

% Calcolo del VaR con espansione Cornish-Fisher
VAR_C_F=VALORE_MERCATO*abs(Z_Adj)*SIGMA


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CALCOLO DEL VAR CON IL MODELLO VARIANZE COVARIANZE e distribuzione
% Gaussiana
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% Calcolo il Multiplo della devizione standard (k)
K_norm=norminv(LIVELLO_CONFIDENZA, 0, 1);

%Calcolo del VaR con il modello delle Simulazioni Storiche
VAR_GAUSS=VALORE_MERCATO*K_norm*SIGMA;




% Rappresentazione Grafica di confronto dei VaR calcolati con diversi Modelli
figure(1);
bar([VAR_C_F VAR_GAUSS],'r')
title('Modelli Parametrici: VaR Cornish-Fisher vs VaR Distr Norm')
xlabel('Metodologie VaR')
set(gca,'XTickLabel',{'Cornish-Fisher';'Gauss'})
ylabel('VaR')
grid on


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FINE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%