主要内容

estimateFrontierByRisk

估计最优投资组合和有针对性的投资组合的风险

描述

例子

(pwgt,pbuy,psell)= estimateFrontierByRisk (obj,TargetRisk)估计最优投资组合和有针对性的投资组合的风险投资组合,PortfolioCVaR,或PortfolioMAD对象。有关相应的工作流使用这些不同的对象时,看到的组合对象的工作流,PortfolioCVaR对象的工作流,PortfolioMAD对象的工作流

例子

(pwgt,pbuy,psell)= estimateFrontierByRisk (___,名称,值)添加name-optional名称-值对参数投资组合PortfolioMAD对象。

例子

全部折叠

获得有效的投资组合,投资组合风险,目标estimateFrontierByRisk函数接受一个或多个目标投资组合风险和获得有效的投资组合与指定的风险。假设您有一个宇宙的四个有效的投资组合资产,你想获得目标投资组合风险的12%,14%,16%。下面的例子使用了默认值“直接”方法来估计目标投资组合的最优投资组合的风险。

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 = estimateFrontierByRisk(p, [0.12, 0.14, 0.16]); display(pwgt);
pwgt =4×30.3984 0.2659 0.1416 0.3064 0.3791 0.4474 0.0882 0.1010 0.1131 0.2071 0.2540 0.2979

当任何一个,或任何组合的约束的有条件的BoundType,MinNumAssets,MaxNumAssets是活跃的,投资组合问题制定解决混合整数规划问题和适应。

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

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功能使您能够设置限制资产投资的数量(称为基数)的约束。这集的总数分配资产之间满足一定约束MinNumAssetsMaxNumAssets。通过设置MinNumAssets=MaxNumAssets= 2,只有两三个资产投资组合。

p = setMinMaxNumAssets (p, 2 2);

使用estimateFrontierByRisk和有针对性的投资组合风险估计的最优投资组合。

[pwgt, pbuy psell] = estimateFrontierByRisk (p [0.0324241, 0.0694534])
pwgt =3×20 0.5000 0.6907 - 0.0000 0.3093 - 0.5000
pbuy =3×20 0.5000 0.6907 - 0.0000 0.3093 - 0.5000
psell =3×20 0 0 0 0 0

estimateFrontierByRisk函数使用的适应解决来解决这个问题。使用setSolverMINLP功能配置SolverType和选项。

p.solverTypeMINLP
ans = ' OuterApproximation '
p.solverOptionsMINLP
ans =结构体字段:MaxIterations: 1000 AbsoluteGapTolerance: 1.0000 e-07 RelativeGapTolerance: 1.0000 e-05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000显示:“关闭”CutGeneration:“基本”MaxIterationsInactiveCut: 30 ActiveCutTolerance: 1.0000 e-07 IntMasterSolverOptions: [1 x1 optim.options。Intlinprog] NumIterationsEarlyIntegerConvergence: 30

获得有效的投资组合,投资组合风险,目标estimateFrontierByRisk函数接受一个或多个目标投资组合风险和获得有效的投资组合与指定的风险。假设您有一个宇宙的四个有效的投资组合资产,你想获得目标投资组合风险的12%,14%,16%。下面的例子使用了默认值“直接”方法来估计目标投资组合的最优投资组合的风险。的“直接”方法使用fmincon解决投资组合回报率最大化的优化问题,根据目标风险二次非线性约束。setSolver指定的年代olverTypeSolverOptionsfmincon

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); p = setSolver(p,“fmincon”,“显示”,“关闭”,“算法”,“sqp”,“SpecifyObjectiveGradient”,真的,“SpecifyConstraintGradient”,真的,“ConstraintTolerance”1.0 e-8“OptimalityTolerance”1.0 e-8“StepTolerance”1.0 e-8);pwgt = estimateFrontierByRisk (p (0.12, 0.14, 0.16));显示(pwgt);
pwgt =4×30.3984 0.2659 0.1416 0.3064 0.3791 0.4474 0.0882 0.1010 0.1131 0.2071 0.2540 0.2979

获得有效的投资组合,投资组合风险,目标estimateFrontierByRisk函数接受一个或多个目标投资组合风险和获得有效的投资组合与指定的风险。假设您有一个宇宙的四个有效的投资组合资产,你想获得目标投资组合风险的12%,20%,30%。

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 = PortfolioCVaR; p = simulateNormalScenariosByMoments(p, m, C, 2000); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); pwgt = estimateFrontierByRisk(p, [0.12, 0.20, 0.30]); display(pwgt);
pwgt =4×30.5363 - 0.1387 0 0.2655 0.4991 0.3830 0.0570 0.1239 0.1461 0.1412 0.2382 0.4709

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

获得有效的投资组合,投资组合风险,目标estimateFrontierByRisk函数接受一个或多个目标投资组合风险和获得有效的投资组合与指定的风险。假设您有一个宇宙的四个有效的投资组合资产,你想获得目标投资组合风险的12%,20%,25%。下面的例子使用了默认值“直接”方法来估计目标投资组合的最优投资组合的风险。

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 = estimateFrontierByRisk(p, [0.12, 0.20, 0.25]); display(pwgt);
pwgt =4×30.1610 0 0 0.4784 0.2137 0.0047 0.1116 0.1384 0.1200 0.2490 0.6480 0.8753

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

获得有效的投资组合,投资组合风险,目标estimateFrontierByRisk函数接受一个或多个目标投资组合风险和获得有效的投资组合与指定的风险。假设您有一个宇宙的四个有效的投资组合资产,你想获得目标投资组合风险的12%,20%,25%。下面的例子使用了默认值“直接”方法来估计目标投资组合的最优投资组合的风险。的“直接”方法使用fmincon解决投资组合回报率最大化的优化问题,根据目标风险二次非线性约束。setSolver指定的年代olverTypeSolverOptionsfmincon

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); p = setSolver(p,“fmincon”,“显示”,“关闭”,“算法”,“sqp”,“SpecifyObjectiveGradient”,真的,“SpecifyConstraintGradient”,真的,“ConstraintTolerance”1.0 e-8“OptimalityTolerance”1.0 e-8“StepTolerance”1.0 e-8);plotFrontier (p);

图包含一个坐标轴对象。坐标轴对象与标题E f f我E n c t空白f r o n t E r包含一个类型的对象。

pwgt = estimateFrontierByRisk (p (0.12 - 0.20, 0.25));显示(pwgt);
pwgt =4×30.1613 0.0000 -0.0000 0.4777 0.2139 0.0037 0.1118 0.1381 0.1214 0.2492 0.6480 0.8749

输入参数

全部折叠

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

请注意

如果没有指定初始投资组合obj.InitPort,它被认为是0pwgt pbuy = max (0)-pwgt psell = max (0)。设置一个初始投资组合的更多信息,看一下setInitPort

数据类型:对象

目标投资组合风险值,指定为一个NumPorts向量。

请注意

如果有任何TargetRisk值范围之外的风险有效的投资组合,目标被替换为风险最小或最大有效资产组合风险,取决于目标风险低于或高于有效资产组合风险的范围。

数据类型:

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:[pwgt, pbuy psell] = estimateFrontierByRisk (p,“方法”,“直接”)

估计风险边界的方法投资组合PortfolioMAD对象,指定为逗号分隔两人组成的“方法”一个特征向量与下列值之一:

数据类型:字符

输出参数

全部折叠

最优投资组合的有效边界与指定目标回报TargetRisk,返回NumAssets——- - - - - -NumPorts矩阵。pwgt返回的投资组合,PortfolioCVaR,或PortfolioMAD输入对象(obj)。

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

请注意

如果没有指定初始投资组合obj.InitPort,这被认为是价值0这样pwgt pbuy = max (0)-pwgt psell = max (0)

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

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

请注意

如果没有指定初始投资组合obj.InitPort,这被认为是价值0这样pwgt pbuy = max (0)-pwgt psell = max (0)

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

提示

您还可以使用点符号和有针对性的投资组合风险估计的最优投资组合。

[pwgt, pbuy psell] = obj.estimateFrontierByRisk (TargetRisk);

[pwgt, pbuy psell] = obj.estimateFrontierByRisk (TargetRisk、名称、值);

介绍了R2011a