获取整个有效边界上的投资组合
要获得最优投资组合,最基本的方法是获取整个有效边界范围上的各个点。
给定一个关于 PortfolioCVaR
对象的投资组合优化问题,estimateFrontier
函数将根据从最小到最大收益有效投资组合的收益代理计算均匀分布的有效投资组合。估计的投资组合数量由隐藏属性 defaultNumPorts
控制,其值为 10
。如果要将估计的投资组合数量指定为其他值,可通过指定 estimateFrontier
的输入参量来实现。以下示例显示了整个有效边界范围上的默认有效投资组合数量。
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; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); pwgt = estimateFrontier(p); disp(pwgt)
0.8645 0.6960 0.5319 0.3649 0.1948 0.0215 0 0 0 0 0.0602 0.1582 0.2551 0.3559 0.4660 0.5740 0.4573 0.3115 0.1599 0 0.0326 0.0451 0.0503 0.0567 0.0577 0.0677 0.0501 0.0253 0.0077 0 0.0428 0.1007 0.1627 0.2226 0.2815 0.3368 0.4926 0.6632 0.8325 1.0000
如果您只需要四个投资组合,您可以使用 estimateFrontier
并将 NumPorts
指定为 4
。
pwgt = estimateFrontier(p, 4); disp(pwgt)
0.8645 0.3649 0 0 0.0602 0.3559 0.4573 0 0.0326 0.0567 0.0501 0 0.0428 0.2226 0.4926 1.0000
从初始投资组合开始,estimateFrontier
还会返回从您的初始投资组合到有效边界上每个有效投资组合的买入交易和卖出交易。例如,给定 pwgt0
中的初始投资组合,您可以得到以下买入交易和卖出交易:
pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = setInitPort(p, pwgt0); [pwgt, pbuy, psell] = estimateFrontier(p); display(pwgt)
pwgt = 4×10
0.8645 0.6960 0.5319 0.3649 0.1948 0.0215 0 0 0 0
0.0602 0.1582 0.2551 0.3559 0.4660 0.5740 0.4573 0.3115 0.1599 0
0.0326 0.0451 0.0503 0.0567 0.0577 0.0677 0.0501 0.0253 0.0077 0
0.0428 0.1007 0.1627 0.2226 0.2815 0.3368 0.4926 0.6632 0.8325 1.0000
display(pbuy)
pbuy = 4×10
0.5645 0.3960 0.2319 0.0649 0 0 0 0 0 0
0 0 0 0.0559 0.1660 0.2740 0.1573 0.0115 0 0
0 0 0 0 0 0 0 0 0 0
0 0.0007 0.0627 0.1226 0.1815 0.2368 0.3926 0.5632 0.7325 0.9000
display(psell)
psell = 4×10
0 0 0 0 0.1052 0.2785 0.3000 0.3000 0.3000 0.3000
0.2398 0.1418 0.0449 0 0 0 0 0 0.1401 0.3000
0.1674 0.1549 0.1497 0.1433 0.1423 0.1323 0.1499 0.1747 0.1923 0.2000
0.0572 0 0 0 0 0 0 0 0 0
如果您没有指定初始投资组合,则买入和卖出权重假设您的初始投资组合为 0
。
另请参阅
PortfolioCVaR
| estimateFrontier
| estimateFrontierLimits
| estimateFrontierByReturn
| estimatePortReturn
| estimateFrontierByRisk
| estimatePortRisk
| estimateFrontierByRisk
| setSolver
相关示例
- 估计 PortfolioCVaR 对象整个边界上的有效投资组合
- Creating the PortfolioCVaR Object
- Working with CVaR Portfolio Constraints Using Defaults
- Estimate Efficient Frontiers for PortfolioCVaR Object
- Asset Returns and Scenarios Using PortfolioCVaR Object
- Troubleshooting CVaR Portfolio Optimization Results
- Hedging Using CVaR Portfolio Optimization
- 计算 CVaR 投资组合的最大收益风险比