楼主: kungfc
10974 11

资产组合的最小方差线MATLAB计算函数及误差(转50悬赏贴) [推广有奖]

  • 1关注
  • 0粉丝

已卖:344份资源

本科生

87%

还不是VIP/贵宾

-

威望
0
论坛币
183 个
通用积分
32.9678
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
3631 点
帖子
83
精华
0
在线时间
142 小时
注册时间
2008-7-27
最后登录
2022-11-1

楼主
kungfc 发表于 2009-8-25 19:38:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
50论坛币略表谢意~

T:
考虑三个证券,其期望收益、收益的标准差和相关系数为:
μ1=0.10,σ1=0.28,ρ12=ρ21= -0.10
μ2=0.15,σ2=0.24,ρ23=ρ32=0.20
μ3=0.20,σ3=0.25,ρ31=ρ13=0.25
μ为期望收益率,σ为标准差,ρ为相关系数,等于协方差与标准差的积的比值。
计算其期望收益为μv之中方差最小的投资组合的权重矩阵w,及该组合的标准差。
这道题是《金融数学——金融工程引论》中资产组合管理章节的一个例题,使用最小方差线公式求解。
在实际计算中应用MATLAB计算的时候因为不熟悉金融工具箱中的函数,所以只好自己写了个函数,但是部分返回值与书中的数据相比千分位存在1单位的误差。各位高手熟悉金融工具箱的话有没有现成的函数解决这个问题?或者该函数该如何写才能保证其理论上的准确性呢?
其中书上的答案为:
各资产的权重矩阵w=[1.578-8.614*muv   0.845-2.769*muv  -1.422+11.384muv]
该资产组合的标准差σv=(0.237-2.885*muv+9.850*muv^2)^0.5
其中muv表示资产组合的期望收益。

计算遵守现代资产组合管理理论(Modern portfolio theory,详见:http://en.wikipedia.org/wiki/Modern_portfolio_theory)的计算方法。前给的链接中有该方法的完整数学表述。但对于最小方差线的计算使用如下化简后的矩阵表达式:(原式摘录)

  (Markowitz bullet)

u为ones(1,3)(对应于本题的三证券),C为协方差矩阵,及cij=Cov(Ki, Kj),可通过相关系数矩阵ρ求的。

问题想了两天了没找出原因。给出正式的函数,自己写的话如果数据符合的话传下.m文件吧~

悬赏贴地址:http://www.pinggu.org/bbs/viewthread.php?tid=533629&page=1&from^^uid=651132
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB atlab 最小方差线 matla 资产组合 MATLAB 最小方差线 资产组合管理

回帖推荐

irvingy 发表于8楼  查看完整内容

是书上的答案不够精确

本帖被以下文库推荐

No one's young anymore.

沙发
galilee 在职认证  发表于 2009-8-25 23:15:06
the difference is negligible.
You know numeric things are somehow elusive.
我的征途是星辰大海。

藤椅
hanceland 发表于 2009-8-26 17:05:27
MATLAB7.0 有专门函数:QUADPROG,即用二次规划求解资产组合。

板凳
kungfc 发表于 2009-8-27 17:08:24
3# hanceland

嗯,这个函数在求最小方差时没有问题,也要列出参数A,b,Aeq,beg显得多此一举了。有没有求形如f=x'*H*x最小值的简单形式呢?

可惜这个函数要求所有参数为double类型,不接受定义符号作为参数,还是不能在求最小方差线上用啊。。。
No one's young anymore.

报纸
kungfc 发表于 2009-8-27 17:09:00
2# galilee
kind of
No one's young anymore.

地板
yhongl12 发表于 2009-8-28 04:46:18
可惜QUADPROG不支持符合变量,如果muv是具体数值就好了。呵呵,没有如果啊。。。我任意取值muv=0.16带进去,PortWts =    0.1786     0.4428     0.3786  PortRisk =    0.0442  根据你给的结果表达式反求muv误差还是很大。
已有 1 人评分热心指数 收起 理由
kungfc + 1 多谢~

总评分: 热心指数 + 1   查看全部评分

the logic of finance

7
kungfc 发表于 2009-8-29 10:38:20
6# yhongl12

嗯,我用0.16的期望收益带进去的话结果是PortWts=[    0.1992     0.4016    0.3992 ],PortRisk=0.1671有千分之一的误差,好像不小心输入错数了吧。

我计算时的约束选择的是:
ΣPortWts<=1(因为A&b参数必选,我也不知道该用什么只好凑上去了。。。);
ΣPortWts=1
μ*PortWts'=muv
参数中的f只好用全零向量了。

克服不接受符号变量的一个思路可以用该算法求出3个点,再根据

做二次方程模型的回归,找出符合PortRisk^2的函数表达式就行了,不过这样做又会有哪些过程会出现误差...

因为自己的电脑坏了送去修,这些还没能验证...
No one's young anymore.

8
irvingy 发表于 2009-8-29 12:29:43
是书上的答案不够精确
已有 3 人评分经验 论坛币 学术水平 热心指数 收起 理由
见路不走 + 5 + 5 热心帮助其他会员
kungfc + 1 + 1 好~
yhongl12 + 1 + 1 厉害啊

总评分: 经验 + 5  论坛币 + 5  学术水平 + 2  热心指数 + 2   查看全部评分

9
yhongl12 发表于 2009-8-29 14:47:51
7# kungfc
[PortWts,PortRisk]=quadprog(H,f,[],[],Aeq,beq,[],[]) A和b取的默认值,无卖空限制
the logic of finance

10
kungfc 发表于 2009-8-29 15:57:06
8# irvingy

呵呵,看mathematica的语句也挺简洁的,符号运算的处理好像更灵活一些。当初课本附录里是MATLAB的例子就没有考虑其他软件了。。。或许是还不了解MATLAB的原因吧。。。

感谢您在7小时的上线时间里指点迷津~~
No one's young anymore.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-26 11:06