Title | 6-Launch Whole Sample - Matematica finanziaria progredito (corso Finanza) |
---|---|
Author | Luca Zaffaina |
Course | Matematica finanziaria |
Institution | Università degli Studi di Trento |
Pages | 6 |
File Size | 269.4 KB |
File Type | |
Total Downloads | 463 |
Total Views | 890 |
Download 6-Launch Whole Sample - Matematica finanziaria progredito (corso Finanza) PDF
Estimating inputs in Markowitz Mean-Variance Portfolio Model See Ch. 10 Benninga, S. Financial Modeling clear; clf;
Load Data Cap10 Benninga- Financial Modelling load DataCap10Benninga NameAssets={'GE','MSFT','JNJ','K','BA','IBM' }; % whos % Name % Prices % SP500Return % SharesOutstanding
Size 12x6 11x1 1x6
Bytes 576 88 48
Class double double double
Attributes
Calcolo i Log-rendimenti LogReturns=log(Prices(2:end,:)./Prices(1:end-1,:)); [T,K]=size(LogReturns); % T=numero di osservazioni; K=numero di titoli
Calcolo la matrice delle covarianze campionaria SampleSigma=cov(LogReturns); % utilizzo la funzione "cov" per trovare al covarianza % del campione (ho diviso per N-1). Se scrivo cov(LogReturns,1) con 1 trovo % la covarianza della popolazione.
Compute la matrice delle covarianze con il metodo della correlazione costante rho=0.3; %fissato, ipotizzo che nel mercato vi sia un determinato livello di % correlazione [SigmaConstantCorrelation]=EstimateCorrConst(LogReturns, rho); % uso la % funzione che ho creato che stima il valore della covarianza con % correlazione costante -> si crea una funzione in cui si calcola sulla % diagonale principale la varianza e in tutti gli altri punti il prodotto % tra rho e le standard deviation.
Calcolo la matrice delle covarianza con metodo Shrinkage alpha=0.7; % ipotizzo che il lambda sia = 70% SigmaShrinkage=alpha.*SampleSigma+(1-alpha).*SigmaConstantCorrelation;
Calcolo il portafoglio a Minima Varianza Da non sapere la formula per la soluzione analitica che trovo a p.300 Benninaga a memoria. % trovo la soluzione analitica e=ones(1,K); % utilizzo la soluzione analitica per trovare i diversi pesi dei tre diversi portafogli: 1
WeightsMinVarianceConstantCorrelation=e*inv(SigmaConstantCorrelation)/... (e*inv(SigmaConstantCorrelation)*e'); WeightsMinVarianceCampionaria=e*inv(SampleSigma)/(e*inv(SampleSigma)*e'); WeightsMinMinVarianceShrinkage=e*inv(SigmaShrinkage)/(e*inv(SigmaShrinkage)*e'); % guardo le differenze tra i pesi nei grafici figure(1) clf subplot(3,1,1) bar(WeightsMinVarianceCampionaria) xlabel('Asset Number') ylabel('Weights') title('Minimum Variance Port. with Sample Covariance Est.','FontSize', 12,'FontWeight','b') subplot(3,1,2) bar(WeightsMinVarianceConstantCorrelation) xlabel('Asset Number') ylabel('Weights') title('Minimum Variance Port. with Constant Correlation Est.','FontSize', 12,'FontWeight','b') subplot(3,1,3) bar(WeightsMinMinVarianceShrinkage) xlabel('Asset Number') ylabel('Weights') title('Minimum Variance Port. with Shrinkage Est.','FontSize', 12,'FontWeight','b')
Compute Portfolio with Maximum Sharpe Ration with no-shortselling Impongo che i pesi siano sempre maggiori di zero (no-shortselling) % 2
ExpReturn=mean(LogReturns); NPts=20; % Using Sample Covariance matrix estimate [PortRisk_Sample, PortReturn_Sample, PortWts_Sample] = portopt(ExpReturn, ... SampleSigma, NPts); SharpeRatio_Sample=PortReturn_Sample./PortRisk_Sample; [a,b]=find(SharpeRatio_Sample==max(SharpeRatio_Sample)); WeightsSharpeRatio_Sample= PortWts_Sample(a(1),:); WeightsMinVariance_SampleNoShortSelling= PortWts_Sample(1,:); %Using Shrinkage Covariance matrix estimate [PortRisk_Shrinkage, PortReturn_Shrinkage, PortWts_Shrinkage] = portopt(... ExpReturn, SigmaShrinkage, NPts); SharpeRatio_Shrinkage=PortReturn_Shrinkage./PortRisk_Shrinkage; [a,b]=find(SharpeRatio_Shrinkage==max(SharpeRatio_Shrinkage)); WeightsSharpeRatio_Shrinkage= PortWts_Shrinkage(a(1),:); WeightsMinVariance_ShrinkageNoShortSelling= PortWts_Shrinkage(1,:); %Using Constant Correlation Covariance matrix estimate [PortRisk_ConstCorr, PortReturn_ConstCorr, PortWts_ConstCorr] = portopt(... ExpReturn, SigmaConstantCorrelation, NPts); SharpeRatio_ConstCorr=PortReturn_ConstCorr./PortRisk_ConstCorr; [a,b]=find(SharpeRatio_ConstCorr==max(SharpeRatio_ConstCorr)); WeightsSharpeRatio_ConstCorr= PortWts_ConstCorr(a(1),:); WeightsMinVariance_ConstCorrNoShortSelling= PortWts_ConstCorr(1,:);
figure(2) clf subplot(3,1,1) bar(WeightsMinVariance_SampleNoShortSelling) xlabel('Asset Number') ylabel('Weights') title('Minimum Variance Port. with Sample Covariance Est.','FontSize', 12,'FontWeight','b') subplot(3,1,2) bar(WeightsMinVariance_ConstCorrNoShortSelling) title('Minimum Variance Port. with Const. Correlation Est.','FontSize', 12,'FontWeight','b') xlabel('N. Assets') ylabel('Weights') subplot(3,1,3) bar(WeightsMinVariance_ShrinkageNoShortSelling) title('Minimum Variance Port. with Shrinkage Covariance Est.','FontSize', 12,'FontWeight','b') xlabel('N. Assets') ylabel('Weights')
3
figure(3) clf subplot(3,1,1) bar(WeightsSharpeRatio_ConstCorr) xlabel('Asset Number') ylabel('Weights') title('Maximum SR Port. with Sample Covariance Est.','FontSize', 12,'FontWeight','b') subplot(3,1,2) bar(WeightsSharpeRatio_Sample) title('Maximum SR Port. with Const. Correlation Est.','FontSize', 12,'FontWeight','b') xlabel('N. Assets') ylabel('Weights') subplot(3,1,3) bar(WeightsSharpeRatio_Shrinkage) title('Maximum SR Port. with Const. Correlation Est.','FontSize', 12,'FontWeight','b') xlabel('N. Assets') ylabel('Weights')
4
parte vista da qui in giù: vedo come le frontiere efficienti dei 3 portafogli calcolati con i% tre metodi e mi accorgo che Shrinkage è effettivamente una media pesata% per una costante degli altri due metodi. figure(4) clf plot(PortRisk_Sample, PortReturn_Sample) hold Current plot held
plot(PortRisk_ConstCorr, PortReturn_ConstCorr,'r') plot(PortRisk_Shrinkage, PortReturn_Shrinkage,'g') xlabel('Portfolio Expected Risk') ylabel('Portfolio Expected Return') title('Efficient Frontiers','FontSize', 12,'FontWeight','b') legend('Sample','Corr.Costante','Shrinkage')
5
figure(4) clf plot(PortRisk_Sample, PortReturn_Sample,'LineWidth',4) hold Current plot held
plot(PortRisk_ConstCorr, PortReturn_ConstCorr,'r+','LineWidth',4) plot(PortRisk_Shrinkage, PortReturn_Shrinkage,'g--','LineWidth',4) xlabel('Portfolio Expected Risk') ylabel('Portfolio Expected Return') title('Efficient Frontiers','FontSize', 12,'FontWeight','b') legend('A','B','C')
6...