主要内容

estimateFrontierLimits

估计有效边界端点的最优投资组合

描述

例子

pwgtpbuypsell) = estimateFrontierLimits (obj的有效边界端点估计最优投资组合投资组合PortfolioCVaR,或PortfolioMAD对象。有关使用这些不同对象时各自工作流程的详细信息,请参见组合对象的工作流PortfolioCVaR对象的工作流,PortfolioMAD对象的工作流

例子

pwgtpbuypsell) = estimateFrontierLimits (obj选择在有效边界的端点估计最优投资组合,并为选择论点。

例子

全部折叠

考虑到投资组合p,estimateFrontierLimits函数获取端点组合。

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); disp(pwgt);
0.8891 0 0.0369 0 0.0404 0 0.0336 1.0000

当任何一个,或约束的任何组合有条件的BoundTypeMinNumAssets,MaxNumAssets时,将投资组合问题表述为混合整数规划问题,并使用MINLP求解器。

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

资产均值= [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.7,“BoundType”“条件”“NumAssets”3);

当与一个投资组合对象,setMinMaxNumAssets函数使您能够设置投资的资产数量(称为基数)约束的限制。这设置了满足Bound约束的已分配资产的总数MinNumAssetsMaxNumAssets.通过设置MinNumAssetsMaxNumAssets= 2,三种资产中只有两种被投资在投资组合中。

p = setMinMaxNumAssets(p, 2,2);

使用estimateFrontierLimits估计有效边界端点处的最优投资组合。

[pwgt, pbuy, psell] = estimateFrontierLimits(p,“两个”
pwgt =3×20.3000 0.3000 0.7000 00 0.7000
pbuy =3×20.3000 0.3000 0.7000 00 0.7000
psell =3×20 0 0 0 0

estimateFrontierLimits函数使用MINLP求解器来解决这个问题。使用setSolverMINLP命令功能SolverType和选项。

p.solverTypeMINLP
ans = ' OuterApproximation '
p.solverOptionsMINLP
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

考虑到投资组合p,estimateFrontierLimits函数获取端点组合。

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; rng(11); AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); pwgt = estimateFrontierLimits(p); disp(pwgt);
0.8451 0 0.0613 0 0.0451 0 0.0485 1.0000

这个函数rng 年代 e e d )重置随机数生成器以产生记录的结果。没有必要重新设置随机数生成器来模拟场景。

考虑到投资组合p,estimateFrontierLimits函数获取端点组合。

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; rng(11); AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); pwgt = estimateFrontierLimits(p); disp(pwgt);
0.8817 0 0.0431 0 0.0387 0 0.0366 1.0000

这个函数rng 年代 e e d )重置随机数生成器以产生记录的结果。没有必要重新设置随机数生成器来模拟场景。

输入参数

全部折叠

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

数据类型:对象

(可选)在有效边界的极端处获得的投资组合指标,指定为具有值的字符向量“两个”“两个”“最小值”“最小值”,或“马克斯”“马克斯”.a的选项选择行动:

  • []-计算最小风险和最大回报的投资组合。

  • “两个”“两个”-计算最小风险和最大回报的投资组合。

  • “最小值”“最小值”-只计算最小风险投资组合。

  • “马克斯”“马克斯”-只计算最大回报投资组合。

数据类型:字符|字符串

输出参数

全部折叠

有效边界端点处的最优投资组合TargetReturn,返回为NumAssets——- - - - - -NumPorts矩阵。pwgt返回一个投资组合PortfolioCVaR,或PortfolioMAD输入对象(obj).

在有效边界端点的最优投资组合相对于初始投资组合的购买,返回为NumAssets——- - - - - -NumPorts矩阵。

请注意

如果没有指定初始投资组合obj。InitPort,该值被假定为0这样Pbuy = max(0, pwgt)Psell = max(0, -pwgt)

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

在有效边界上的最优投资组合相对于初始投资组合的销售额,回报为aNumAssets——- - - - - -NumPorts矩阵。

请注意

如果没有指定初始投资组合obj。InitPort,该值被假定为0这样Pbuy = max(0, pwgt)Psell = max(0, -pwgt)

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

提示

你也可以用点符号来估计有效边界端点的最优投资组合。

[pwgt, pbuy, psell] = obj.estimateFrontierLimits(Choice);

介绍了R2011a