用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优化投资组合的配置相关推荐

  1. Python 优化 回溯下降算法

    原文链接: Python 优化 回溯下降算法 上一篇: windows Android sdk 配置 下一篇: iview 按需引入 使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴 ...

  2. RHEL/CentOS通用性能优化、安全配置参考

    RHEL/CentOS通用性能优化.安全配置参考 本文的配置参数是笔者在实际生产环境中反复实践总结的结果,完全适用绝大多数通用的高负载.安全性要求的网络服务器环境.故可以放心使用. 若有异议,欢迎联系 ...

  3. vue webpack 访问php,实例详解vue-cli优化的webpack配置

    最近的项目度过了开始忙碌的基建期,也慢慢轻松下来,准备记录一下自己最近webpack优化的措施,希望有温故知新的效果.本文主要介绍了详解基于vue-cli优化的webpack配置,小编觉得挺不错的,现 ...

  4. Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化

    拿来主义: python -m cProfile -o profile.pstats to_profile.py gprof2dot -f pstats profile.pstats |dot -Tp ...

  5. python环境变量的配置_python基础教程-第一讲-带你进入python的世界

    python是一门非常流行的语言,在前段时间网上流传的地产大佬潘石屹宣布要开始学习Python编程,这着实让python又火了一把,但确实反映出python的火热程度 .在2019年12月的世界编程语 ...

  6. Python获取电脑硬件配置的封装类,可以获取CPU序列号、主板序列号、BIOS序列号、硬盘序列号和网卡MAC地址

    Python获取电脑硬件配置的封装类,可以获取CPU序列号.主板序列号.BIOS序列号.硬盘序列号和网卡MAC地址. myPyHardware.py # -*- coding: utf-8 -*- i ...

  7. Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)

    转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问 对于可以静态化的页面,尽可能静态化 对一个动态页面中可以静态的局部,采用静态化 部分数据可以生成XML,或者文 ...

  8. python安装要什么配置_Python的安装和详细配置

    Python是一种面向对象.解释型计算机程序设计语言.被认为是比较好的胶水语言.至于其他的,你可以去百度一下.本文仅介绍python的安装和配置,供刚入门的朋友快速搭建自己的学习和开发环境.本人欢迎大 ...

  9. mosek 安装配置python_Windows系统Python解释器的安装配置

    视频讲解教程:Windows系统Python解释器的安装配置讲解视屏 Windows系统Python解释器的安装配置_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.co ...

  10. 从入门到入土:Python requests代理 proxy配置 HTTP

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

最新文章

  1. 1084 Broken Keyboard
  2. Line上半年扭亏为盈 用户及营收遇瓶颈
  3. 一个星期+4轮面试终拿下offer,极致干货
  4. acdream 1157Segments cdq分治
  5. 实践出真知之Spring Cloud之基于Eureka、Ribbon、Feign的真实案例
  6. mysql延迟复制实现
  7. 合成孔径成像算法与实现_(转)解读:为什么热成像测体温有时会显示35度以下?...
  8. java案例代码9-冒泡算法:
  9. 编写一个以C 语言为基础的DSP程序
  10. Spring Boot pom文件详解
  11. python入门到精通,一篇就够。40个python游戏经典开源项目(开源分享:俄罗斯方块、魂斗罗、植物大战僵尸、飞机大战、超级玛丽...)
  12. 明解C语言(第3版)入门篇-【部分】第五章练习题解(练习5-9至5-12)
  13. 【58同城和赶集网简历下载获取】
  14. sql语句动态拼接多个查询条件查询数据库
  15. 教师资格综合素质知识要点记录
  16. 如何减少block的数量?也就是减小Namenode的内存压力?
  17. 相机照片大小设置_我应该为运动照片使用哪些相机设置?
  18. python爬虫获取服务器信息,通过python自动化获取服务器信息,并写入到excel(示例代码)...
  19. Stanford CS224n 第一讲:深度自然语言处理
  20. 微信投票系统源码--微信投票系统开发功能介绍以及源码分享

热门文章

  1. 如何解决md打不开问题?
  2. 以太网的CSMA/CD协议
  3. linux zip分卷压缩解压命令
  4. repo命令无法从gooole的网站下载问题解决办法
  5. ARM9和STM32什么关系?
  6. css设置单行文本超出部分点点点、多行文本超出部分点点点(两种方法)/解决多行 数字不换行问题。
  7. 致敬柳传志三网合一的佳沃品牌之路
  8. 互联网大数据项目汇报计划书PPT模板
  9. 基于python提火车票信息_python3.X 抓取火车票信息【修正版】
  10. 网站优化关键词密度多少才是最合适的?