楼主: 离歌レ笑
21569 12

[讨论交流] Markowitz投资组合有效边界的实现——基于Matlab的实例分析 [推广有奖]

贵宾

学术权威

33%

还不是VIP/贵宾

-

TA的文库  其他...

离歌||量化投资理论与实战

威望
5
论坛币
2344533 个
通用积分
2941.9298
学术水平
2218 点
热心指数
2152 点
信用等级
2061 点
经验
110991 点
帖子
1491
精华
44
在线时间
3283 小时
注册时间
2013-6-12
最后登录
2024-2-22

初级热心勋章 初级信用勋章 初级学术勋章 中级学术勋章 中级热心勋章 中级信用勋章 高级学术勋章 高级热心勋章 高级信用勋章 特级学术勋章 特级信用勋章

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
在Markowitz投资组合中,是用n种资产来构建的投资组合,为了简单起见,我用了5只股票,其实道理是一样的。

首先说说数据选取:

5只港股,中国电信、中国平安、中国石油、中国银行和中信证券,是从2014年10月到2015年10月一年的数据。

得到数据之后首先算好一些基本的东西:

屏幕快照 2015-12-16 下午6.05.51.png




然后利用Matlab进行计算:

Matlab金融工具箱里面有portopt函数,是专门计算有效边界值的。我大概粗略地想了一下这个问题是一个二次规划的问题,相当于在一个闭区间内,对于每一个给定的期望收益率,求出其对应的最小方差(或标准差)。方差是目标函数,是一个以权重为变量的二次函数。一般来讲求出10个点就能画出大致的边界图。当然如果还要限制其他条件,比如权重有区间范围还要另外加。但总体来讲思路是清晰的。

下面就直接使用portopt函数:


基本语法是,


[PortRisk, PortReturn, PortWts] = portopt(ExpReturn, ExpCovariance, NumPorts, PortReturn, ConSet, varargin)


PortRisk是资产组合的标准差,PortReturn是资产组合的收益率, PortWts是n种资产的权重;
ExpReturn是每种资产的预期收益率,ExpCovariance是资产的协方差矩阵,NumPorts是求出的点的个数(默认值是10), ConSet是其他约束条件(权重范围)


显然,套用该函数[PortRisk,PortReturn,PortWts]=portopt(ExpReturn,ExpCovariance,10),就能得到结果:


(ExpReturn,ExpCovariance均从上面的表格来)


PortRisk =


   0.0174

   0.0174

   0.0176

   0.0178

   0.0183

   0.0191

   0.0201

   0.0214

   0.0228

   0.0245



PortReturn =


   0.0002

   0.0004

   0.0005

   0.0007

   0.0009

   0.0011

   0.0013

   0.0015

   0.0017

   0.0019



PortWts =


   0.3400    0.1200    0.1800   0.3600         0

   0.3291    0.1690    0.1128   0.3890         0

   0.3182    0.2180    0.0457   0.4181         0

   0.2895    0.2859         0   0.4246         0

   0.2231    0.3937         0   0.3832         0

   0.1566    0.5015         0   0.3419         0

   0.0901    0.6093         0   0.3005         0

   0.0237    0.7171         0   0.2592         0

         0   0.8513         0    0.1487         0

        0    1.0000         0         0         0


然后用前面两个矩阵作图(事实上作图的时候我用的100个点):


屏幕快照 2015-12-16 下午6.33.58.png


OK,问题就解决了。

如果想了解得更详细请用help portopt和edit portopt查看。

二维码

扫码加我 拉你入群

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

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

关键词:Markowitz MATLAB matla atlab 有效边界 投资组合

已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
jiandong4388 + 100 精彩帖子
日新少年 + 3 + 3 + 3 精彩帖子
fantuanxiaot + 66 + 66 精彩帖子

总评分: 经验 + 166  论坛币 + 66  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

本帖被以下文库推荐

沙发
Crsky7 发表于 2015-12-16 21:40:34 |只看作者 |坛友微信交流群
居然还有这个函数MD老子以前都是自己编的

使用道具

藤椅
离歌レ笑 在职认证  发表于 2015-12-16 22:22:44 |只看作者 |坛友微信交流群
Crsky7 发表于 2015-12-16 21:40
居然还有这个函数MD老子以前都是自己编的
666,厉害啊!

使用道具

板凳
Crsky7 发表于 2015-12-16 22:37:31 |只看作者 |坛友微信交流群
离歌レ笑 发表于 2015-12-16 22:22
666,厉害啊!
没啥厉害的,我离饭团还有很大的差距

使用道具

报纸
myidman 在职认证  发表于 2015-12-17 09:54:46 |只看作者 |坛友微信交流群
楼主介绍的好函数!省了好多事,哈哈

使用道具

地板
日新少年 学生认证  发表于 2016-1-4 00:16:16 |只看作者 |坛友微信交流群
Matlab 小白 前来学习

使用道具

7
离歌レ笑 在职认证  发表于 2016-1-4 09:43:52 |只看作者 |坛友微信交流群
日新少年 发表于 2016-1-4 00:16
Matlab 小白 前来学习
你太谦虚了!

使用道具

8
cnfish83 发表于 2017-6-16 14:31:54 |只看作者 |坛友微信交流群
请问求有效边际的时候能设置初始权重么,还有一个问题,他求出的组合权重是唯一的么

使用道具

9
jiandong4388 学生认证  发表于 2017-6-21 00:31:32 来自手机 |只看作者 |坛友微信交流群
用R语言能不能试一下哈

使用道具

10
张生12 发表于 2018-4-7 14:22:02 |只看作者 |坛友微信交流群
请问画出有效边界之后,如何在matlab中划出CML线,并知道CML与有效边界的切点

使用道具

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

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 18:19