用PYTHON优化投资组合的配置
用PYTHON优化投资组合的配置
文章目录
- 用PYTHON优化投资组合的配置
- 简介
- 1.引入库和数据
- 2.初步观察
- 3.计算收益率
- 4.计算基础参数
- 5.分析各项投资指标
- 6.做出有效前沿和资本市场线
- 7.优化资产最优比例
简介
本文运用马科维茨的CAPM理论对已有的ETF进行配置优化。详细的分析每一个 ETF的收益指标,综合考虑最近两年的收益率和波动率,通过计算这些参数,最终达到,一个优秀的配置比例使得波动小而收益高。
1.引入库和数据
首先导入用到的库。
然后导入ETF每天收盘价的数据。
各个ETF 的代号及名称:
SPY----标普500指数
PBW----清洁能源上市公司加强指数
AAPL----苹果公司股票
INDA----印度孟买交易所大中型股票指数
EQR----美国住宅租赁管理公司
GOVT----美国长期国债
GLD---- 黄金现货ETF
2.初步观察
模拟自2020年1月1日开始投资到现在的收益变动情况:就是假设那个在起点时间在每个ETF投入一块钱,到现在的市场价格。
PS:成长股(PBW)的波动太大了,跟利率的变动关系很大,在加息之前逃顶很重要。
3.计算收益率
使用对数公式计算每日收盘价格的收益率。
计算所有资产:
展示每个资产收益率的分布:
4.计算基础参数
近两年的年化平均收益率(2020年1月1日–2022年3月23日):
苹果公司牛逼!
协方差矩阵并(年化处理):
相关系数:
股票收益率的年化波动率:
5.分析各项投资指标
夏普比率:
Sortino ratio:
先计算下半方差:
再算Sortino比率:
计算特雷诺比率(Treynor ratio):
信息比率(IR):
6.做出有效前沿和资本市场线
根据ETF组合每日的收盘价和上面算出的基础数据,模拟各种可能的组合。在假设无风险利率Rf=2.5%时,做出有效前沿(efficient frontier)和资本市场线(Capital Market Line,简称CML),并算出最优的配置点。
7.优化资产最优比例
最终的投资组合是:
48.8%的资金投资苹果公司的股票,52.2%的资金投资于黄金现货,这样可以得到既高收益又低风险的投资组合。
投资组合年化收益24%,组合波动率21%。
用PYTHON优化投资组合的配置相关推荐
- Python 优化 回溯下降算法
原文链接: Python 优化 回溯下降算法 上一篇: windows Android sdk 配置 下一篇: iview 按需引入 使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴 ...
- RHEL/CentOS通用性能优化、安全配置参考
RHEL/CentOS通用性能优化.安全配置参考 本文的配置参数是笔者在实际生产环境中反复实践总结的结果,完全适用绝大多数通用的高负载.安全性要求的网络服务器环境.故可以放心使用. 若有异议,欢迎联系 ...
- vue webpack 访问php,实例详解vue-cli优化的webpack配置
最近的项目度过了开始忙碌的基建期,也慢慢轻松下来,准备记录一下自己最近webpack优化的措施,希望有温故知新的效果.本文主要介绍了详解基于vue-cli优化的webpack配置,小编觉得挺不错的,现 ...
- Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化
拿来主义: python -m cProfile -o profile.pstats to_profile.py gprof2dot -f pstats profile.pstats |dot -Tp ...
- python环境变量的配置_python基础教程-第一讲-带你进入python的世界
python是一门非常流行的语言,在前段时间网上流传的地产大佬潘石屹宣布要开始学习Python编程,这着实让python又火了一把,但确实反映出python的火热程度 .在2019年12月的世界编程语 ...
- Python获取电脑硬件配置的封装类,可以获取CPU序列号、主板序列号、BIOS序列号、硬盘序列号和网卡MAC地址
Python获取电脑硬件配置的封装类,可以获取CPU序列号.主板序列号.BIOS序列号.硬盘序列号和网卡MAC地址. myPyHardware.py # -*- coding: utf-8 -*- i ...
- Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)
转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问 对于可以静态化的页面,尽可能静态化 对一个动态页面中可以静态的局部,采用静态化 部分数据可以生成XML,或者文 ...
- python安装要什么配置_Python的安装和详细配置
Python是一种面向对象.解释型计算机程序设计语言.被认为是比较好的胶水语言.至于其他的,你可以去百度一下.本文仅介绍python的安装和配置,供刚入门的朋友快速搭建自己的学习和开发环境.本人欢迎大 ...
- mosek 安装配置python_Windows系统Python解释器的安装配置
视频讲解教程:Windows系统Python解释器的安装配置讲解视屏 Windows系统Python解释器的安装配置_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.co ...
- 从入门到入土:Python requests代理 proxy配置 HTTP
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
最新文章
- 1084 Broken Keyboard
- Line上半年扭亏为盈 用户及营收遇瓶颈
- 一个星期+4轮面试终拿下offer,极致干货
- acdream 1157Segments cdq分治
- 实践出真知之Spring Cloud之基于Eureka、Ribbon、Feign的真实案例
- mysql延迟复制实现
- 合成孔径成像算法与实现_(转)解读:为什么热成像测体温有时会显示35度以下?...
- java案例代码9-冒泡算法:
- 编写一个以C 语言为基础的DSP程序
- Spring Boot pom文件详解
- python入门到精通,一篇就够。40个python游戏经典开源项目(开源分享:俄罗斯方块、魂斗罗、植物大战僵尸、飞机大战、超级玛丽...)
- 明解C语言(第3版)入门篇-【部分】第五章练习题解(练习5-9至5-12)
- 【58同城和赶集网简历下载获取】
- sql语句动态拼接多个查询条件查询数据库
- 教师资格综合素质知识要点记录
- 如何减少block的数量?也就是减小Namenode的内存压力?
- 相机照片大小设置_我应该为运动照片使用哪些相机设置?
- python爬虫获取服务器信息,通过python自动化获取服务器信息,并写入到excel(示例代码)...
- Stanford CS224n 第一讲:深度自然语言处理
- 微信投票系统源码--微信投票系统开发功能介绍以及源码分享