第5章资产组合计算.docx
- 文档编号:6968716
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:19
- 大小:132.83KB
第5章资产组合计算.docx
《第5章资产组合计算.docx》由会员分享,可在线阅读,更多相关《第5章资产组合计算.docx(19页珍藏版)》请在冰豆网上搜索。
第5章资产组合计算
第5章资产组合计算
资产组合是实务性比较强的内容,通过本章的学习,要求读者掌握协方差与相关系数之间的相互推导,熟悉资产组合基本理论,学会用MATLAB计算投资组合基本参数,如均值与方差、资产组合VaR,重点掌握资产组合有效前沿的计算,能够处理无风险利率以及借贷关系情况下的最优投资组合,会用MATLAB规划工具箱求解投资组合最优化问题。
5.1资产组合基本原理
证券投资组合理论(PortfolioTheory)主要研究如何配置各种不同的金融资产,实现资产组合的最佳投资配置。
1952年美国学者马克维茨创立了资产组合理论,该理论在实践中得到广泛运用。
5.1.1收益率序列与价格序列间的转换
1.将收益率序列转换为价格序列
在处理金融时间序列时,有时需要把收益率序列转换为价格序列。
在MATLAB中将收益率序列转换为价格序列的函数是ret2tick。
调用方式
[TickSeries,TickTimes]=ret2tick(RetSeries,StartPrice,RetIntervals,StartTime,Method)
输入参数
RetSeries%收益率序列
StartPrice%(0ptional)起始价格,默认值是1
RetIntervals%(0ptional)收益率序列的时间间隔,默认值是l
StartTime%(optional)价格开始计算的时间,默认值是0
Method%(Optionl)转换方法。
Method='Simple'表示简单,
;Method='Continous'表示连续法,
。
输出参数
TickSeries%价格序列
TickTimes%与价格对应的时间序列
例5-1己知资产收益率以及时间间隔如表5.1所示
表5.1资产收益率及时间
收益率
0.10
0.05
-0.05
时间间隔(天)
182
91
92
起始价格为10元,起始时间为2000年12月18日,试求该资产价格时间序列,收益率采用离散方法。
在MATLAB中执行以下命令:
RetSeries=[0.10,0.05,-0.05]';
RetIntervals=[182,91,92]';
StartPrice=10;
StartTime=datenum('18-Dec-2000');
[TickSeries,TickTime]=ret2tick(RetSeries,StartPrice,RetIntervals,StartTime)
datestr(TickTimes)
ans=
18-Dec-2000
18-Jun-2001
17-Sep-2001
18-Dec-2001
这样就把收益率时间序列转换为价格时间序列,结果如表5.2所示。
表5.2资产各时间的价格
时间
18-Dec-2000
18-Jun-2001
17-Sep-2001
18-Dec-2001
价格
10.0000
11.0000
11.5500
10.9725
收益率
-
0.10
0.05
-0.05
时间间隔
-
182
91
92
2.将价格序列转换为收益率序列
MATLAB中将价格序列转换为收益率序列的函数是tick2ret。
调用方式
[RetSeries,RetIntervals]=tick2ret(TickSeries,TickTimes,Method)
输入参数
TickSeries%价格序列
TimeTimes%价格序列对应的时间
Method%(Optionl)计算收益率的,Method='Simple'表示算术收益率;Method='Continous'表示连续法,即为对数计算法。
输出参数
RetSeries%收益率序列
RetIntervals%收益率时间间隔
例5-2已知股票的价格时间序列如表5.3所示。
表5.3股票各时间对应的价格
时间
0
6
9
12
价格
100
110
115
110
求出该股票的收益率时日序列。
在MATLAB中执行以下命令:
TickSeries=[100;110;115;110];
TickTimes=[0;6;9;12];
[RetSeries,RetIntervals]=tick2ret(TickSeries,TickTime)
5.1.2协方差矩阵与相关系数矩阵间的转换
MATLAB中的corr2cov函数可以把相关系数矩阵转换为协方差矩阵
调用方式
Covariances=corr2cov(STDs,Correlations)
输入参数
STDs%标准差矩阵
Correlations%相关系数矩阵
输出参数
Covariance%协方差矩阵
例5-3已知资产组合中有3个品种,每个品种的资产收益率、标准差和相关系数如表5.5所示。
表5.5的相关数据
Returns=[0.1,0.15,0.12];
STDs=[1,0.8,0.18];
Correlations=[1,0.8,0.4;0.8,1,0.3;0.4,0.3,1];
Covariances=corr2cov(STDs,Correlations)
5.1.3资产组合收益率与方差
MATLAB中计算资产组合回报与方差的函数是portstats。
调用方式
[PortRisk,PortReturn]=portstats(ExpReturn,ExpCovariance,PortWts)
输入参数
ExpReturn%期望收益率向量
ExpCovariance%资产的协方差矩阵
PortWts%资产权重向量
输出参数
PortRisk%总资产的标准差
PortReturn%%总资产的收益
例5-4某资产组合中有3种资产A、B、C.组合中各资产的预期收益率分别为0.1,0.2,0.15,权重分别为0.4,0.2,0.4,具体数据见程序
ExpReturn=[0.1,0.2,0.15];
ExpCovariance=[0.0100,-0.0061,0.0042;-0.0061,0.0400,-0.0252;0.0042,-0.0252,0.0225]
PortWts=[0.4,0.2,0.4;0.2,0.4,0.2];
[PortRisk,PortReturn]=portstats(ExpReturn,ExpCovariance,PortWts)
PortRisk=
0.0560
0.0550
PortReturn=
0.1400
0.1300
从上述结果可以看到,这两个资产组合的标准差分别为0.056、0.055,资产回报分别0.1400,0.1300
例5-5假设资产组合中有5种资产,收益分别为0.1,0.12,0.14,0.16,0.2,方差分别为0.02,0.03,0.01,0.05,0.02,资产收益率各不相关,各资产权重分别为0.1,0.2,0.3,0.2,0.2,计算该组合的收益率与方差。
returns=[0,1,0.12,0.14,0.16,0.2];
variances=[0.02,0.03,0.01,0.05,0.02];
ws=[0.1,0.2,0.3,0.2,0.2];
mean=sum(returns.*ws)
variance=sum(variance.*ws.^2)
5.1.4资产组合VaR(ValueAtRisk)
一般被称为“风险价值”或“在险价值”,指在一定的置信水平下,某一金融资产(或证券组合)在未来特定的一段时间内的最大可能损失。
假定JP摩根公司在2004年置信水平为95%的日VaR值为960万美元,具含义指该公司可以以以95%的把握保证,2004年某一特定时点上的金融资产在未来24小时内,由于市场价格变动带来的损失不会越过960万美元,或者说,只有5%的可能损失超过960万美元。
与传统风险度量手段不同,VaR完全是基于统计分析基础上的的风险度量技术,它的产生足JP摩根公司用来计算市场风险的产物。
例5-6假设投资者拥有两种资产,资产总价他为10000000元,资产权重分别为1/4与3/4,这两种资产日波动率的均值分别为0.003,0.002,标准差分别为0.02,0.01,这两种资产之间的相关系数为0.8,时间为10天,给定置信度为99%,求该资产VaR。
首先求总资产方差,公式如下
其中,
分别为资产组合权重,
为单个资产标准差,
为为这两种资产之间的相关系数。
一般地,可将式(5.1)用向量与矩阵形式表示,记
,表示各资产的权重,
表示各种资产的标准差,资产协方差矩阵记入cov,则式(5.1)可以改写为如下形式:
(5.2)
记号
表示向量转置。
如果记
,则有
有了资产组合方差,就可以计算出Var数值。
从正态分布表中可以查到对应于置信度99%(
)的
,在各种资产都是服从正态分布的假设下,资产Var值为
(5.4)
具体来讲,计算Var的步骤如下。
第1步:
输入资产权重向量w、各资产的标准差sigma、资产之间的相关系数cov,注意协方差矩阵一定是对称矩阵,需要计算时间长度
。
第2步:
权重向量点乘标准差向量。
第3步:
计算资产总的标准差
。
第4步:
对于给定置信度
,查正态分布表找到
第5步:
计算Varmit算Vat,
在Command窗口中执行如下命令:
w=[1/4,3/4];ret=[0.003,0.002];sigma=[0.02,0.01];
corrcoef=[1,0.8;0.8,1];delta=10;
pret=delta*dot(w,ret)
sig=w.*sigma;
tsig=sig*cov*sig'*delta;
var=10^7*(pret-2.3263*sqrt(tsig))
10天VaR值为649300元。
实际上MATLAB中有专门计算Var值的函数,MATLAB巾的portrisk函数可以计算资产组合Var值,注意输入总资产期望收益与标准差,而不是组合中各种种资产的预期收益率与标准差。
调用方式
ValueAtRisk=portrrisk(PortReturn,PortRisk,RiskThreshold,PortValue)
输入参数
PortReturn%总资产的回报
PortRisk%总资产的标准差
RiskThreshold%概率阈值,默认值为0.05
PortValue%资产总的价值
输出参数
ValueAtRisk%概率阈值下的单资产var值
例5-7已知资产年回报率为0.0029,标准差为0.0308,资产现在价值为1亿,求1%水平下资产在险价值。
在MATLAB中执行以下命令:
PortReturn=0.0029;
PortRisk=0.0308;
RiskThreshold=0.01;
PortValue=1;
ValueAtRisk=portvrisk(PortReturn,PortRisk,RiskThreshold,PortValue)
该资产var等于0.0688,即该资产损失0.0688亿的可能性为1%。
需注意的是金融资产一般并不是正态,而是呈现出肥尾特征,其Var较正态分布大。
5.2资产组合有效前沿
由于证券市场投资存在巨大风险,一般不主张把投资集中在一种产品上。
如果一个投资者投资于深证东泰股份(000506),2001年8月10日收盘价为14.10元,到了2006年2月21日收盘价为1.54元,跌幅高达89.08%,如果再要回到原来价位需要上涨9.15倍,这样的机会是几乎不可能的,如果投资名踩中这样的陷阱恐怕很难再有翻身的机会。
运用组合理论可以有效地降低投资风险,其核心思想是在目标收益率给定的情况下,要求资产组合风险最小。
资产组合理论是由马克维茨(H.Markowitz)1952年提出均值方差理论模型
其中,
是协方差矩阵
,
表示第
种资产的收益率,
表示第
种资产在总资产中所占的份额。
5.2.1两种风险资产组台收益期望与方差
假设有两种资产A、B,其收益率分别用
表示,协方差分别为
,记资产组合组合为
,资产组合收益率、方差分别为
,
分别表示投资的权重,则有
该资产组合期望收益率与方差为
这样资产组合收益率均值与方差如图5.1所示。
图51资产组合收益率均值与方差
MATLAB工具箱中包含了资产均值方差有效前沿函数,这些都是基于MATLAB中的最优化理论工具箱。
马克维茨资产组合理论就是寻找一个有效组合。
所谓有效组合是指在同样风险水平下具有最高收益,这样不同收益及与最小风险构成有效前沿。
在不允许卖空情况下,求解有效组合目标函数为
这是一个约束条件为线性且含有不等式的二次规划方程,给定一个组合收益率就有个最小方差,组合收益与最小方差构成有效前沿关系,有效前沿如图5.2所示。
522均值方差有效前沿
MATLAB中计算均值方差有效前沿的函数为frontcon。
调用方式
[PortRisk,PortReturn,PortWts]=frontcon(ExpReturn,ExpCovariance,
NumPorts,PortReturn,AssetBounds,Groups,GroupBounds)
输入参数
ExpReturn%资产组合中每项资产预期回报,为一行向量
ExpCovariance%各种资产之间的协方差矩阵,为对称矩阵
NumPorts%(Optional)在资产组合有效前沿上的点的个数,默认值是10个点。
PortReturn%(Optional)有效前沿上每个点的回报
AssetBounds%(Optional)每种资产权重的上限、下限区间
Groups%(Optional)如果G(i,j)=1表示第i个资产属于第j个群,G(i,j)=0表示第i个资产不属于第j个群
GroupBounds%(Optional)每种种群权重约束区间,默认值规定下限为0,上限为l
输出参数
PortRisk%组合的标准差
PortReturn%组合的回报
PortWts%组合中每个资产的权重
例5-8考虑一个三资产组合,分别为资产1、资产2与资产3,其预期收益率分别为0.2、0.1、0.15,资产协方差矩阵如表5.7所示,求该资产组合有效前沿。
在MATLAB中执行如下命令
ExpReturn=[0.1,0.2,0.15];
ExpCovariance=[0.0100,-0.0061,0.0042;-0.0061,0.0400,-0.0252;0.0042,-0.0252,0.0225];
NumPorts=4;
[PortRisk,PortReturn,PortWts]=frontcon(ExpReturn,ExpCovariance,
NumPorts,PortReturn,AssetBounds,Groups,GroupBounds)
5.2.3带约束条件资产组合有效前沿
投资组合中的问题很少有简单的约束,大多数情况下是多种约束,例如监管当局为了控制风险,对资产组中每种资产的比例加以种种限制,这时就需要考虑多种约束条件下的最优组合问题。
MATLAB利用均值-方差理论求解资产组合问题,首先是将约束条件写成矩阵形式,例如
或者
形式。
下面用一个例了说明。
例5-9某资产组合中有5种资产构成,第i种资产的预期回报率为
为第
种资产在总资产中的权重,考虑
具有如下形式:
上述约束条件写成矩阵形式如下
A=[1,0,0,0,0,0.35;0,1,0,0,0,0.30;0,0,1,0,0,0.40;0,0,0,0,1,0.50
-1,0,0,0,0,0;0,-1,0,0,0,0;0,0,-1,0,0,0;0,0,0,-1,0,0;0,0,0,0,-1,0;-1,-1,0,0,0,-0.2;-1,-1,-1,0,0,-0.3;1,1,0,0,0,0.6;1,1,1,0,0,0.7]
注意约束条件
可以分解成两个约束条件:
和
,分别对应于矩阵的第l行和第6行。
下面我们计算约束条件下资产
组合有效前沿。
调用方式
[PortRisk,PortReturn,PortWts]=portopt(ExpReturn,ExpCovariance,NumPorts,PortReturn,ConSet)
输入参数
ExpReturn%资产的期望回报率
ExpCovariance%资产的协方差
NumPorts%(Optional)资产组合中投资品种的个数
PortReturn%Optional)要求组合的回报率
ConSet%(Optional)约束条件
输出参数
PortRisk%资产组合的风险
PortReturn%资产组合的回报
PortWts%组合中各种资产的权重
例5-10设有两种资产,其回报率分别为0.1,0.3,协方差矩阵为
约束条件为
,求该资产组合有效前沿。
在MATLAB中执行如下命令:
ret=[0.1,0.3];cov=[0.02,0;0,0.04];
constr=[1,1,1;1,0,0.2;-1,0,0;0,-1,-0.3];
portopt(ret,cov,[],[],constr)
图5.3含约束条件均值方差有效前沿示意图
例5-11各资产的相关系数矩阵、预期回报率和标准差如表5.8所示
试给出有效前沿。
在MATLAB中执行如下命令
Returns=[0.1,0.15,0.12];STDs=[0.2,0.25,0.18];Correlations=[1,0.8,0.4;0.8,1,0.3;0.4,0.3,1];
Covariances=corr2cov(STDs,Correlations)
portopt(Returns,Covariances,20)%绘出组合的有效前沿
%然后选择权重
rand('state',0);
Weights=rand(1000,3);
Total=sum(Weights,2);
Weights(:
1)=Weights(:
1)./Total;
Weights(:
2)=Weights(:
2)./Total;
Weights(:
3)=Weights(:
3)./Total;
输入资产组合有效前沿,以及相关资产组合,绘出各个资产组合风险与收益,代码如下:
[PortRisk,PortReturn]=portstats(Returns,Covariances,,Weights);
holdon
plot(PortRisk,PortReturn,'.r')
title('均值-方差有效前沿以及各个资产组合风险与收益')
xlabel('风险(标准差)')
ylabel('期望收益率')
holdoff
这样资产组合有效前沿和各种资产组合风险与收益点如图5.4所示。
均值-方差有效前沿以及各种资产组合风险与收益
5.2.4考虑无风险资产及借贷情况下的资产配置
资产组合有效前沿上的点很多,如何选择一个有效点呢?
投资者需要根据目标函数权衡风险与回报。
MATLAB中投资者目标函数如下:
其中,
表示未来回报,
表示投资者风险厌恶系数,一般在2-4之间,
是资产标准差。
投资者决策就是使目标函数最大化,然后对资产进行配置。
MATLAB中考虑无风险资产时的资产配置函数是portalloc,其功能是根据风险-收益最优原则配置每项资产,其中包括无风险资产。
调用方式
[RiskyRisk,RiskyReturn,RiskyFraction,OverallRisk,OverallReturn]
=portalloc(PortRisk,PortReturn,PortWts,RisklessRate,BorrowRate,RiskAversion)
输入参数
PortRisk%有效前沿上每项资产的方差
PortReturn%有效前沿上每项资产的回报
PortWts%有效前沿上每项资产的权重
RisklessRate%无风险利率
BorrowRate%(Optional)借款利率,默认为没有借贷
RiskAversion%(Optional)投资者的风险厌恶系数,大多数投资者的风险厌恶系数在2~4之间,通常选择3
输出参数
RiskyRisk%风险资产部分的标准差
RiskyReturn%风险资产部分的回报
RiskyWts%风险资产的权重
RiskyFraction%总资产中风险资产的分数
OverallRisk%总资产的标准差
Overa11Return%总资产的回报
例5.12已知一个组合中含有3种资产,每种资产的预期回报与协方差矩阵如表5.9所示。
表5.9各种资产的预期回报、协方差
资产A
资产B
资产C
预期回报
0.1
0.2
0.15
协
方
差
资产A
0.005
-0.010
0.004
资产B
-0.010
0.04
-0.002
资产C
0.004
-0.002
0.023
无风险利率为0.08,借贷利率为0.12,投资者的风险厌恶系数为3,要求考虑无风险资产和借贷情况下的最优资产配置。
在MATLAB中执行如下命令:
ExpReturn=[0.1,0.2,0.15];
ExpCovariance=[0.005,-0.010,0.004;-0.010,0.040,-0.002;0.004,-0.002,0.023];
[PortRisk,PortReturn,PortWts]=portopt(ExpReturn,ExpCovariance);
%由于没有输入位于有效前沿上的点的数目,MATLAB默认有效前沿上选取10个点,每个点代表一种组台,每个组合的标准差保存在PortRisk中,收益率保存在PortReturn中,组合中各资产的权重保存在PortWts中。
下面调用portalloc函数求出考虑无风险资产,以及允许借货时的资产配置,代码如下:
RisklessRate=0.08;
BorrowRate=0.12;
[RiskyRisk,RiskyReturn,RiskyFraction,OverallRisk,OverallReturn]=portalloc(PortRisk,PortReturn,PortWts,RisklessRate,BorrowRate,RiskAversion)
从结果表明,最优组合的标准差为0.1283,收益率为0.1788,每项资产的权重分别为0.0265、0.6023、0.3712。
总资产中风险资产配置的权重为1.1898,总资产的回报率为0.1899,总资产的标难差为0.1527。
如果选取有效前沿上的20个点,得到结果如下:
[PortRisk,PortReturn,PortWts]=portopt(ExpReturn,ExpCovariance,20);
[RiskyRisk,RiskyReturn,RiskyF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 资产 组合 计算