马柯维茨均值-方差模型
在丰富的金融投资理论中,组合投资理论占有非常重要的地位,金融产品本质上各种金融工具的组合。现代投资组合理论试图解释获得最大投资收益与避免过分风险之间的基本权衡关系,也就是说投资者将不同的投资品种按一定的比例组合在一起作为投资对象,以达到在保证预定收益率的前提下把风险降到最小或者在一定风险的前提下使收益率最大。
从历史发展看,投资者很早就认识到了分散地将资金进行投资可以降低投资风险,扩大投资收益。但是第一个对此问题做出实质性分析的是美国经济学家马柯维茨(Markowitz)以及他所创立的马柯维茨的资产组合理论。1952年马柯维茨发表了《证券组合选择》,标志着证券组合理论的正式诞生。马柯维茨根据每一种证券的预期收益率、方差和所有证券间的协方差矩阵,得到证券组合的有效边界,再根据投资者的效用无差异曲线,确定最佳投资组合。马柯维茨的证券组合理论在计算投资组合的收益和方差时十分精确,但是在处理含有较多证券的组合时,计算量很大。
马柯维茨的后继者致力于简化投资组合模型。在一系列的假设条件下,威廉·夏普(William F. Sharp)等学者推导出了资本资产定价模型,并以此简化了马柯维茨的资产组合模型。由于夏普简化模型的计算量相对于马柯维茨资产组合模型大大减少,并且有效程度并没有降低,所以得到了广泛应用。
1 模型理论
经典马柯维茨均值-方差模型为:
2minpXTXTmaxE(rp)XR ns..txi1i1RiE(ri)是第i种资产的预期收益率;X(x1,x2,...,xn)TR(R1,R2,...,Rn)T;其中,
是投资组合的权重向量;
2RE(r)是n种资产间的协方差矩阵;和()ppijnnp分别
是投资组合的期望回报率和回报率的方差。
点睛:马柯维茨模型以预期收益率期望度量收益;以收益率方差度量风险。在教课书中通常以资产的历史收益率的均值作为未来期望收益率,可能会造成“追涨的效果”,在实际中这些收益率可能是由研究员给出;在计算组合风险值时协方差对结果影响较大,在教课书中通常以资产的历史收益率的协方差度量资产风险与相关性,这种计算方法存在预期误差,即未来实际协方差矩阵与历史协方差矩阵间的存在偏差。
例1.以华北制药、中国石化、上海机场三只股票,如何构使用马柯维茨模型构建投资组合模型?资产数据如下表: 表2.1 三只股票的日回报率、风险数据及协方差矩阵 华北制药 中国石化 收益率均值(%) 0.00 0.0275 收益率标准差(%) 2.30 2.06 协方差矩阵(×0.0001) 5.27 2.80 1.74 2.80 4.26 1.67 1 / 9
马柯维茨均值-方差模型
上海机场 0.0236 1.70 1.74 1.67 2.90
2 收益与风险计算函数 portstats函数计算公式:
E(rp)XTR
2pXTX
RiE(ri)是第i种资产的预期回报率;X(x1,x2,...,xn)TR(R1,R2,...,Rn)T;其中,
是投资组合的权重向量;
2RE(r)是n种资产间的协方差矩阵;和()ppijnnp分别
是投资组合的期望回报率和回报率的方差。
函数语法:
[PortRisk, PortReturn] = portstats(ExpReturn, ExpCovariance, PortWts) 输入参数:
ExpReturn:资产预期收益率
ExpCovariance:资产的协方差矩阵 PortWts:资产权重 输出参数:
PortRisk:资产组合风险(标准差) PortReturn:资产组合预期收益(期望)
例:在例1中,假设等权重配置华北制药、中国石化、上海机场,则资产组合的风险与收益为多少? M文件:Portstatstest.m
ExpReturn = [0.0000 0.000275 0.000236]; ExpCovariance = 0.0001*
[5.27 2.80 1.74; 2.80 4.26 1.67; 1.74 1.67 2.90 ]; PortWts=1/3*ones(1,3);
[PortRisk, PortReturn] = portstats(ExpReturn, ExpCovariance,PortWts) >>PortRisk = 0.016617 PortReturn = 3.5033e-004
注释: ones(n,m)为生产元素都为1的n×m矩阵, ones(1,3)=[1,1,1]. PortWts=1/3*[1,1,1]=[1/3, 1/3, 1/3]
3 有效前沿计算函数
马柯维茨均值-方差模型为经典的带约束的二次优化问题,在给定期望收益时,方差最小解唯一(可行解域为凸),frontcon使用,matlab优化工具箱的fmincon函数进行求解,fmincon函数说明请参看附录。
frontcon函数算法:
2 / 9
马柯维茨均值-方差模型
minpXTXTminpXXXTR=eiT maxE(rp)XRnts..nxi1s..txi1i1i1给定ei计算相应风险最小的组合,即得到有效前沿上一点(有效组合),给定一系列ei可以有效描绘出有效前沿。组合的收益介于单个资产的最大收益与最小收益之间,例如示例中最大收益为0.00%、最小收益为0.0236%,ei为根据NumPorts在最大收益与最小收益间进行等分即可。
函数语法:
[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn, ExpCovariance, NumPorts, PortReturn, AssetBounds, Groups, GroupBounds, varargin)
输入参数:
ExpReturn:资产预期收益率;
ExpCovariance:资产的协方差矩阵;
NumPorts:(可选)有效前沿上输出点的个数,默认为10; PortReturn:(可选)给定有效前沿上输出回报点个数; AssetBounds:(可选)每种资产权重的上下限,例如,上海机场的最大持仓比例为10%; Groups:(可选)资产分组,Groups(i,j)=1表示第j个资产属于第i个群(例如,行业);
GroupBounds:每个资产群约束(例如,某个行业配置能超过20%) 输出函数:
PortRisk:资产组合风险(标准差) PortReturn:资产组合预期收益(期望) PortWts:资产组合中各资产权重
例: 在例1中,如何配置华北制药、中国石化、上海机场,则资产组合为有效组合? M文件:frontcontest.m
程序源码:
ExpReturn = [0.0000 0.000275 0.000236]; ExpCovariance =0.0001* [5.27 2.80 1.74; 2.80 4.26 1.67; 1.74 1.67 2.90 ]; NumPorts =10;
[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn,ExpCovariance,
NumPorts)
>> PortRisk = 1.0e-002* 1.5653
3 / 9
马柯维茨均值-方差模型
1.5759 1.6074 1.6586 1.7277 1.8128 1.9129 2.0284 2.1567 2.2956 PortReturn = 1.0e-003 * 0.2843 0.3127 0.3411 0.3695 0.3980 0.42 0.48 0.4832 0.5116 0.00 PortWts =
0.1274 0.2456 0.6270 0.2270 0.1979 0.5751 0.3265 0.1503 0.5232 0.4261 0.1026 0.4713 0.5257 0.09 0.4194 0.6253 0.0072 0.3675 0.7196 0 0.2804 0.8131 0 0.1869 0.9065 0 0.0935 1.0000 -0.0000 0.0000
4 / 9
马柯维茨均值-方差模型
图1 投资组合有效前沿图
直接运行frontcon(ExpReturn,ExpCovariance, NumPorts)则可画出图1; 如果各个资产投资上限为50%,求解有效前沿? 程序源码:
ExpReturn = [0.0000 0.000275 0.000236]; ExpCovariance = 0.0001*
[5.27 2.80 1.74; 2.80 4.26 1.67; 1.74 1.67 2.90 ]; NumPorts =10;
AssetBounds=[0,0,0;0.5,0.5,0.5]%设置资产上限
[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn,ExpCovariance,
NumPorts,[],AssetBounds)
计算结果:
1.0e-002* PortRisk = 1.5818 1.5842 1.5914 1.6034 1.6200 1.08 1.69 1.6920 1.7412 1.9449 PortReturn = 1.0e-003 * 0.3024
5 / 9
马柯维茨均值-方差模型
0.3140 0.3257 0.3374 0.3491 0.3608 0.3725 0.3841 0.3958 0.4075 PortWts =
0.1768 0.3232 0.5000 0.2209 0.2791 0.5000 0.2650 0.2350 0.5000 0.3091 0.1909 0.5000 0.3532 0.1468 0.5000 0.39 0.1173 0.4873 0.4363 0.0977 0.4660 0.4773 0.0781 0.4446 0.5000 0.2005 0.2995 0.5000 0.5000 0.0000
4 约束条件下有效前沿
在实际构建投资组合时候要考虑到合法合规或者风险管理等条件,这样会给组合构建带来约束,例如基金“双百分只十规则”:基金投资于一证券的市值不能超过基金资产的10%,基金投资于一上市公司股票不能超过该公司市值的10%;Matlab求解约束条件下有效前沿的为portopt函数;
函数语法: [PortRisk, PortReturn, PortWts] = portopt(ExpReturn, ExpCovariance, NumPorts, PortReturn, ConSet, varargin)
输入参数:
ExpReturn:资产预期收益率
ExpCovariance:资产的协方差矩阵
NumPorts:(可选)有效前沿上输出点的个数,默认为10 PortReturn:(可选)给定有效前沿上输出点回报 ConSet:组合约束,一般通过portcons进行设置 Varargin: 主要为优化算法中的一些参数 输出函数:
PortRisk:资产组合风险(标准差) PortReturn:资产组合预期收益(期望) PortWts:资产组合中各资产权重
注释:portcons函数
ConSet = portcons(varargin)
portcons该函数比较复杂,本书使用举例的方式进行说明。
6 / 9
马柯维茨均值-方差模型
例如:例配置华北制药、中国石化、上海机场三个资产,华北制药最大配置50%,中国石化最大配置90%,上海机场最大配置80%,华北制药为资产集合A,中国石化、上海机场组成资产计划B,集合A的最大配置为50%,集合B的最大配置为80%,集合A的配置不能超过集合B的1.5倍,则如何配置。 M文件为portopttest.M 约束条件设置如下:
AssetNum=3;资产数量三个
PVal = 1; 配置比例,100%表示满仓配置,若80%,则设PVal = 0.8; AssetMin = 0; 各资产最低配置
AssetMax = [0.5 0.9 0.8]; 各资产最高配置 GroupA = [1 0 0]; 资产集合A(例如,行业) GroupB = [0 1 1]; 资产集合B(例如,行业)
GroupMax = [0.50,0.80]; 资产集合A最大配置50%,B最大80% AtoBmax = 1.5; 集合A的配置不能超过集合B的1.5倍 ConSet = portcons('PortValue', PVal, NumAssets,'AssetLims',...
AssetMin, AssetMax, NumAssets, 'GroupComparison',GroupA, NaN,... AtoBmax, GroupB,GroupMax ); M编程求解:
NumAssets = 3;
ExpReturn = [0.0000 0.000275 0.000236]; ExpCovariance = [5.27 2.80 1.74; 2.80 4.26 1.67; 1.74 1.67 2.90 ]; NumPorts =5; PVal = 1; AssetMin = 0;
AssetMax = [0.5 0.9 0.8]; GroupA = [1 0 0]; GroupB = [0 1 1]; GroupMax = [0.50,0.8]; AtoBmax = 1.5;
ConSet = portcons('PortValue', PVal, NumAssets,'AssetLims',... AssetMin, AssetMax, NumAssets, 'GroupComparison',GroupA, NaN,... AtoBmax, GroupB,GroupMax );
[PortRisk, PortReturn, PortWts] = portopt(ExpReturn, ExpCovariance,... NumPorts, [], ConSet) >> PortRisk = 1.0e-002* 1.5653 1.5778 1.6147 1.6744 1.9449 PortReturn =
7 / 9
马柯维茨均值-方差模型
1.0e-003 * 0.2843 0.3151 0.3459 0.3767 0.4075 PortWts =
0.1274 0.2456 0.6270 0.2353 0.1939 0.5707 0.3433 0.1423 0.5145 0.4512 0.0906 0.4582 0.5000 0.5000 0
图2.2 约束条件下投资组合有效前沿
运行portopt(ExpReturn, ExpCovariance,NumPorts, [], ConSet)得到图2.2。
点睛:同一组资产进行配置,无约束的有效前沿为图2.1,带约束的有效前沿为图2.2,约束使得有效前沿不再平滑。
5模型年化参数计算
本章节案例使用的以日数据为例进行计算,在实际中进行资产配置周期常常为年,如何将日数据转换为年数据存在许多细节上的问题。
例2 假设2005年到2011年上证综合指数、上证50指数、沪深300指数及深证100指数的主要指标。 指数名称 上证综合指数 上证50指数 沪深300指数 深证100指数 年化收益率 8.50% 10.06% 13.23% 18.37% 年化波动率 29.45% 31.17% 31.38% 32.62% 8 / 9
日均收益率 0.03% 0.04% 0.05% 0.07% 日波动率 1.86% 1.97% 1.98% 2.06% 马柯维茨均值-方差模型
其中,年化收益来使用的是2005-2011累积收益率的(1/7)次方得到,年化波动率为日波动率乘以√250得到。
由于市场的变幻莫测,如果选取的时间长度不同,可能得到的波动率大小不同。问题是我们还会发现通过累积收益例计算的年化收益率与日均收益率乘以每年交易日数得到的年化收益率并不相等。从某种角度证明了市场收益率分布并不是严格服从正态分布的。
马柯维茨模型的预期收益率与协方差矩阵的计算方法根据读者自己对市场的理解进行选择。这里必须说明的是,不同的选择做出的有效前沿差距或许比较大。
9 / 9
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务