主要内容

estimateFrontierLimits

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

描述

例子

pwgtpbuypsell= estimateFrontierLimits(obj的有效边界端点处估计最优投资组合投资组合PortfolioCVaR,或PortfolioMAD对象。有关使用这些不同对象时各自工作流的详细信息,请参见投资组合对象工作流对象工作流,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求解器进行求解。

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

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.7,“BoundType”“条件”“NumAssets”3);

当与投资组合对象,setMinMaxNumAssets函数使您能够设置投资资产数量的限制(称为基数约束)。这设置了满足绑定约束的已分配资产的总数MinNumAssets而且MaxNumAssets.通过设置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 0

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

p.solverTypeMINLP
ans = 'OuterApproximation'
p.solverOptionsMINLP
ans =带字段的结构:MaxIterations: 1000 AbsoluteGapTolerance: 1.0000 -07 RelativeGapTolerance: 1.0000 -05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 Display: 'off' CutGeneration: 'basic' MaxIterationsInactiveCut: 30 activecutttolerance: 1.0000 -07 IntMasterSolverOptions: [1x1 optimal .options. 07。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对象。有关创建投资组合对象的更多信息,请参见

数据类型:对象

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

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

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

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

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

数据类型:字符|字符串

输出参数

全部折叠

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

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

请注意

中未指定初始投资组合obj。InitPort,则假定该值为0这样Pbuy = max(0, pwgt)而且Psell = max(0, -pwgt)

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

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

请注意

中未指定初始投资组合obj。InitPort,则假定该值为0这样Pbuy = max(0, pwgt)而且Psell = max(0, -pwgt)

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

提示

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

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

版本历史

在R2011a中引入

Baidu
map