Chapter 7

马科维茨投资组合理论

问题描述

即对以下问题求解:

Max:U=E(r)−12Aσ2

Max: U=E(r)-\frac{1}{2}A\sigma^2
s.t.s.t.

∑iωi=1

\sum_i\omega_i=1

不考虑做空的情况下,加一条限制条件ωi>0\omega_i>0

目标函数及约束条件中:

E(r)=∑iωiE(ri)σ2=ω⃗ TCω⃗ 

E(r)=\sum_i\omega_iE(r_i)\\ \sigma^2=\vec{\omega}^T C \vec{\omega}

注:

AA为个人投资者的风险厌恶度,ωi\omega_i为每种资产的配置比例,ω⃗ \vec{\omega}为各资产配置比例列向量,CC为各资产rir_i的协方差矩阵,是一个实对称方阵。

问题分解

可以直接将资产不区分无风险资产和有风险资产,代入所有已知条件求UmaxU_{max}及对应的ω⃗ \vec{\omega}。

但也可以将问题分解,首先考虑风险资产的配置比例问题,然后再考虑无风险资产与风险资产的配置比例问题。

Step 1 风险资产的内部配置对应的E−σE-\sigma可行域及边界曲线

现在假设投资仅限于风险资产(且不做空):

  • 当只有2种风险资产组合时,不同配置比例下的E(r)−σ(r)E(r)-\sigma(r)可行域为一条曲线

  • 当有多于2种风险资产组合时,不同配置比例下的E(r)−σ(r)E(r)-\sigma(r)可行域为一个二维有界区域 Σ\Sigma。其左上部分边界为一条上凸曲线f(E,σ)=0f(E,\sigma)=0,为需要求的边界曲线,称为有效前沿

具体如何求Σ\Sigma的左上部分边界曲线,即为以下问题

Min:σ2=ωTCω

Min: \sigma^2={\omega}^T C {\omega}
s.t.s.t.

E=∑iωiRi∈[E(rmin),E(rmax)]∑iωi=1

E=\sum_i\omega_iR_i\in[E(r_{min}),E(r_{max})]\\ \sum_i\omega_i=1

不考虑做空的情况下,加一条限制条件ωi>0\omega_i>0

注:
A为个人投资者的风险厌恶度,ωi\omega_i为每种风险资产的配置比例,ω{\omega}为各风险资产配置比例列向量,RR为各风险资产的预期收益率,C为各风险资产rir_i间的协方差矩阵,是一个实对称方阵,E为区间内某个可能值,遍历所有可能的E即可得到所求边界曲线

上述等式约束条件的二次型问题可以用拉格朗日乘子法求解,问题变为:

L(ω)=ωTCω+λ1(E−RTω)+λ2(1−ωTI0))∇ωL(ω,λ)=0∇λL(ω,λ)=0

L(\omega)=\omega^TC\omega+\lambda_1(E-R^T\omega)+\lambda_2(1-\omega^TI_0))\\\nabla_{\omega}L(\omega,\lambda)=0\\\nabla_{\lambda}L(\omega,\lambda)=0

求解∇ωL(ω)\nabla_{\omega}L(\omega):

=∇ωTr(L(ω))=\nabla_{\omega}Tr(L(\omega))
=∇ωTr(ωωTC)−λ1∇ωTr(ωTE)−λ2∇ωTr(ωTI0)=\nabla_{\omega}Tr(\omega\omega^TC)-\lambda_1\nabla_{\omega} Tr(\omega^TE)-\lambda_2\nabla_{\omega}Tr(\omega^TI_0)
=∇ωTr(ωIωTC)−λ1E−λ2I0=\nabla_{\omega}Tr(\omega I\omega^TC)-\lambda_1 E-\lambda_2I_0
=Cω+CTω−λ1E−λ2I0=C\omega+C^T\omega-\lambda_1 E-\lambda_2I_0
=2Cω−λ1E−λ2I0=0=2C\omega-\lambda_1 E-\lambda_2I_0=0

若CC可逆,则ω=12C−1(λ1E+λ2I0)\omega=\frac{1}{2}C^{-1}(\lambda_1 E+\lambda_2 I_0),结合两个约束条件即可得λ1\lambda_1与λ2\lambda_2,求得ω\omega。

Step 2 无风险资产与风险资产的配置比例求解

∀(E,σ)∈Σ\forall (E,\sigma)\in\Sigma,均可作为一个可行解,我们从Σ\Sigma中任取一点(Ep,σp)(E_p,\sigma_p),其对应的配置比例为ω⃗ p\vec{\omega}_p。

下面,考虑该内部配置为ω⃗ p\vec{\omega}_p,预期收益为EpE_p,标准差为σp\sigma_p的风险资产与无风险资产的配置问题。

从Chapter 6 中可以知道,效用函数取最大值UpU_p时,效用无差异曲线与资本配置线相切,且UpU_p随着资本配置线的夏普比率SS增大而增大。

证明:

U=E−12Aσ2⇒U=Ef+y(Ep−Ef)−12Aσ2py2⇒最大值Up=(Ep−Ef)22Aσ2p+Ef=S22A+Ef

U=E-\frac{1}{2}A\sigma^2\\ \Rightarrow U=E_f+y(E_p-E_f)-\frac{1}{2}A\sigma_p^2y^2\\ \Rightarrow 最大值U_p=\frac{(E_p-E_f)^2}{2A\sigma_p^2}+E_f=\frac{S^2}{2A}+E_f

进一步考虑,什么样的(Ep,σp)(E_p,\sigma_p)会使UpU_p取最大值。通过图像可知,与Σ\Sigma左上边界线相切的资本配置线有着最大的SS值,因而对应着Up,maxU_{p,max},此时的配置比例即为最优配置。

马科维茨投资组合理论相关推荐

  1. 马科维茨模型 matlab,马科维茨投资组合理论(均方模型)学习笔记——基于Matlab(四)...

    这是本阶段最后一次学习马科维茨投资组合理论的软件实现. 一.创建投资组合 %模拟N种资产的收益率mu=[10 20 30 50 60 90 120];sigma=[0.06 0.01 0.2 0.8 ...

  2. 马科维茨投资组合理论(均方模型)学习笔记——基于Matlab(四)

    这是本阶段最后一次学习马科维茨投资组合理论的软件实现. 一.创建投资组合 %模拟N种资产的收益率 mu=[10 20 30 50 60 90 120];sigma=[0.06 0.01 0.2 0.8 ...

  3. 马科维茨投资组合理论(均方模型)学习笔记——基于Matlab(二)

    马科维兹投资理论,即均方模型,是一种投资组合选择理论,其基本内容是:在不存在无风险借贷的假设下,基于资产组合个别股票收益率的均值和方差找出投资组合的有效前沿边界,投资者在有效前沿上配置资产组合时为一定 ...

  4. 八、马科维茨投资组合

    @Author:Runsen 文章目录 马科维茨投资组合 标准差计算 实战 马科维茨投资组合 美国经济学家马科维茨(Markowitz)1952年首次提出投资组合理论(Portfolio Theory ...

  5. python n个list如何组成矩阵_如何用马科维茨投资组合优化法和现代资产组合理论生成交易策略?...

    全文共6852字,预计学习时长14分钟 图源:pixabay 本文旨在展示如何用马科维茨(Markowitz)的投资组合优化法和现代资产组合理论(MPT)来生成交易策略. 本文首先对均值-方差优化法进 ...

  6. 利用python构建马科维茨_使用CVXOPT包实现马科维茨投资组合优化

    在真实股票市场的回测 上面的例子特别有趣但不是很适用. 接下来,我们将演示如何在BigQuant中创建一个策略. 本实验的目的是验证在一个买入固定5只股票的多头组合,利用马科维茨组合优化确定的投资组合 ...

  7. 西方投资组合理论及其新发展综述

    西方投资组合理论及其新发展综述 投资组合理论有狭义和广义之分.狭义的投资组合理论指的是马柯维茨投资组合理论:而广义的投资组合理论除了经典的投资组理论以及该理论的各种替代投资组合理论外,还包括由资本资产 ...

  8. R语言Markowitz马克维茨投资组合理论分析和可视化

    最近我们被客户要求撰写关于投资组合理论的研究报告,包括一些图形和统计输出. 之前我们在关于投资组合优化相关的内容中已经看到了Markowitz的理论,其中给出了预期收益和协方差矩阵 > pzoo ...

  9. [量化学院]使用cvxopt包实现马科维茨投资组合优化:以一个股票策略为例

    实现平台:BigQuant-人工智能量化投资平台 可在文末前往原文一键克隆代码进行进一步研究 介绍 前文中,我们已介绍了许多量化投资思想,在这篇文章中,你将了解Markowitz投资组合优化的基本思想 ...

  10. python画资本市场线_【投资组合理论】Python绘制上证50成分股有效前沿和CML

    马科维茨有效前沿是经典的资产配置模型,对于给定收益率,有效前沿上的投资组合风险最小. 初学时,感觉绘制有效前沿是个极其有难度的事情,基本不可能完成.后来学了Python的一些数值计算方法,才感觉用程序 ...

最新文章

  1. Lucene 学习笔记(一)
  2. mysql主从数据库怎么还口令,mysql数据库主从同步方法讲解
  3. 【django】配置前端静态文件【6】
  4. C++ 友元(友元函数和友元类)
  5. java变量访问权限_JAVA成员变量的访问权限
  6. Outlook通过RPC/RPC Over HTTPS访问Exchange邮箱
  7. Hiberate--one to many
  8. mysql begin end 用法_MySQL ------ 游标(CURSOR)(二十六)
  9. python列表、字典、元组的用法及区别_python列表,字典,元组简单用法示例
  10. 1个月时间整理了2019年上千道Java面试题,近500页文档!
  11. 【报告分享】2019移动互联网行业报告暨无监督机器学习下的2019行业价值人群聚类报告.pdf...
  12. 如何让开关打开_汽车油箱盖如何打开?老司机:不外乎这三种方式
  13. 从Word2Vec到Bert,聊聊词向量的前世今生(一)
  14. 智能优化算法:蜜獾算法-附代码
  15. 企业外贸网站建设的要求及注意事项
  16. HTML入门(学习方法+概述)
  17. Windows 下设置开机启动项
  18. 基于java拼图游戏(带文档)
  19. 获取iOS设备UDID的方法
  20. 封装自己的js库(二)---仿照JQuery

热门文章

  1. 一套SCDM脚本建模与二次开发攻略
  2. 新路由3详细刷机教程
  3. excel下拉列表多选框_移动Excel列表框项目
  4. 华硕笔记本bios设置u盘启动
  5. win10 修改电脑密码 取消登录密码
  6. 深蓝学院 浙江大学免费开源课程 !
  7. 【JAVA】从0开始写DHT/磁力爬虫 05 INFOHASH转种子
  8. C#编写的通过汉字得到拼音和五笔码
  9. 货币兑换java程序,Spring Cloud货币换算及货币兑换服务介绍
  10. 在HTML列表入图片怎么变小,科技常识:html如何把图片大小变小