现代投资组合理论python实现
什么是现代资产组合理论
现代资产组合理论(Modern Portfolio Theory,简称MPT),由马柯维茨提出,也有人将其称为现代证券投资组合理论、证券组合理论或投资分散理论。是将概率论和线性代数的方法应用于证券投资组合的研究,探讨了不同类别的、运动方向各异的证券之间的内在相关性,并于1959年出版了《证券组合选择》一书,详细论述了证券组合的基本原理,从而为现代西方证券投资理论奠定了基础。
现代资产组合理论的内容
Markowitzd(1952)利用单个证券收益率的方差衡量单个证券的风险,利用单个证券收益率的方差和与其他证券收益率的协方差来衡量证券组合的风险,并建立最小方差模型,用来确定证券的最优组合,即下图中曲线abc上的任意一点,这样的组合称为前沿证券组合,所有的前沿证券组合的集合构成的证券组合前沿,即下图中曲线abc。同时满足风险水平一定时收益最高、收益一定时风险最小条件的前沿证券组合为有效证券组合,即下图中曲线bc上任一点。所有有效证券组合的集合构成有效证券前沿。
现代资产组合理论的实践
一、大类资产确定
根据市场风险,主要来自利率风险、通胀风险和信用风险,和组合理论思想,选择股票,债券、和黄金3大类,房地产暂不考虑。
股票选择A股的权重股上证50作为大盘股,易方达中小盘作为中小盘股,美股标普500作为外盘分散投资,债券选择最近比较火的招商产业A(信用风险比较大,但是纯利率债收益又低),和易方达黄金作为商品投资。
其中股票和债券有跷跷板效应,债券对冲股票下行风险,黄金对冲高通胀风险,易方达中小盘防大小盘风格轮换。
二、历史波动率和收益率统计
防止使用未来数据的收益率和波动率,统计日期截止到2013年11月29日
基金编码 |
基金名称 |
成立时间 |
资产大类 | 收益(年化) |
波动率(年化) |
510050.OF |
华夏上证50ETF |
2004-12-30 |
A股股权 |
0.1031 |
0.2463 |
050025.OF |
博时标普500ETF联接A |
2012-06-14 |
美股股权 |
0.09096873 |
0.18565612 |
159934.OF |
易方达黄金ETF |
2013-11-29 |
黄金 |
0.059189 |
0.1081 |
110011.OF |
易方达中小盘 |
2008-06-19 |
股权 |
0.180951 |
0.2272 |
217022.OF |
招商产业A |
2013-11-29 |
债券 |
0.081229 |
0.0221 |
三、相关系数矩阵确定与有效前沿计算
并且为了应对市场相关性变化等因素,设置1年进行调仓一次,根据前3年年化波形率和相关系数矩阵重新计算协方差
范围 |
年化波动率 |
相关系数矩阵 |
计算有效前沿 |
201312-20161201 | |||
201412-20171201 |
|||
201512-20181201 |
|||
201612-20191201 |
四、历史回测
回测使用2013年12月到2019年底的行情数据,持仓一年进行一次调仓。
目标收益 |
调仓时间和比例 按照【510050,050025,159934,110011,217022】顺序,单位% |
回测结果 |
9% |
2016-12 [0, 0, 5, 10,85] 即【510050=0%,050025=0%,159934=5%,110011=10%,217022=85%】 2017-12 [0, 0, 4, 10,86] 2018-12 [0, 0, 8.5, 10,81.5] 2019-12 [0,0,0,8.8,91.2] |
|
10% |
2016-12 [0, 0, 4, 20,76] 2017-12 [0, 0, 2, 20,78] 2018-12 [0, 0, 12, 21,67] 2019-12 [0,0,0,19,81] |
|
11% |
2016-12 [0, 0, 3, 30,67] 2017-12 [0, 0, 0, 28,72] 2018-12 [0, 0, 16, 32,52] 2019-12 [0,0,0,29,71] |
结论:回测结果基本符合预期,使投资者避免买高站岗的风险,不用担心踏空与机遇失之交臂,策略适合定投。但是存在没有占比的资产,导致风险过于集中,可以设置最小占比方式解决问题。
存在问题
1、资产选择存在问题,易方达中小盘有风格偏移现象,可以用中证500替换
2、预期收益率使用历史收益率存在难以确定问题,会导致整体组合比例严重变化
3、存在个别资产没有占比问题,由于个别资产收益较高,风险低,且相关性较大导致
4、相关性、历史波动,收益率都是历史值,不代表未来,需要建立在历史重演的基础上
5、调仓使用近年的相关性,带有趋势跟踪性质,容易追涨杀跌
现代投资组合理论python实现相关推荐
- 马科维茨模型 matlab,马科维茨投资组合理论(均方模型)学习笔记——基于Matlab(四)...
这是本阶段最后一次学习马科维茨投资组合理论的软件实现. 一.创建投资组合 %模拟N种资产的收益率mu=[10 20 30 50 60 90 120];sigma=[0.06 0.01 0.2 0.8 ...
- 西方投资组合理论及其新发展综述
西方投资组合理论及其新发展综述 投资组合理论有狭义和广义之分.狭义的投资组合理论指的是马柯维茨投资组合理论:而广义的投资组合理论除了经典的投资组理论以及该理论的各种替代投资组合理论外,还包括由资本资产 ...
- R语言Markowitz马克维茨投资组合理论分析和可视化
最近我们被客户要求撰写关于投资组合理论的研究报告,包括一些图形和统计输出. 之前我们在关于投资组合优化相关的内容中已经看到了Markowitz的理论,其中给出了预期收益和协方差矩阵 > pzoo ...
- 马科维茨投资组合理论(均方模型)学习笔记——基于Matlab(四)
这是本阶段最后一次学习马科维茨投资组合理论的软件实现. 一.创建投资组合 %模拟N种资产的收益率 mu=[10 20 30 50 60 90 120];sigma=[0.06 0.01 0.2 0.8 ...
- python画资本市场线_【投资组合理论】Python绘制上证50成分股有效前沿和CML
马科维茨有效前沿是经典的资产配置模型,对于给定收益率,有效前沿上的投资组合风险最小. 初学时,感觉绘制有效前沿是个极其有难度的事情,基本不可能完成.后来学了Python的一些数值计算方法,才感觉用程序 ...
- 模拟退火算法理论+Python解决函数极值+C++实现解决TSP问题
简述 算法设计课这周的作业: 赶紧写了先,不然搞不完了. 文章目录 简述 算法理论部分 变量简单分析 从状态转移概率到状态概率 推导 理解当温度收敛到接近0的时候,收敛到结果 理论部分的后记 pyth ...
- NLP 中文分词-双向匹配算法(理论+Python实现)
一.理论描述 1.中文分词的概念: 是指把没有明显分界标志的字串切分为词串,包括标点符号.数字.数学符号.各种标记.人名.地名.机构名等未登录词的识别.汉语自动分词主要包括:(1)根据分词规范,建立机 ...
- 马科维茨投资组合理论(均方模型)学习笔记——基于Matlab(二)
马科维兹投资理论,即均方模型,是一种投资组合选择理论,其基本内容是:在不存在无风险借贷的假设下,基于资产组合个别股票收益率的均值和方差找出投资组合的有效前沿边界,投资者在有效前沿上配置资产组合时为一定 ...
- 计算机理论python字符串作业_[Python基础 ] Day_07_作业参考答案
'''''' ''' 基础题 ''' # 1.已知字符串:"this is a test of Python" # a.统计该字符串中字母s出现的次数 # b.取出子字符串&quo ...
- python平均入门时间_理论+Python代码详解:入门时间序列分类
对时间序列进行分类?这真的有可能吗?这会有什么用呢? 我们接触的大多数时间序列数据主要涉及产生预测的交易.无论是预测产品的需求还是销售额,航空公司的乘客数量或特定股票的收盘价,我们都习惯于利用久经考验 ...
最新文章
- 详细解析ASP.NET中Request接收参数乱码原理
- 最长公共子序列LCS[C++题解]
- 求出100~200之间的素数
- 管理之善,在于让员工有机会试错
- 关于python语言的编程模式、哪个说法正确_测验1: Python基本语法元素 (第1周) 单选题+程序题...
- 【BZOJ3514】Codechef MARCH14 GERALD07加强版,LCT+主席树
- Promise--优雅的异步回调解决方案
- PHP什么函数获取日期,php getdate()函数获取日期信息实例详解
- 各种数据库默认端口汇集
- 单服务器高性能:PPC、TPC、epoll、Reactor、Proactor
- 恩尼格玛机(字母转换,水题)
- mysql bin_mysql-bin是什么文件?
- 网址缩短 php 安装包,PHP长链接网址缩短防封短网址短链接生成平台整站源码(一键安装)...
- java word编辑_java实现word在线编辑及流转
- Go语言获取中文及其他非英语字符长度
- 卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)...
- 点击图片显示图片放大的弹窗
- java eles什么意思_Springboot 那么大,不用什么场景都用它吧,要不尝试下 Mars- Java ?...
- GIS原理篇 terrain 基于TIN的表面数据(地形数据)
- 如何用ArcGIS绘制白杨市范围
热门文章
- webpack 图片压缩
- 路由器 android 打印机,用路由器将普通打印机变成网络打印机
- TR转TO L_TO_CREATE_TR
- 网络安全与渗透:sql注入,一文详解(九)此生无悔入华夏,男儿何不带吴钩
- 【免费通配符 SSL证书 (支持 IP) 申请教程】
- mysql 分组查询 语句_MySQL分组查询
- k线形态python_Python量化分析之K线模式识别
- 数学竞赛书单该怎么选?金牌牛娃用的书都在这里了!
- shell脚本中set -e作用
- 亚马逊测评日记: 亚马逊自养号是什么意思?测评的风险?review和feedback、rating星级评分的区别?