estimatePortReturn
估计投资组合收益均值
说明
估计 pret
= estimatePortReturn(obj
,pwgt
)Portfolio
、PortfolioCVaR
或 PortfolioMAD
对象的投资组合收益均值(作为投资组合收益的代理)。有关使用这些不同对象时各自工作流的详细信息,请参阅 Portfolio 对象工作流、PortfolioCVaR 对象工作流和 PortfolioMAD 对象工作流。
示例
估计 Portfolio 对象的投资组合收益均值
给定投资组合 p
,使用 estimatePortReturn
函数来估计投资组合收益均值。
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 = Portfolio; p = setAssetMoments(p, m, C); p = setDefaultConstraints(p); pwgt = estimateFrontierLimits(p); pret = estimatePortReturn(p, pwgt); disp(pret)
0.0590 0.1800
估计具有完整性约束的 Portfolio
对象的投资组合收益均值
为三项资产创建一个 Portfolio
对象。
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 = Portfolio('AssetMean', AssetMean, 'AssetCovar', AssetCovar); p = setDefaultConstraints(p);
使用 setBounds
为 i=1
,...NumAssets.
的所有资产设置半连续约束,使 xi=0
或 0.02
<=xi
<=0.5
。
p = setBounds(p, 0.02, 0.5,'BoundType', 'Conditional', 'NumAssets', 3);
当使用 Portfolio
对象时,setMinMaxNumAssets
函数支持您为纯多头投资组合设置基数约束。这为 Portfolio
对象设置了基数约束,其中满足非零半连续约束的已分配资产总数介于 MinNumAssets
和 MaxNumAssets
之间。通过设置 MinNumAssets
=MaxNumAssets
=2,仅对投资组合的三项资产中的两项进行了投资。
p = setMinMaxNumAssets(p, 2, 2);
使用 estimatePortReturn
来估计 Portfolio
对象的投资组合收益均值。
pwgt = estimateFrontierLimits(p); pret = estimatePortReturn(p, pwgt)
pret = 2×1
0.0072
0.0119
estimatePortReturn
函数使用 MINLP 求解器来求解此问题。使用 setSolverMINLP
函数来配置 SolverType
和选项。
p.solverOptionsMINLP
ans = struct with fields:
MaxIterations: 1000
AbsoluteGapTolerance: 1.0000e-07
RelativeGapTolerance: 1.0000e-05
NonlinearScalingFactor: 1000
ObjectiveScalingFactor: 1000
Display: 'off'
CutGeneration: 'basic'
MaxIterationsInactiveCut: 30
ActiveCutTolerance: 1.0000e-07
IntMainSolverOptions: [1x1 optim.options.Intlinprog]
NumIterationsEarlyIntegerConvergence: 30
ExtendedFormulation: 0
NumInnerCuts: 10
NumInitialOuterCuts: 10
估计 PortfolioCVaR 对象的投资组合收益均值
给定投资组合 p
,使用 estimatePortReturn
函数来估计投资组合收益均值。
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); pret = estimatePortReturn(p, pwgt); disp(pret)
0.0050 0.0154
函数 rng
() 重置了随机数生成器以得到文档中的结果。在模拟场景时重置随机数生成器这一步并不是必需的。
估计 PortfolioMAD 对象的投资组合收益均值
给定投资组合 p
,使用 estimatePortReturn
函数来估计投资组合收益均值。
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); pret = estimatePortReturn(p, pwgt); disp(pret)
0.0048 0.0154
函数 rng
() 重置了随机数生成器以得到文档中的结果。在模拟场景时重置随机数生成器这一步并不是必需的。
输入参数
obj
— 投资组合的对象
对象
投资组合对象,使用 Portfolio
、PortfolioCVaR
或 PortfolioMAD
对象指定。有关创建 Portfolio 对象的详细信息,请参阅
数据类型: object
pwgt
— 投资组合的集合
矩阵
投资组合的集合,指定为 NumAssets
×NumPorts
矩阵,其中 NumAssets
是资产池中的资产数量,NumPorts
是投资组合集合中的投资组合数量。
数据类型: double
输出参量
提示
您还可以使用圆点表示法来估计投资组合收益均值(作为投资组合的收益代理)。
pret = obj.estimatePortReturn(pwgt);
版本历史记录
在 R2011a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)