clear
close all

% Scarico le serie dei rendimenti (comprese le Labels)
[DB_RENDIMENTI LABEL]=xlsread('File Excel MTGR.xlsx','Asset versus Delta Normal','B1:E301');

% Identifico la dimensione della serie storica
[SIZE NNN]=size(DB_RENDIMENTI);

% Scarico il Valore di Mercato dei singoli titoli nel portafoglio
VALORE_MERCATO=xlsread('File Excel MTGR.xlsx','Asset versus Delta Normal','H3:H6');

LIVELLO_CONFIDENZA=0.99;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CALCOLO DEL VAR CON IL MODELLO ASSET NORMAL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 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 dei singoli titoli
VAR_VC=VALORE_MERCATO'*MULTIPLO_K.*SIGMA;


% Stima della matrice di correlazione
MATR_CORR=corr(DB_RENDIMENTI);

figure(1)
h = heatmap(MATR_CORR);
title('Matrice delle Correlazioni tra Titoli')


VAR_ASSET=sqrt(VAR_VC*MATR_CORR*VAR_VC');



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CALCOLO DEL VAR CON IL MODELLO DELTA NORMAL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% Scarico le serie storiche dei rendimenti dei mercati azionari Italia e
% Germania
[DB_RENDIMENTI_MKT LABEL2]=xlsread('File Excel MTGR.xlsx','Asset versus Delta Normal','Q1:R301');

% Stimo le deviazioni standard dei rendimenti dei due mercati
SIGMA_MKT=std(DB_RENDIMENTI_MKT);

% Stimo i Beta dei titoli Italiani
COVARIANZA_INTESA=cov(DB_RENDIMENTI(:,1),DB_RENDIMENTI_MKT(:,1));
BETA_INTESA=COVARIANZA_INTESA(1,2)/var(DB_RENDIMENTI_MKT(:,1));

COVARIANZA_UNICREDIT=cov(DB_RENDIMENTI(:,2),DB_RENDIMENTI_MKT(:,1));
BETA_UNICREDIT=COVARIANZA_UNICREDIT(1,2)/var(DB_RENDIMENTI_MKT(:,1));


% Stimo i Beta dei titoli Tedeschi
COVARIANZA_BMW=cov(DB_RENDIMENTI(:,3),DB_RENDIMENTI_MKT(:,2));
BETA_BMW=COVARIANZA_BMW(1,2)/var(DB_RENDIMENTI_MKT(:,2));

COVARIANZA_VOLKS=cov(DB_RENDIMENTI(:,4),DB_RENDIMENTI_MKT(:,2));
BETA_VOLKS=COVARIANZA_VOLKS(1,2)/var(DB_RENDIMENTI_MKT(:,2));

% Stimo i VaR dei segmenti Italia e Germania

%VaR del segmento italia
VAR_INTESA=VALORE_MERCATO(1,1)*MULTIPLO_K*BETA_INTESA*SIGMA_MKT(1,1);
VAR_UNICREDIT=VALORE_MERCATO(2,1)*BETA_UNICREDIT*MULTIPLO_K*SIGMA_MKT(1,1);
VAR_ITA=VAR_INTESA+VAR_UNICREDIT;

%VaR del segmento Germania
VAR_BMW=VALORE_MERCATO(3,1)*MULTIPLO_K*BETA_BMW*SIGMA_MKT(1,2);
VAR_VOLKS=VALORE_MERCATO(4,1)*BETA_VOLKS*MULTIPLO_K*SIGMA_MKT(1,2);
VAR_GER=VAR_BMW+VAR_VOLKS;

% Stima della correlazione tra mercati
CORR_MKT=corr(DB_RENDIMENTI_MKT);

figure(2)
h = heatmap(CORR_MKT);
title('Matrice delle Correlazioni tra Mercati')

% VaR del Portafoglio Complessivo
VAR_DELTA=sqrt([VAR_ITA VAR_GER]*CORR_MKT*[VAR_ITA VAR_GER]')


% Rappresentazione Grafica di confronto dei VaR calcolati con diversi Modelli
figure(3);
bar([VAR_ASSET VAR_DELTA],'r')
title('VaR Var-Cov Asset Normal vs VaR Var-Cov Delta Normal')
xlabel('Metodologie VaR')
set(gca,'XTickLabel',{'Asset';'Delta'})
ylabel('VaR')
grid on



%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FINE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

