clear
close all

% Scarico le serie dei rendimenti (comprese le Labels)
[DB_RENDIMENTI LABEL]=xlsread('File Excel MTGR.xlsx','var-cov 1 titolo','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','var-cov 1 titolo','E2:E2');

LIVELLO_CONFIDENZA=0.99;

% Rappresentazione grafica della volatilità dei rendimenti giornalieri
figure(1)
plot(DB_RENDIMENTI, 'b')
title('Variabilità dei rendimenti giornalieri')
xlabel('Giorni lavorativi')
legend(LABEL, 'Location', 'south')
ylabel('Rendimenti Giornalieri')
grid on

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CALCOLO DEL VAR CON IL MODELLO VARIANZE-COVARIANZE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Calcolo la deviazione standard dei rendimenti
SIGMA=std(DB_RENDIMENTI);

% Calcolo il Multiplo della devizione standard (k)
MULTIPLO_K=norminv(LIVELLO_CONFIDENZA, 0, 1);


%Calcolo del VaR con il modello VARIANZE-COVARIANZE
VAR_VC=VALORE_MERCATO*MULTIPLO_K*SIGMA;



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CALCOLO DEL VAR CON IL MODELLO DELLE SIMULAZIONI STORICHE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Ordina i rendimenti dal peggiore al migliore
RENDIMENTI_ORDINATI=sort(DB_RENDIMENTI);

% Calcolo i rendimenti estremi corrispondenti ai livelli di confidenza
RENDIMENTO_ESTREMO=RENDIMENTI_ORDINATI(4,1);

%Calcolo del VaR con il modello delle Simulazioni Storiche
VAR_SS=VALORE_MERCATO*abs(RENDIMENTO_ESTREMO);


% Rappresentazione Grafica di confronto dei VaR calcolati con diversi Modelli
figure(2);
bar([VAR_VC VAR_SS],'r')
title('VaR Var-Cov vs Simulazioni Storiche')
xlabel('Metodologie VaR')
set(gca,'XTickLabel',{'Var-Cov';'Sim Stor'})
ylabel('VaR')
grid on


% Stima degli Higher Order Moments
ASIMMETRIA=skewness(DB_RENDIMENTI);
CURTOSI=kurtosis(DB_RENDIMENTI,0)-3;

% Rappresentazione Grafica degli higher order moments
figure(3);
bar([ASIMMETRIA CURTOSI],'k')
title('Asimmetria e Cursosi')
xlabel('Higher Order Moments')
set(gca,'XTickLabel',{'Skew';'Kurt'})
ylabel('Valori Numerici')
grid on


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FINE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%