主要内容

估计前沿Byreturn

以目标投资回报估计最优投资组合

描述

实例

[pwgt,pbuy,psell]=估计前沿ByReturn(obj,TargetReturn)以目标投资回报估算最优投资组合投资组合,PortfolioCVaRPortfolioMAD物体。有关使用这些不同对象时各自工作流的详细信息,请参见组合对象的工作流,PortfolioCVaR对象的工作流,PortfolioMAD对象工作流.

例子

全部折叠

要获得有目标投资回报的有效投资组合,则估计前沿Byreturn函数接受一个或多个目标投资组合回报,并获得具有指定回报的有效投资组合。假设您拥有四种资产,其中您希望获得目标投资组合回报为6%、9%和12%的有效投资组合。

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 = estimateFrontierByReturn(p, [0.06, 0.09, 0.12]); display(pwgt);
pwgt =4×30.8772 0.5032 0.1293 0.0434 0.2488 0.4541 0.0416 0.0780 0.1143 0.0378 0.1700 0.3022

当来自的任何一个或任何约束组合有条件的BoundType,MinNumAssets,最大质量集时,将投资组合问题表述为混合整数规划问题,并使用MINLP求解器。

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

资产平均值=[0.0101110;0.0043532;0.0137058];资产价值=[0.00324625 0.00022983 0.00420395;0.00022983 0.00049937 0.00019247;0.00420395 0.00019247 0.00764097];p=投资组合(“资产平均值”AssetMean,“资产价值”,资产价值);p=设置默认约束(p);

使用挫折设置半连续约束=00.02<=<=0.5总的来说=1.,...纽马塞特.

p = setBounds(p, 0.02, 0.7,“BoundType”,“有条件的”,“纽马塞特”, 3);

当与一个投资组合对象setMinMaxNumAssets函数使您能够设置投资资产数量(称为基数)约束的限制。这将设置满足以下约束的已分配资产的总数:MinNumAssets最大质量集.通过设置MinNumAssets=最大质量集=2,三项资产中只有两项投资于投资组合。

p = setMinMaxNumAssets(p, 2,2);

使用估计前沿Byreturn以目标投资回报估计最优投资组合。

[pwgt,pbuy,psell]=估计前沿领域回报率(p[0.0072321,0.0119084])
pwgt =3×20 0.5000 0.6922 0 0.3078 0.5000
pbuy=3×20 0.5000 0.6922 0 0.3078 0.5000
psell =3×20 0 0 0 0 0

这个估计前沿Byreturn函数使用MINLP解算器解决此问题。使用SetSolverinlp命令功能SolverType和选择。

p.solverTypeMINLP
ans = ' OuterApproximation '
p、 解决方案SMINLP
ans =结构体字段:MaxIterations: 1000 AbsoluteGapTolerance: 1.0000e-07 RelativeGapTolerance: 1.0000e-05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 Display: 'off' CutGeneration: 'basic' MaxIterationsInactiveCut: 30 activecutttolerance: 1.0000e-07 IntMasterSolverOptions: [1x1优化。选项。Intlinprog] NumIterationsEarlyIntegerConvergence: 30

要获得有目标投资回报的有效投资组合,则估计前沿Byreturn函数接受一个或多个目标组合返回,并获得具有指定返回值的有效组合。假设你有四种资产,你希望获得有效的投资组合,目标投资组合回报率分别为7%、10%和13%。

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.0119 0.0336 0.1225];rng(11);p=PortfolioCVaR;p=模拟异常情景(p,m,C,2000);p=设置默认约束(p);p=设定概率水平(p,0.95);pwgt=估计的前沿地带回报率(p[0.07,0.10,0.13]);显示器(pwgt);
pwgt =4×30.7370 0.3067 0 0.1502 0.3937 0.4396 0.0290 0.0997 0.1360 0.0838 0.1999 0.4244

这个函数rng( s E E D )用于重置随机数生成器以生成记录的结果。无需重置随机数生成器以模拟场景。

要获得有目标投资回报的有效投资组合,则估计前沿Byreturn函数接受一个或多个目标组合返回,并获得具有指定返回值的有效组合。假设你有四种资产,你希望获得有效的投资组合,目标投资组合回报率分别为7%、10%和13%。

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];rng (11);p = PortfolioMAD; p = simulateNormalScenariosByMoments(p, m, C, 2000); p = setDefaultConstraints(p); pwgt = estimateFrontierByReturn(p, [0.07 0.10, 0.13]); display(pwgt);
pwgt =4×30.7437 0.3146 0.1357 0.3837 0.4425 0.0326 0.0939 0.1319 0.0881 0.2079 0.4255

这个函数rng( s E E D )用于重置随机数生成器以生成记录的结果。无需重置随机数生成器以模拟场景。

输入参数

全部折叠

用于公文包的对象,使用投资组合,PortfolioCVaRPortfolioMAD对象。有关创建组合对象的更多信息,请参见

数据类型:对象

投资组合回报的目标值,指定为纽波特向量。

笔记

TargetReturn指定有效边界上的投资组合的目标回报率。如果有任何TargetReturn价值超出了有效投资组合的回报范围TargetReturn替换为最小或最大有效投资组合回报,具体取决于目标回报低于或高于有效投资组合回报范围。

数据类型:

输出参数

全部折叠

有效边界上的最优投资组合,目标收益来自TargetReturn,以纽马塞特——- - - - - -纽波特矩阵pwgt返回一个投资组合,PortfolioCVaRPortfolioMAD输入对象(obj).

相对于有效边界上最优投资组合的初始投资组合的购买,返回为纽马塞特——- - - - - -纽波特矩阵

笔记

如果没有指定初始投资组合对象初始化端口,则假定该值为0以致Pbuy = max(0, pwgt)Psell = max(0, -pwgt).

pbuy返回一个投资组合,PortfolioCVaRPortfolioMAD输入对象(obj).

相对于有效边界上最优投资组合的初始投资组合的销售额,作为纽马塞特——- - - - - -纽波特矩阵

笔记

如果没有指定初始投资组合对象初始化端口,则假定该值为0以致Pbuy = max(0, pwgt)Psell = max(0, -pwgt).

psell返回的投资组合,PortfolioCVaRPortfolioMAD输入对象(obj).

提示

您还可以使用点表示法估计具有目标投资组合回报的最佳投资组合。

[pwgt, pbuy, psell] = obj.estimateFrontierByReturn(TargetReturn);

介绍了R2011a