estimateFrontierByReturn

Class: PortfolioCVaR

Estimate optimal portfolios with targeted portfolio returns for PortfolioCVaR object

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

CVaR portfolio object [PortfolioCVaR].

TargetReturn

Target values for CVaR portfolio object returns [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, TargetReturn is replaced with the minimum or maximum efficient portfolio return, depending 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 [NumAssets-by-NumPorts matrix].

pbuy

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

psell

Sales relative to an initial portfolio for optimal portfolios on the efficient frontier [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 7%, 10%, and 13%.

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 ];

rng(11);

p = PortfolioCVaR;
p = simulateNormalScenariosByMoments(p, m, C, 2000);
p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.95);

pwgt = estimateFrontierByReturn(p, [0.07 0.10, 0.13]);

display(pwgt);
pwgt =

    0.7371    0.3071         0
    0.1504    0.3919    0.4396
    0.0286    0.1011    0.1360
    0.0839    0.1999    0.4244

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

Was this topic helpful?