Obtaining Endpoints of the Efficient Frontier
Often when using a PortfolioMAD
object, you might be interested in the endpoint portfolios for the efficient frontier. Suppose that you want to determine the range of returns from minimum to maximum to refine a search for a portfolio with a specific target return. Use the estimateFrontierLimits
function to obtain the endpoint portfolios.
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 = PortfolioMAD; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); pwgt = estimateFrontierLimits(p); disp(pwgt)
0.8823 0 0.0427 0 0.0392 0 0.0358 1.0000
Note that the endpoints of the efficient frontier depend upon the Scenarios
in the PortfolioMAD
object. If you change the Scenarios
, you are likely to obtain different endpoints.
Starting from an initial portfolio, estimateFrontierLimits
also returns purchases and sales to get from the initial portfolio to the endpoint portfolios on the efficient frontier. For example, given an initial portfolio in pwgt0
, you can obtain purchases and sales:
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 = PortfolioMAD; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = setInitPort(p, pwgt0); [pwgt, pbuy, psell] = estimateFrontierLimits(p); display(pwgt)
pwgt = 4×2
0.8862 0
0.0416 0
0.0354 0
0.0368 1.0000
display(pbuy)
pbuy = 4×2
0.5862 0
0 0
0 0
0 0.9000
display(psell)
psell = 4×2
0 0.3000
0.2584 0.3000
0.1646 0.2000
0.0632 0
If you do not specify an initial portfolio, the purchase and sale weights assume that your initial portfolio is 0
.
See Also
PortfolioMAD
| estimateFrontier
| estimateFrontierLimits
| estimateFrontierByReturn
| estimatePortReturn
| estimateFrontierByRisk
| estimatePortRisk
| estimateFrontierByRisk
| setSolver
Related Examples
- Estimate Efficient Portfolios Along the Entire Frontier for PortfolioMAD Object
- Creating the PortfolioMAD Object
- Working with MAD Portfolio Constraints Using Defaults
- Estimate Efficient Frontiers for PortfolioMAD Object
- Asset Returns and Scenarios Using PortfolioMAD Object