Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

estimateFrontierLimits

Estimate optimal portfolios at endpoints of efficient frontier

Use the estimateFrontierLimits function with a Portfolio, PortfolioCVaR, or PortfolioMAD object to estimate optimal portfolios at endpoints of efficient frontier.

For details on the respective workflows when using these different objects, see Portfolio Object Workflow, PortfolioCVaR Object Workflow, and PortfolioMAD Object Workflow.

Syntax

[pwgt,pbuy,psell] = estimateFrontierLimits(obj)
[pwgt,pbuy,psell] = estimateFrontierLimits(obj,Choice)

Description

example

[pwgt,pbuy,psell] = estimateFrontierLimits(obj) estimates optimal portfolios at endpoints of efficient frontier.

example

[pwgt,pbuy,psell] = estimateFrontierLimits(obj,Choice) estimates optimal portfolios at endpoints of efficient frontier with an additional option specified for the Choice argument.

Examples

collapse all

Given portfolio p, the estimateFrontierLimits function obtains 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 ];
 
p = Portfolio;
p = setAssetMoments(p, m, C);
p = setDefaultConstraints(p);
pwgt = estimateFrontierLimits(p);

disp(pwgt);
    0.8891         0
    0.0369         0
    0.0404         0
    0.0336    1.0000

Given portfolio p, the estimateFrontierLimits function obtains 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;

rng(11);

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioCVaR;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.95);


pwgt = estimateFrontierLimits(p);

disp(pwgt);
    0.8454    0.0000
    0.0599    0.0000
    0.0462    0.0000
    0.0485    1.0000

The function rng() resets the random number generator to produce the documented results. It is not necessary to reset the random number generator to simulate scenarios.

Given portfolio p, the estimateFrontierLimits function obtains 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;

rng(11);

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioMAD;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);

pwgt = estimateFrontierLimits(p);

disp(pwgt);
    0.8815    0.0000
    0.0431    0.0000
    0.0389    0.0000
    0.0365    1.0000

The function rng() resets the random number generator to produce the documented results. It is not necessary to reset the random number generator to simulate scenarios.

Input Arguments

collapse all

Object for portfolio, specified using Portfolio, PortfolioCVaR, or PortfolioMAD object. For more information on creating a portfolio object, see

Indicator which portfolios to obtain at the extreme ends of the efficient frontier, specified as a character vector with values [], 'Both', 'Min', or 'Max'. Choice specifies various actions with default value []. The options for a Choice action are:

  • [] — Compute both minimum-risk and maximum-return portfolios.

  • 'Both' — Compute both minimum-risk and maximum-return portfolios.

  • 'Min' — Compute minimum-risk portfolio only.

  • 'Max' — Compute maximum-return portfolio only.

Data Types: char

Output Arguments

collapse all

Optimal portfolios at the endpoints of the efficient frontier TargetReturn, returned as a NumAssets-by-NumPorts matrix. pwgt is returned for a Portfolio, PortfolioCVaR, or PortfolioMAD input object (obj).

Purchases relative to an initial portfolio for optimal portfolios at the endpoints of the efficient frontier, returned as NumAssets-by-NumPorts matrix.

Note

If no initial portfolio is specified in obj.InitPort, that value is assumed to be 0 such that pbuy = max(0, pwgt) and psell = max(0, -pwgt).

pbuy is returned for a Portfolio, PortfolioCVaR, or PortfolioMAD input object (obj).

Sales relative to an initial portfolio for optimal portfolios on the efficient frontier, returned as a NumAssets-by-NumPorts matrix.

Note

If no initial portfolio is specified in obj.InitPort, that value is assumed to be 0 such that pbuy = max(0, pwgt) and psell = max(0, -pwgt).

psell is returned for Portfolio, PortfolioCVaR, or PortfolioMAD input object (obj).

Tips

You can also use dot notation to estimate the optimal portfolios at the endpoints of the efficient frontier.

[pwgt, pbuy, psell] = obj.estimateFrontierLimits(Choice);

Introduced in R2011a

Was this topic helpful?