estimateFrontierByRisk
估计最优投资组合和有针对性的投资组合的风险
语法
描述
(
估计最优投资组合和有针对性的投资组合的风险pwgt
,pbuy
,psell
)= estimateFrontierByRisk (obj
,TargetRisk
)投资组合
,PortfolioCVaR
,或PortfolioMAD
对象。有关相应的工作流使用这些不同的对象时,看到的组合对象的工作流,PortfolioCVaR对象的工作流,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
,MinNumAsset
,MaxNumAsset
约束
当任何一个,或任何组合的约束的有条件的
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
与半连续约束集习=0
或0.02
< =习
< =0.5
对所有我=1
,……NumAssets
。
p = setBounds (p, 0.02, 0.7,“BoundType”,“条件”,“NumAssets”3);
当处理一个投资组合
对象,setMinMaxNumAssets
功能使您能够设置限制资产投资的数量(称为基数)的约束。这集的总数分配资产之间满足一定约束MinNumAssets
和MaxNumAssets
。通过设置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
指定的年代olverType
和SolverOptions
为fmincon
。
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
获得投资组合和有针对性的投资组合风险PortfolioCVaR对象
获得有效的投资组合,投资组合风险,目标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
(
)重置随机数发生器产生的记录结果。没有必要重新设置随机数发生器模拟场景。
获得投资组合和有针对性的投资组合风险PortfolioMAD对象
获得有效的投资组合,投资组合风险,目标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
(
)重置随机数发生器产生的记录结果。没有必要重新设置随机数发生器模拟场景。
获得投资组合和有针对性的投资组合风险PortfolioMAD对象使用直接方法和解决方案
获得有效的投资组合,投资组合风险,目标estimateFrontierByRisk
函数接受一个或多个目标投资组合风险和获得有效的投资组合与指定的风险。假设您有一个宇宙的四个有效的投资组合资产,你想获得目标投资组合风险的12%,20%,25%。下面的例子使用了默认值“直接”
方法来估计目标投资组合的最优投资组合的风险。的“直接”
方法使用fmincon
解决投资组合回报率最大化的优化问题,根据目标风险二次非线性约束。setSolver
指定的年代olverType
和SolverOptions
为fmincon
。
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);
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
输入参数
obj
- - - - - -对象组合
对象
对象组合,使用指定的投资组合
,PortfolioCVaR
,或PortfolioMAD
对象。创建一个组合对象的更多信息,请参阅
请注意
如果没有指定初始投资组合obj.InitPort
,它被认为是0
这pwgt pbuy = max (0)
和-pwgt psell = max (0)
。设置一个初始投资组合的更多信息,看一下setInitPort
。
数据类型:对象
TargetRisk
- - - - - -投资组合风险的目标值
向量
目标投资组合风险值,指定为一个NumPorts
向量。
请注意
如果有任何TargetRisk
值范围之外的风险有效的投资组合,目标被替换为风险最小或最大有效资产组合风险,取决于目标风险低于或高于有效资产组合风险的范围。
数据类型:双
名称-值参数
指定可选的逗号分隔条名称,值
参数。的名字
参数名称和吗价值
相应的价值。的名字
必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家
。
[pwgt, pbuy psell] = estimateFrontierByRisk (p,“方法”,“直接”)
方法
- - - - - -估计风险边界的方法投资组合
或PortfolioMAD
对象
“直接”
(默认)|特征向量和价值“直接”
或“迭代”
估计风险边界的方法投资组合
或PortfolioMAD
对象,指定为逗号分隔两人组成的“方法”
一个特征向量与下列值之一:
“直接”
——构建一个优化问题与目标风险投资组合回报率最大化非线性约束,直接使用和解决它fmincon
,而不是反复探索有效边界。使用的一个例子“直接”
选项,看到获得投资组合和有针对性的投资组合风险投资组合对象使用直接方法和解决方案和获得投资组合和有针对性的投资组合风险PortfolioMAD对象使用直接方法和解决方案。“迭代”
——一维优化使用fminbnd
找到投资组合回报率之间的最小和最大回报的前沿最小化的实际风险和目标风险之间的区别。然后组合权重由回归得到解决边境问题。因此,“迭代”
方法是比慢“直接”
。
数据类型:字符
输出参数
pwgt
——最优投资组合有效边界与指定目标的风险
矩阵
最优投资组合的有效边界与指定目标回报TargetRisk
,返回NumAssets
——- - - - - -NumPorts
矩阵。pwgt
返回的投资组合
,PortfolioCVaR
,或PortfolioMAD
输入对象(obj
)。
pbuy
——购买相对于初始投资组合的最优投资组合有效边界
矩阵
购买相对于最初的投资组合的最优投资组合的有效边界,返回NumAssets
——- - - - - -NumPorts
矩阵。
请注意
如果没有指定初始投资组合obj.InitPort
,这被认为是价值0
这样pwgt pbuy = max (0)
和-pwgt psell = max (0)
。
pbuy
返回的投资组合
,PortfolioCVaR
,或PortfolioMAD
输入对象(obj
)。
psell
——销售相对于初始投资组合最优投资组合有效边界
矩阵
销售相对于最初的投资组合的最优投资组合的有效边界,作为一个返回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、名称、值);
另请参阅
estimateFrontier
|estimateFrontierByReturn
|estimateFrontierLimits
|setInitPort
|rng
|setBounds
|setMinMaxNumAssets
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。