主要内容

estimatePortMoments

估算portfolio对象的投资组合收益矩

描述

例子

prsk现成的= estimatePortMoments(objpwgt估计a的投资组合收益矩投资组合对象。详细的工作流程请参见投资组合对象工作流

端口矩的估计是针对均值-方差投资组合优化的,计算投资组合收益的均值和标准差(即方差的平方根)。

例子

全部折叠

考虑到投资组合p,使用estimatePortMoments函数显示有效投资组合的风险和收益范围。

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];p =投资组合;p = setAssetMoments(p, m, C); p = setDefaultConstraints(p); pwgt = estimateFrontierLimits(p); [prsk, pret] = estimatePortMoments(p, pwgt); disp([prsk, pret]);
0.0769 0.0590 0.3500 0.1800

创建一个投资组合对象用于三个资产。

AssetMean = [0.0101110;0.0043532;0.0137058);AssetCovar = [0.00324625 0.00022983 0.00420395;0.00022983 0.00049937 0.00019247;0.00420395 0.00019247 0.00764097];p =投资组合(“AssetMean”AssetMean,“AssetCovar”, AssetCovar);p = setDefaultConstraints(p);

使用setBounds有半连续的约束条件西00.02< =西< =0.5对所有1,……NumAssets。

p = setBounds(p, 0.02, 0.5,“BoundType”“条件”“NumAssets”3);

当与投资组合对象,setMinMaxNumAssets函数使您能够为只做多头的投资组合设置基数约束。对象的基数约束投资组合对象,其中满足非零半连续约束的已分配资产的总数介于MinNumAssets而且MaxNumAssets.通过设置MinNumAssetsMaxNumAssets=2时,三种资产中只有两种被投资到投资组合中。

p = setMinMaxNumAssets(p, 2,2);

使用estimatePortMoments估计投资组合收益的时刻投资组合对象。

pwgt = estimateFrontierLimits(p);[prsk, pret] = estimatePortMoments(p, pwgt)
prsk =2×10.0324 - 0.0695
成衣的=2×10.0072 - 0.0119

estimatePortMoments函数使用MINLP求解器来解决这个问题。使用setSolverMINLP命令,配置SolverType和选项。

p.solverOptionsMINLP
ans =带有字段的结构:maxiteration: 1000 AbsoluteGapTolerance: 1.0000e-07 RelativeGapTolerance: 1.0000e-05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 Display: 'off' CutGeneration: 'basic' maxiterationsinactivcut: 30 activecutttolerance: 1.0000e-07 IntMasterSolverOptions: [1x1 optim.options.]Intlinprog] NumIterationsEarlyIntegerConvergence: 30

投资组合对象能够找到一个相对于指定目标风险的有效投资组合。

荷载组合

加载30只股票的预期收益向量和协方差矩阵。

负载StockStats

创建投资组合带有默认约束的对象

的默认约束投资组合对象是它是一个只做多的投资组合,并且100%投资。还有许多其他的约束类型。

P =投资组合(“的意思是”遇到,“柯伐合金”, expCov);P = setDefaultConstraints(P);

规划高效边界

使用plotFrontier函数投资组合对象来可视化整个边界。还有一些功能允许您沿着边界探索特定的投资组合。

P.plotFrontier

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

捕捉投资组合风险和收益的上下限

知道沿有效边界的组合矩的上下限是很有用的。这些信息使您可以确定什么是可行的目标。使用estimateFrontierLimits函数投资组合对象来识别这些极端情况下的权值。然后你可以使用estimatePortMoments函数投资组合对象求极限矩。

P_Weights1 = P.estimateFrontierLimits;[P_risklimits, P_returnlimits] = P.estimatePortMoments(P_Weights1)
P_risklimits =2×10.0786 - 0.2868
P_returnlimits =2×10.0954 - 0.2370

评估具有目标收益的有效投资组合

在可行区域内为投资组合选择一个目标收益。你可以用estimateFrontierByRisk然后确认它的朋友圈使用estimatePortMoments

targetReturn = 0.15;P_Weights2 = P.estimateFrontierByReturn(targetReturn);[p_risk, P_return2] = P.estimatePortMoments(P_Weights2)
P_risk2 = 0.1068
P_return2 = 0.1500

返回匹配targetReturn价值与风险符合有效边界图。

评估具有目标风险的有效投资组合

投资组合对象能够找到具有指定目标风险的有效投资组合。

targetRisk = 0.2;P_Weights3 = p.p estimatefrontierbyrisk (targetRisk);[P_risk3, P_return3] = P.estimatePortMoments(P_Weights3)
P_risk3 = 0.2000
P_return3 = 0.2182

的另一个有用的特性estimateFrontierByReturn而且estimateFrontierByRisk函数是当你指定一个不可行(过高或过低)的目标时所发生的事情。在本例中,这些函数提供一条警告消息,以建议最佳解决方案。

输入参数

全部折叠

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

数据类型:对象

组合的集合,指定为NumAssets——- - - - - -NumPorts矩阵NumAssets宇宙中资产的数量是多少NumPorts是组合集合中的组合数。

数据类型:

输出参数

全部折叠

中的每个投资组合的投资组合收益的标准差估计pwgt,作为NumPorts向量。

prsk返回为投资组合输入对象(obj).

中的每个投资组合的投资组合收益均值的估计pwgt,作为NumPorts向量。

现成的返回为投资组合输入对象(obj).

提示

你也可以用点表示法来估计投资组合收益的时刻。

[prsk, pret] = obj.estimatePortMoments(pwgt);

版本历史

在R2011a中介绍