如何用matlab,frontcon函数画出有效市场边缘和资本市场线

既上一篇有效市场边缘的作图:http://blog.csdn.net/alanguoo/article/details/52905121

这次来说一下怎么在有效市场边缘上画出切线,即资本市场线,CAL ( capital market line )

同样地,两个资产期望收益率: 8%, 5%

风险,即标准差:25%, 20%

相关系数:0.925

这里主要用到 frontcon 这个函数,读者可以自行查阅该函数用法。

如何用matlab,frontcon函数画出有效市场边缘和资本市场线_第1张图片


代码如下:

ExpReturn = [.08, .05];
ExpRisk =[ .25, .2];
r0 = .02;
NumPorts = 100000;
corr = [1, 0.925; 0.925, 1];
cov = corr2cov(ExpRisk, corr);
[PortRisk, PortReturn, PortWts] = frontcon( ExpReturn, cov, NumPorts,[],[-15, -15;15, 15]);
SharpeRatio = (PortReturn - r0)./PortRisk;
[SR, index] = max(SharpeRatio);
h = figure; 
scatter(PortRisk, PortReturn,3, 'r','filled')

title('Mean-variance-efficient frontier');
xlabel('Risk(Standard deviation)');
ylabel('Expected return');
hold on;
plot([0, PortRisk(index)], [r0, PortReturn(index)], 'k');
text(PortRisk(index),PortReturn(index),{['Sharpe Ratio: ',num2str(SR)];['Return: ',...
    num2str(PortReturn(index))];['Risk: ',num2str(PortRisk(index))];['W1 = 9'];['W2 = -8']});
当然这里可以增加资产数,这样的画相关系数矩阵也随之扩大。 如果是4个资产,就需要4*4的相关系数矩阵

你可能感兴趣的:(Matlab)