Documentation

estimateFrontierByReturn

Class: Portfolio

Estimate optimal portfolios with targeted portfolio returns

Syntax

[pwgt,pbuy,psell] = estimateFrontierByReturn(obj,
TargetReturn)

Description

[pwgt,pbuy,psell] = estimateFrontierByReturn(obj,
TargetReturn)
estimates optimal portfolios with targeted portfolio returns.

Tips

You can also use dot notation to estimate optimal portfolios with targeted portfolio returns.

[pwgt, pbuy, psell] = obj.estimateFrontierByReturn(TargetReturn);

Input Arguments

obj

Portfolio object [Portfolio].

TargetReturn

Target values for portfolio return [NumPorts vector].

    Note:   TargetReturn specifies target returns for portfolios on the efficient frontier. If any TargetReturn values are outside the range of returns for efficient portfolios, the TargetReturn is replaced with the minimum or maximum efficient portfolio return, depending upon whether the target return is below or above the range of efficient portfolio returns.

Output Arguments

pwgt

Optimal portfolios on the efficient frontier with specified target returns from TargetReturn that are [NumAssets-by-NumPorts matrix].

pbuy

Purchases relative to an initial portfolio for optimal portfolios on the efficient frontier that are [NumAssets-by-NumPorts matrix].

psell

Sales relative to an initial portfolio for optimal portfolios on the efficient frontier that are [NumAssets-by-NumPorts matrix].

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

Attributes

Accesspublic
Staticfalse
Hiddenfalse

To learn about attributes of methods, see Method Attributes in the MATLAB® Object-Oriented Programming documentation.

Examples

expand all

Obtain the Portfolio for Targeted Portfolio Returns

To obtain efficient portfolios that have targeted portfolio returns, the estimateFrontierByReturn method accepts one or more target portfolio returns and obtains efficient portfolios with the specified returns. Assume you have a universe of four assets where you want to obtain efficient portfolios with target portfolio returns of 6%, 9%, and 12%.

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 = estimateFrontierByReturn(p, [0.06, 0.09, 0.12]);

display(pwgt);
pwgt =

    0.8772    0.5032    0.1293
    0.0434    0.2488    0.4541
    0.0416    0.0780    0.1143
    0.0378    0.1700    0.3022

Was this topic helpful?