主要内容

plotFrontier

规划有效边界

描述

例子

prsk现成的= plotFrontier(obj估算边界上默认数量为10个投资组合的有效边界,并绘制对应的有效边界投资组合PortfolioCVaR,或PortfolioMAD对象。有关使用这些不同对象时各自工作流的详细信息,请参见投资组合对象工作流对象工作流,PortfolioMAD对象工作流

例子

prsk现成的= plotFrontier(objNumPorts估计边界上指定数量组合的有效边界,并绘制相应的有效边界。投资组合的数量由NumPorts

例子

prsk现成的= plotFrontier(objPortWeights评估有效的投资组合风险和回报PortWeights,并用这些组合绘制有效边界。该语法假设您提供有效有效的投资组合权重作为输入。PortWeights是一个NumAsset——- - - - - -NumPorts矩阵。

例子

prsk现成的= plotFrontier(objPortRiskPortReturn绘制具有给定风险和回报的有效边界。该语法假设您为有效的投资组合风险和回报提供有效的输入。PortRisk而且PortReturn都是大小相同的向量。

请注意

plotFrontier处理如上所述的多种输入格式。给定一个资产宇宙NumAssets资产和一个高效的边界NumPorts投资组合,记住投资组合的权重是NumAsset——- - - - - -NumPorts矩阵和投资组合的风险和回报NumPorts列向量。

例子

全部折叠

给定一个投资组合p,绘制有效边界。

负载CAPMuniversep =投资组合(“AssetList”、资产(1:12));p = estimateAssetMoments(p, Data(:,1:12),“missingdata”,真正的);p = setDefaultConstraints(p);plotFrontier (p);

图中包含一个axes对象。标题为E f f i c in t空f r nt的axis对象包含一个类型为line的对象。

创建一个投资组合对象为12个股票的基础上CAPMuniverse.mat

负载CAPMuniversep0 =投资组合(“AssetList”、资产(1:12));p0 = estimateAssetMoments(p0, Data(:,1:12),“missingdata”,真正的);p0 = setDefaultConstraints(p0);

使用setMinMaxNumAssets定义3个资产的最大数量。

pWithMaxNumAssets = setMinMaxNumAssets(p0, [], 3);

使用setBounds定义一个下界和上界BoundType“条件”

pWithConditionalBound = setBounds(p0, 0.1, 0.5,“BoundType”“条件”);

使用plotFrontier比较不同的组合对象。

图;plotFrontier (p0);持有;plotFrontier (pWithMaxNumAssets);持有;plotFrontier (pWithConditionalBound);持有;传奇(“p0”“投资最多3项资产”'每项资产权重为0或[0.1,0.5]'“位置”“最佳”);

图中包含一个axes对象。标题为E f f i c in t空f r nt的axis对象包含3个类型为line的对象。这些对象表示p0,最多可投资3个资产,每个资产的权重为0或[0.1,0.5]。

定义一个目标返回并使用estimateFrontierByReturn比较三个组合对象。

targetRetn = 2.2.0 e-3;pwgt0 = estimateFrontierByReturn(p0, targetRetn);pwgtWithMaxNumAssets = estimateFrontierByReturn(pWithMaxNumAssets, targetRetn);pwgtConditionalBound = estimateFrontierByReturn(pWithConditionalBound, targetRetn);

下表显示了三个投资组合对象中指定目标收益的最终分配。你可以看到小的位置“apple”而且“hp”避免在pwgtConditionalBound,只投资了三种资产pwgtWithMaxNumAssets

result = table(p0.AssetList',pwgt0,pwgtWithMaxNumAssets,pwgtConditionalBound)
结果=12×4表Var1 pwgt0 pwgtWithMaxNumAssets pwgtConditionalBound  ________ ________ ____________________ ____________________ {' apple '} 0.076791 0 0.1 {amazon的}0 0 0 {cisco的}0 0 0{“戴尔”}0 0 0{“易趣”}0 0 0 0.44841 0.47297 0.44255{“google”}{“hp”}0.022406 0 0{“IBM”}0.31139 0.34762 0.31592 {intel的}0 0 0{“微软”}0.14101 0.17941 0.14153{‘ORCL} 0 0 0{“yahoo”}0 0 0

给定一个PortfolioCVaRp,绘制有效边界。

M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];M = M /12;C = C/12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); plotFrontier(p);

图中包含一个axes对象。标题为E f f i c in t空f r nt的axis对象包含一个类型为line的对象。

给定一个portfolio omadp,绘制有效边界。

M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];M = M /12;C = C/12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); plotFrontier(p);

图中包含一个axes对象。标题为E f f i c in t空f r nt的axis对象包含一个类型为line的对象。

输入参数

全部折叠

对象,指定使用投资组合PortfolioCVaR,或PortfolioMAD对象。有关创建投资组合对象的更多信息,请参见

数据类型:对象

有效边界上要获得的点数,指定为标量整数。

请注意

如果没有指定值NumPorts,默认值从hidden属性中获取defaultNumPorts(默认值为10).如果NumPorts1,该函数返回由hidden属性指定的投资组合defaultFrontierLimit(当前默认值为“最小值”).

数据类型:

每个投资组合收益的标准差,指定为一个向量。

请注意

PortRisk而且PortReturn必须是大小相同的向量。

数据类型:

每个投资组合的投资回报的平均值,指定为一个向量。

请注意

PortRisk而且PortReturn必须是大小相同的向量。

数据类型:

有效边界上的最优投资组合,指定为NumAsset——- - - - - -NumPorts矩阵。

数据类型:

输出参数

全部折叠

估计的有效投资组合风险(收益的标准差,作为a的向量返回)投资组合PortfolioCVaR,或PortfolioMAD输入对象(obj).

请注意

  • 中有名称的组合对象的名字属性时,名称将显示为地块的标题。否则,这块地就被标记为“高效边境”。

  • 对象中有一个初始组合InitPort属性,初始投资组合被绘制和标记。

  • 如果投资组合的风险和回报是输入,确保风险在调用顺序中排在第一位。此外,如果投资组合的风险和回报没有按升序排序,则此方法执行排序。在输出时,将返回已排序的矩。

估计的有效投资组合收益,作为a的向量返回投资组合PortfolioCVaR,或PortfolioMAD输入对象(obj).

请注意

  • 中有名称的组合对象的名字属性时,名称将显示为地块的标题。否则,这块地就被标记为“高效边境”。

  • 对象中有一个初始组合InitPort属性,初始投资组合被绘制和标记。

  • 如果投资组合的风险和回报是输入,确保风险在调用顺序中排在第一位。此外,如果投资组合的风险和回报没有按升序排序,则此方法执行排序。在输出时,将返回已排序的矩。

提示

您还可以使用点表示法来绘制有效边界。

[prsk, pret] = obj.plotFrontier;

版本历史

在R2011a中介绍