如何用matlab画出有效市场边缘
2016-10-23 22:56
387 查看
本文介绍如何利用matlab画出两个资产的有效边缘 (efficient frontier )
假设两项资产的期望收益率为 mu1 = 8%, mu2 = 5%
收益率方差为 sigma1 = 25%, sigma2 = 20%
分别画出两项资产相关系数rho = [1, 0.925, 0, -0.5, -1] 的efficcient frontier
先放上效果图:
代码如下:
<span style="font-family:Courier New;font-size:12px;">mu1 = .08; mu2 = .05;
sigma1 = .25; sigma2 = .2;
r0 = .02;
w1 = rand(1,100000)*10;
w2 = 1-w1;
wts1 = [w1,w2];
wts2 = [w2,w1];
mu = [mu1; mu2]; w = [wts1; wts2];
rho = [1, 0.925, 0, -0.5, -1];
col = ['y','b','r','g','k'];
h = figure;
axis([0,0.4,0,0.15])
hold all
for n = 1:length(rho)
cov = [sigma1^2, rho(n)*sigma1*sigma2; rho(n)*sigma1*sigma2, sigma2^2];
% 这里生成协方差矩阵其实也可以用corr2cov这个函数
ret = mu'*w;
var = zeros(size(w1));
for i = 1:size(w,2)
var(i) = w(:,i)'*cov*w(:,i);
end
scatter(sqrt(var),ret,3, col(n),'filled');
end
title('Expected Returns Against Standard Deviations');
legend('rho = 1', 'rho = 0.925', 'rho = 0', 'rho = -0.5', 'rho = 1','Location','northwest');
xlabel('Standard deviation');
ylabel('Expected return');</span>
假设两项资产的期望收益率为 mu1 = 8%, mu2 = 5%
收益率方差为 sigma1 = 25%, sigma2 = 20%
分别画出两项资产相关系数rho = [1, 0.925, 0, -0.5, -1] 的efficcient frontier
先放上效果图:
代码如下:
<span style="font-family:Courier New;font-size:12px;">mu1 = .08; mu2 = .05;
sigma1 = .25; sigma2 = .2;
r0 = .02;
w1 = rand(1,100000)*10;
w2 = 1-w1;
wts1 = [w1,w2];
wts2 = [w2,w1];
mu = [mu1; mu2]; w = [wts1; wts2];
rho = [1, 0.925, 0, -0.5, -1];
col = ['y','b','r','g','k'];
h = figure;
axis([0,0.4,0,0.15])
hold all
for n = 1:length(rho)
cov = [sigma1^2, rho(n)*sigma1*sigma2; rho(n)*sigma1*sigma2, sigma2^2];
% 这里生成协方差矩阵其实也可以用corr2cov这个函数
ret = mu'*w;
var = zeros(size(w1));
for i = 1:size(w,2)
var(i) = w(:,i)'*cov*w(:,i);
end
scatter(sqrt(var),ret,3, col(n),'filled');
end
title('Expected Returns Against Standard Deviations');
legend('rho = 1', 'rho = 0.925', 'rho = 0', 'rho = -0.5', 'rho = 1','Location','northwest');
xlabel('Standard deviation');
ylabel('Expected return');</span>
相关文章推荐
- 如何用matlab,frontcon函数画出有效市场边缘和资本市场线
- 星河互联CEO傅淼亮相硅谷高创会:美国的初创企业如何有效地进入中国市场
- matlab如何在命令窗口显示多位有效数值
- matlab如何设定符号运算的有效位数
- 如何有效的使用对话框
- 如何有效的使用对话框之二
- 如何有效的保护JAVA程序 (转)
- 如何有效的保护自己的手机被盗?
- 如何有效的使用对话框之二
- 如何有效的使用对话框之二
- 如何实施有效的奖励,增进个人和团队的尽职度
- 如何有效地使用函数select()
- .NET如何去争夺高端市场?
- 管理人员如何有效应用表扬与批评进行反馈
- 如何有效的使用C#读取文件 (转)
- 管理人员如何有效应用表扬与批评进行反馈
- 一个美国留学生的忠告:如何与老外有效交流
- 如何创建一个有效的连接字符串
- (论坛答疑点滴)如何判断链接是否有效并且如果有效的话得到源代码
- 如何有效的使用对话框之二