6-Example Naive MV - Matematica finanziaria progredito (corso Finanza) PDF

Title 6-Example Naive MV - Matematica finanziaria progredito (corso Finanza)
Author Luca Zaffaina
Course Matematica finanziaria
Institution Università degli Studi di Trento
Pages 5
File Size 231.2 KB
File Type PDF
Total Downloads 377
Total Views 441

Summary

Esempio NaiveMV - calcolo frontiera efficiente con la funzione"NaiveMV"clear;clf;close all;% Rendimento atteso dei 3 titoli ExpRet = [0,0,0];% Matrice di covarianza dei 3 titoli CovMat = [0,0,-0;0,0,0;-0,0,0];% Nomi dei titoli NameAssets{1}= 'A1'; NameAssets{2}= 'A2'; NameAssets{3}...


Description

Esempio NaiveMV - calcolo frontiera efficiente con la funzione "NaiveMV" clear;clf;close all; % Rendimento atteso dei 3 titoli ExpRet = [0.15,0.2,0.08]; % Matrice di covarianza dei 3 titoli CovMat = [0.2,0.05,-0.01;0.05,0.3,0.015;-0.01,0.015,0.1]; % Nomi dei titoli NameAssets{1}= 'A1'; NameAssets{2}= 'A2'; NameAssets{3}= 'A3'; %Asset Bounds %vincoli per i pesi (devono essere compresi tra 0 e 1. w_min=0*ones(1,3); %vincolo sul peso minimo che deve essere zero w_max=1*ones(1,3); %vincolo sul peso massimo che deve essere 1. %Numero di Portafogli sulla frontiera efficiente NPts=10; % Numero di portafogli che voglio ottenere per rappresentare la frontiera verbose=1; % Calculate the efficient frontier with NaiveMV based on 10 points [PRisk, PRoR, PWts] = NaiveMV(ExpRet, CovMat, w_min, w_max, NPts,1); PRisk, PRoR, PWts, PRisk = 10×1 0.2411 0.2456 0.2588 0.2794 0.3060 0.3370 0.3714 0.4093 0.4682 0.5477 PRoR = 10×1 0.1143 0.1238 0.1333 0.1428 0.1524 0.1619 0.1714 0.1809 0.1905 0.2000 PWts = 10×3 0.2914 0.3117 0.3320 0.3524 0.3727 0.3930 0.4133

0.1155 0.1831 0.2506 0.3181 0.3857 0.4532 0.5207

0.5931 0.5052 0.4174 0.3295 0.2417 0.1538 0.0659

1

0.3811 0.1905 0.0000

0.6189 0.8095 1.0000

0.0000 0.0000 0.0000

%Input della funzione sono il rendimento atteso, la matrice di varianza-covarianza, % il vettore dei pesi minimi (tutti zero), il vettore dei pesi massimi (tutti 1); % 10 portafogli e l’1 finale è un input di cui non mi preoccupo. % % % % % % % % % % % % %

PRisk (portfolio risk) è un vettore 10x1 ed è la deviazione standard dei 10 portafogli. PRoR (portfolio return) è il vettore dei rendimenti attesi; PWts è matrice 10x3 dove in prima riga ho la composizione del portafoglio a minima varianza. In particolare ogni colonna rappresenta il peso di quel titolo (es. colonna 1 = primo titolo) in quel portafoglio. L'ultima riga (ultimo portafoglio) è il portafoglio a massimo rendimento atteso e vediamo che è totalmente investito nel titolo 2, questo perchè il portafoglio a massimo rendimento atteso è quello che mi da il massimo rendimento atteso tra i 3 titoli, sceglie quindi solo quel titolo con il rendimento atteso maggiore. Salvo che vi siano titoli con lo stesso rendimento atteso risulta sempre totalmente investito nel titolo a massimo rendimento atteso (in questo caso il titolo 2).

%Plot output expected rate of return and risk figure() plot(PRisk, PRoR) xlabel('Expected Risk') ylabel('Expected Return') title('Efficient Frontier')

2

% Lanciare fino a qui.

PARTE NON ANCORA FATTA - INVECE, QUELLA PIU' SOTTO E' STATA FATTA % Plot Weights of Portfolios on the Efficient Frontier figure() area(PWts) legend(NameAssets,'Location','southeast') title(' Portfolio Weights - Function NaiveMV')

% Plot Weights Minimum Variance Portfolio and Maximum Sharpe Ratio SharpeRatio=PRoR./PRisk; [a,b]=find(SharpeRatio==max(SharpeRatio)) a = 3 b = 1

PWts_SharpeRatio=PWts(a,:); PWts_MinVariance=PWts(1,:); figure() subplot(3,1,1) plot(PRisk,PRoR) hold

3

Current plot held

plot(PRisk(1),PRoR(1),'r*') plot(PRisk(a),PRoR(a),'g+') xlabel('Expected Risk') ylabel('Expected Return') title('Efficient Frontier') legend('Frontier','MinVariance','MaxSR','Location','southeast') subplot(3,1,2) bar(PWts_SharpeRatio) title('Max Sharpe Ratio - Asset Weights') subplot(3,1,3) bar(PWts_MinVariance) title('Minimum Variance - Asset Weights')

Quale è l'effetto sulla frontiera dell'introduzione di vincoli più forti sui pesi degli assets % Asset Bounds = limiti ai pesi tra 0 e 0.4->I pesi possono ora essere compresi solo tra 0 e 0 w_min_new=0*ones(1,3); %peso minimo 0 w_max_new=0.4*ones(1,3); %peso massimo 0.4 % Calcolo la frontiera efficiente con i nuovi vincoli [PRisk_new, PRoR_new, PWts] = NaiveMV(ExpRet, CovMat, w_min_new, w_max_new, NPts,1); PRisk_new,PRoR_new, PWts PRisk_new = 10×1 0.2592

4

0.2614 0.2667 0.2726 0.2790 0.2859 0.2932 0.3009 0.3089 0.3175 PRoR_new = 10×1 0.1320 0.1347 0.1373 0.1400 0.1427 0.1453 0.1480 0.1507 0.1533 0.1560 PWts = 10×3 0.3999 0.2001 0.3466 0.2534 0.3406 0.2791 0.3463 0.2980 0.3520 0.3169 0.3577 0.3358 0.3634 0.3547 0.3691 0.3736 0.3747 0.3925 0.4000 0.4000

0.4000 0.4000 0.3803 0.3557 0.3311 0.3065 0.2819 0.2573 0.2327 0.2000

figure() plot(PRisk,PRoR) % frontiera con vincolo sui pesi compresi tra 0 e 1 hold Current plot held

plot(PRisk_new,PRoR_new,'r-') % frontiera nuovi vincoli (pesi compresi tra 0 e 0.4) xlabel('Expected Risk') ylabel('Expected Return') title('Efficient Frontier') legend('0...


Similar Free PDFs