portopt
这个例子描绘了三种资产的假设投资组合的有效边界。它说明了如何指定一个资产组合的预期收益、标准差和相关性,如何将标准差和相关性转换为协方差矩阵,以及如何从收益和协方差矩阵计算和绘制有效边界。该示例还说明了如何随机生成一组投资组合权重,以及如何将随机投资组合添加到现有图中,以便与有效边界进行比较。
首先,指定一个假设的三种资产组合的预期收益、标准差和相关矩阵。
返回= [0.1 0.15 0.12];STDs = [0.2 0.25 . 0.18];相关性= [1 0.3 0.4 0.3 1 0.3 0.4 0.3 1];
用函数将标准差和相关矩阵转换为方差-协方差矩阵corr2cov
.
协方差= corr2cov(std, correlation);
使用该函数,在边界沿线的20个点处计算并绘制有效边界portopt
并且期望收益和相应的协方差矩阵。尽管可以对投资组合中的资产施加相当复杂的约束,但为了简单起见,接受默认约束,将投资组合的总价值缩放为1,并将权重限制为正(不做空)。
请注意
portopt
已经被部分移除并且不再接受ConSet
或变长度输入宗量
参数。使用投资组合
目标是解决投资组合的问题,而不是一个只做多的全部投资组合。有关使用Portfolio对象时工作流的信息,请参见组合对象的工作流.有关迁移的更多信息portopt
代码投资组合
,请参阅portopt迁移到投资组合对象.
portopt(回报、协方差、20)
现在有效边界已经显示出来,从MATLAB开始随机生成1000个投资组合的资产权重®初始状态。
rng (“默认”权重= rand(1000, 3);
前一行代码生成三列均匀分布的随机权值,但不保证它们的和为1。下面的代码段规范化了每个投资组合的权重,使三个权重的总和代表一个有效的投资组合。
Total = sum(Weights, 2);%添加权重总=总(:,(3,1));%制作尺寸兼容的矩阵重量= Weights. /总;% Normalize使sum = 1
给定创建的1000个随机投资组合,计算与权重相关的每个投资组合的预期收益和风险。
[PortRisk, PortReturn] = portstats(返回,协方差,...重量);
最后,持有当前的图表,并在现有的有效边界上绘制每个投资组合的收益和风险,以便进行比较。在绘制之后,用标题注释图形,并将图形返回到默认的持有状态(任何后续的绘图将擦除现有数据)。有效边界用蓝色表示,而1000个随机投资组合在边界上或下方用一组红点表示。
持有在情节(PortRisk PortReturn,“r”)标题(均值-方差有效边界与随机投资组合)举行从
blsdelta
|blsgamma
|blsprice
|blsvega
|bndconvy
|bnddury
|bndkrdur
|bndprice
|corr2cov
|portopt
|zbtprice
|zero2disc
|zero2fwd