Main Content


Portfolio expected return and risk



[PortRisk,PortReturn] = portstats(ExpReturn,ExpCovariance) computes the expected rate of return and risk for a portfolio of assets.


An alternative for portfolio optimization is to use the Portfolio object for mean-variance portfolio optimization. This object supports gross or net portfolio returns as the return proxy, the variance of portfolio returns as the risk proxy, and a portfolio set that is any combination of the specified constraints to form a portfolio set. For information on the workflow when using Portfolio objects, see Portfolio Object Workflow.


[PortRisk,PortReturn] = portstats(___,Wts) specifies options using one or more optional arguments in addition to the input arguments in the previous syntax.


collapse all

This example shows how to calculate the expected rate of return and risk for a portfolio of assets.

ExpReturn = [0.1 0.2 0.15]; 

ExpCovariance = [0.0100   -0.0061    0.0042 
                -0.0061    0.0400   -0.0252 
                 0.0042   -0.0252    0.0225 ];
PortWts=[0.4 0.2 0.4; 0.2 0.4 0.2];

[PortRisk, PortReturn] = portstats(ExpReturn, ExpCovariance,... 
PortRisk = 2×1


PortReturn = 2×1


Input Arguments

collapse all

Expected (mean) return of each asset, specified as a 1-by-NASSETS vector.

Data Types: double

Asset return covariances, specified as an NASSETS-by-NASSETS matrix.

Data Types: double

(Optional) Weights allocated to each asset, specified as an NPORTS-by-NASSETS matrix. Each row represents a different weighting combination of the assets in the portfolio. If Wts is not entered, weights of 1/NASSETS are assigned to each security.

Data Types: double

Output Arguments

collapse all

Standard deviation of each portfolio, returned as an NPORTS-by-1 vector.

Expected return of each portfolio, returned an NPORTS-by-1 vector.

Version History

Introduced before R2006a