Portfolio optimization problems involve identifying portfolios that satisfy three criteria:
Minimize a proxy for risk.
Match or exceed a proxy for return.
Satisfy basic feasibility requirements.
Portfolios are points from a feasible set of assets that constitute an asset universe. A portfolio specifies either holdings or weights in each individual asset in the asset universe. The convention is to specify portfolios in terms of weights, although the portfolio optimization tools work with holdings as well.
The set of feasible portfolios is necessarily a nonempty, closed, and bounded set. The proxy for risk is a function that characterizes either the variability or losses associated with portfolio choices. The proxy for return is a function that characterizes either the gross or net benefits associated with portfolio choices. The terms "risk" and "risk proxy" and "return" and "return proxy" are interchangeable. The fundamental insight of Markowitz (see Portfolio Optimization) is that the goal of the portfolio choice problem is to seek minimum risk for a given level of return and to seek maximum return for a given level of risk. Portfolios satisfying these criteria are efficient portfolios and the graph of the risks and returns of these portfolios forms a curve called the efficient frontier.
To specify a portfolio optimization problem, you need the following:
Proxy for portfolio return (μ)
Proxy for portfolio risk (Σ)
Set of feasible portfolios (X), called a portfolio set
Financial Toolbox™ has three objects to solve specific types of portfolio optimization problems:
The Portfolio object (Using Portfolio Objects) supports mean-variance portfolio optimization (see Markowitz [46], [47] at Portfolio Optimization). This object has either 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.
The PortfolioCVaR object (Using PortfolioCVaR Objects) implements what is known as conditional value-at-risk portfolio optimization (see Rockafellar and Uryasev [48], [49] at Portfolio Optimization), which is generally referred to as CVaR portfolio optimization. CVaR portfolio optimization works with the same return proxies and portfolio sets as mean-variance portfolio optimization but uses conditional value-at-risk of portfolio returns as the risk proxy.
The PortfolioMAD object (Using PortfolioMAD Objects) implements what is known as mean-absolute deviation portfolio optimization (see Konno and Yamazaki [50] at Portfolio Optimization), which is generally referred to as MAD portfolio optimization. MAD portfolio optimization works with the same return proxies and portfolio sets as mean-variance portfolio optimization but uses mean-absolute deviation portfolio returns as the risk proxy.
The proxy for portfolio return is a function $$\mu :X\to R$$ on a portfolio set $$X\subset {R}^{n}$$ that characterizes the rewards associated with portfolio choices. In most cases, the proxy for portfolio return has two general forms, gross and net portfolio returns. Both portfolio return forms separate the risk-free rate r_{0} so that the portfolio $$x\in X$$ contains only risky assets.
Regardless of the underlying distribution of asset returns, a collection of S asset returns y_{1},...,y_{S} has a mean of asset returns
$$m=\frac{1}{S}{\displaystyle \sum _{s=1}^{S}{y}_{s},}$$
and (sample) covariance of asset returns
$$C=\frac{1}{S-1}{\displaystyle \sum _{s=1}^{S}({y}_{s}-m){({y}_{s}-m)}^{T}.}$$
These moments (or alternative estimators that characterize these moments) are used directly in mean-variance portfolio optimization to form proxies for portfolio risk and return.
The gross portfolio return for a portfolio $$x\in X$$ is
$$\mu (x)={r}_{0}+{(m-{r}_{0}1)}^{T}x,$$
where:
r_{0} is the risk-free rate (scalar).
m is the mean of asset returns (n vector).
If the portfolio weights sum to 1
, the risk-free
rate is irrelevant. The properties in the Portfolio object to specify
gross portfolio returns are:
RiskFreeRate
for r_{0}
AssetMean
for m
The net portfolio return for a portfolio $$x\in X$$ is
$$\mu (x)={r}_{0}+{(m-{r}_{0}1)}^{T}x-{b}^{T}\mathrm{max}\{0,x-{x}_{0}\}-{s}^{T}\mathrm{max}\{0,{x}_{0}-x\},$$
where:
r_{0} is the risk-free rate (scalar).
m is the mean of asset returns (n vector).
b is the proportional cost to purchase assets (n vector).
s is the proportional cost to sell assets (n vector).
You can incorporate fixed transaction costs in this model also. Though in this case, it is necessary to incorporate prices into such costs. The properties in the Portfolio object to specify net portfolio returns are:
RiskFreeRate
for r_{0}
AssetMean
for m
InitPort
for x_{0}
BuyCost
for b
SellCost
for s
The proxy for portfolio risk is a function $$\sum :X\to R$$ on a portfolio set $$X\subset {R}^{n}$$ that characterizes the risks associated with portfolio choices.
The variance of portfolio returns for a portfolio $$x\in X$$ is
$$\sum \left(x\right)={x}^{T}Cx$$
where C is
the covariance of asset returns (n
-by-n
positive-semidefinite
matrix).
The property in the Portfolio object to specify the variance
of portfolio returns is AssetCovar
for C.
Although the risk proxy in mean-variance portfolio optimization is the variance of portfolio returns, the square root, which is the standard deviation of portfolio returns, is often reported and displayed. Moreover, this quantity is often called the "risk" of the portfolio. For details, see Markowitz (Portfolio Optimization).
The conditional value-at-risk for a portfolio $$x\in X$$, which is also known as expected shortfall, is defined as
$$CVa{R}_{\alpha}\left(x\right)=\frac{1}{1-\alpha}{\displaystyle \underset{f(x,y)\ge Va{R}_{\alpha}(x)}{\int}f(x,y)p(y)dy,}$$
where:
α is the probability level such that 0
< α < 1
.
f(x,y) is the loss function for a portfolio x and asset return y.
p(y) is the probability density function for asset return y.
VaR_{α} is the value-at-risk of portfolio x at probability level α.
The value-at-risk is defined as
$$Va{R}_{\alpha}\left(x\right)=\mathrm{min}\left\{\gamma :\mathrm{Pr}\left[f(x,Y)\le \gamma \right]\ge \alpha \right\}.$$
An alternative formulation for CVaR has the form:
$$CVa{R}_{\alpha}(x)=Va{R}_{\alpha}\left(x\right)+\frac{1}{1-\alpha}{\displaystyle \underset{{R}^{n}}{\int}\mathrm{max}}\left\{0,(f(x,y)-Va{R}_{\alpha}(x))\right\}p(y)dy$$
The choice for the probability level α is
typically 0.9 or 0.95. Choosing α implies
that the value-at-risk VaR_{α}(x) for
portfolio x is the portfolio return such that the
probability of portfolio returns falling below this level is (1
–α).
Given VaR_{α}(x) for
a portfolio x, the conditional value-at-risk of
the portfolio is the expected loss of portfolio returns above the
value-at-risk return.
Note: Value-at-risk is a positive value for losses so that the probability level α indicates the probability that portfolio returns are below the negative of the value-at-risk. |
The risk proxy for CVaR portfolio optimization is CVaR_{α}(x) for a given portfolio $$x\in X$$ and $$\alpha \in (0,1)$$. The value-at-risk, or VaR, for a given probability level is estimated whenever CVaR is estimated.
In addition, keep in mind that VaR and CVaR are sample estimators for VaR and CVaR based on the given scenarios. Better scenario samples yield more reliable estimates of VaR and CVaR.
For more information, see Rockafellar and Uryasev [48], [49] at Portfolio Optimization.
The mean-absolute-deviation (MAD) for a portfolio $$x\in X$$ is defined as
$$\sum (x)=}\frac{1}{S}{\displaystyle \sum _{s=1}^{S}\left|{({y}_{s}-m)}^{T}x\right|$$
where:
y_{s} are asset returns with scenarios s = 1,...S (S collection of n vectors).
f(x,y) is the loss function for a portfolio x and asset return y.
m is the mean of asset returns (n vector).
such that
$$m=\frac{1}{S}{\displaystyle \sum _{s=1}^{S}{y}_{s}}$$
For more information, see Konno and Yamazaki [50] at Portfolio Optimization.
The final element for a complete specification of a portfolio optimization problem is the set of feasible portfolios, which is called a portfolio set. A portfolio set $$X\subset {R}^{n}$$ is specified by construction as the intersection of sets formed by a collection of constraints on portfolio weights. A portfolio set necessarily and sufficiently must be a nonempty, closed, and bounded set.
When setting up your portfolio set, ensure that the portfolio
set satisfies these conditions. The most basic or "default"
portfolio set requires portfolio weights to be nonnegative (using
the lower-bound constraint) and to sum to 1
(using
the budget constraint). The most general portfolio set handled by
the portfolio optimization tools can have any of these constraints:
Linear inequality constraints
Linear equality constraints
Bound constraints
Budget constraints
Group constraints
Group ratio constraints
Average turnover constraints
One-way turnover constraints
Tracking error constraints
Linear inequality constraints are general linear constraints that model relationships among portfolio weights that satisfy a system of inequalities. Linear inequality constraints take the form
$${A}_{I}x\le {b}_{I}$$
where:
x is the portfolio (n vector).
A_{I} is the linear inequality constraint matrix (n_{I}-by-n matrix).
b_{I} is the linear inequality constraint vector (n_{I} vector).
n is the number of assets in the universe and n_{I} is the number of constraints.
Portfolio object properties to specify linear inequality constraints are:
AInequality
for A_{I}
bInequality
for b_{I}
NumAssets
for n
The default is to ignore these constraints.
Linear equality constraints are general linear constraints that model relationships among portfolio weights that satisfy a system of equalities. Linear equality constraints take the form
$${A}_{E}x={b}_{E}$$
where:
x is the portfolio (n vector).
A_{E} is the linear equality constraint matrix (n_{E}-by-n matrix).
b_{E} is the linear equality constraint vector (n_{E} vector).
n is the number of assets in the universe and n_{E} is the number of constraints.
Portfolio object properties to specify linear equality constraints are:
AEquality
for A_{E}
bEquality
for b_{E}
NumAssets
for n
The default is to ignore these constraints.
Bound constraints are specialized linear
constraints that confine portfolio weights to fall either above or
below specific bounds. Since every portfolio set must be bounded,
it is often a good practice, albeit not necessary, to set explicit
bounds for the portfolio problem. To obtain explicit bounds for a
given portfolio set, use the estimateBounds
function.
Bound constraints take the form
$${l}_{B}\le x\le {u}_{B}$$
where:
x is the portfolio (n vector).
l_{B} is the lower-bound constraint (n vector).
u_{B} is the upper-bound constraint (n vector).
n is the number of assets in the universe.
Portfolio object properties to specify bound constraints are:
LowerBound
for l_{B}
UpperBound
for u_{B}
NumAssets
for n
The default is to ignore these constraints.
The default portfolio optimization problem (see Default Portfolio Problem) has l_{B} = 0
with u_{B} set
implicitly through a budget constraint.
Budget constraints are specialized linear constraints that confine the sum of portfolio weights to fall either above or below specific bounds. The constraints take the form
$${l}_{S}\le {1}^{T}x\le {u}_{S}$$
where:
x is the portfolio (n vector).
1
is the vector of ones (n vector).
l_{S} is the lower-bound budget constraint (scalar).
u_{S} is the upper-bound budget constraint (scalar).
n is the number of assets in the universe.
Portfolio object properties to specify budget constraints are:
LowerBudget
for l_{S}
UpperBudget
for u_{S}
NumAssets
for n
The default is to ignore this constraint.
The default portfolio optimization problem (see Default Portfolio Problem) has l_{S} = u_{S} = 1
,
which means that the portfolio weights sum to 1
.
If the portfolio optimization problem includes possible movements
in and out of cash, the budget constraint specifies how far portfolios
can go into cash. For example, if l_{S} = 0
and u_{S} = 1
,
then the portfolio can have 0–100% invested in cash. If cash
is to be a portfolio choice, set RiskFreeRate
(r_{0})
to a suitable value (see Return Proxy and Working with a Riskless Asset).
Group constraints are specialized linear constraints that enforce "membership" among groups of assets. The constraints take the form
$${l}_{G}\le Gx\le {u}_{G}$$
where:
x is the portfolio (n vector).
l_{G} is the lower-bound group constraint (n_{G} vector).
u_{G} is the upper-bound group constraint (n_{G} vector).
G is the matrix of group membership indexes (n_{G}-by-n matrix).
Each row of G identifies which assets belong
to a group associated with that row. Each row contains either 0
s
or 1
s with 1
indicating that
an asset is part of the group or 0
indicating that
the asset is not part of the group.
Portfolio object properties to specify group constraints are:
GroupMatrix
for G
LowerGroup
for l_{G}
UpperGroup
for u_{G}
NumAssets
for n
The default is to ignore these constraints.
Group ratio constraints are specialized linear constraints that enforce relationships among groups of assets. The constraints take the form
$${l}_{Ri}{({G}_{B}x)}_{i}\le {({G}_{A}x)}_{i}\le {u}_{Ri}{({G}_{B}x)}_{i}$$
for i = 1,..., n_{R} where:
x is the portfolio (n vector).
l_{R} is the vector of lower-bound group ratio constraints (n_{R} vector).
u_{R} is the vector matrix of upper-bound group ratio constraints (n_{R} vector).
G_{A} is the matrix of base group membership indexes (n_{R}-by-n matrix).
G_{B} is the matrix of comparison group membership indexes (n_{R}-by-n matrix).
n is the number of assets in the universe and n_{R} is the number of constraints.
Each row of G_{A} and G_{B} identifies which assets belong to a base and comparison group associated with that row.
Each row contains either 0
s or 1
s
with 1
indicating that an asset is part of the
group or 0
indicating that the asset is not part
of the group.
Portfolio object properties to specify group ratio constraints are:
GroupA
for G_{A}
GroupB
for G_{B}
LowerRatio
for l_{R}
UpperRatio
for u_{R}
NumAssets
for n
The default is to ignore these constraints.
Turnover constraint is a linear absolute value constraint that ensures estimated optimal portfolios differ from an initial portfolio by no more than a specified amount. Although portfolio turnover is defined in many ways, the turnover constraints implemented in Financial Toolbox computes portfolio turnover as the average of purchases and sales. Average turnover constraints take the form
$$\frac{1}{2}{1}^{T}|x-{x}_{0}|\le \tau $$
where:
x is the portfolio (n vector).
1
is the vector of ones (n vector).
x_{0} is the initial portfolio (n vector).
τ is the upper bound for turnover (scalar).
n is the number of assets in the universe.
Portfolio object properties to specify the average turnover constraint are:
Turnover
for τ
InitPort
for x_{0}
NumAssets
for n
The default is to ignore this constraint.
One-way turnover constraints ensure that estimated optimal portfolios differ from an initial portfolio by no more than specified amounts according to whether the differences are purchases or sales. The constraints take the forms
$${1}^{T}\mathrm{max}\left\{0,x-{x}_{0}\right\}\le {\tau}_{B}$$
$${1}^{T}\mathrm{max}\left\{0,{x}_{0}-x\right\}\le {\tau}_{S}$$
where:
x is the portfolio (n vector)
1
is the vector of ones (n vector).
x_{0} is the Initial portfolio (n vector).
τ_{B} is the upper bound for turnover constraint on purchases (scalar).
τ_{S} is the upper bound for turnover constraint on sales (scalar).
To specify one-way turnover constraints, use the following properties in the Portfolio or PortfolioCVaR object:
BuyTurnover
for τ_{B}
SellTurnover
for τ_{S}
InitPort
for x_{0}
The default is to ignore this constraint.
Note: The average turnover constraint (see Working with Average Turnover Constraints Using Portfolio Object) with τ is not a combination of the one-way turnover constraints with τ = τ_{B} = τ_{S}. |
Tracking error constraint, within a portfolio optimization framework, is an additional constraint to specify the set of feasible portfolios known as a portfolio set. The tracking-error constraint has the form
$${(x-{x}_{T})}^{T}C(x-{x}_{T})\le {\tau}_{T}{}^{2}$$
where:
x is the portfolio (n vector).
x_{T} is the tracking portfolio against which risk is to be measured (n vector).
τ_{T} is the upper bound for tracking error (scalar).
n is the number of assets in the universe.
Portfolio object properties to specify the average turnover constraint are:
TrackingPort
for x_{T}
TrackingError
for τ_{T}
The default is to ignore this constraint.
Note:
The tracking error constraints can be used with any of the other
supported constraints in the Portfolio object without restrictions.
However, since the portfolio set necessarily and sufficiently must
be a non-empty compact set, the application of a tracking error constraint
may result in an empty portfolio set. Use |
The default portfolio optimization problem has a risk and return
proxy associated with a given problem, and a portfolio set that specifies
portfolio weights to be nonnegative and to sum to 1
.
The lower bound combined with the budget constraint is sufficient
to ensure that the portfolio set is nonempty, closed, and bounded.
The default portfolio optimization problem characterizes a long-only
investor who is fully invested in a collection of assets.
For mean-variance portfolio optimization, it is sufficient to set up the default problem. After setting up the problem, data in the form of a mean and covariance of asset returns are then used to solve portfolio optimization problems.
For conditional value-at-risk portfolio optimization, the default problem requires the additional specification of a probability level that must be set explicitly. Generally, "typical" values for this level are 0.90 or 0.95. After setting up the problem, data in the form of scenarios of asset returns are then used to solve portfolio optimization problems.
For MAD portfolio optimization, it is sufficient to set up the default problem. After setting up the problem, data in the form of scenarios of asset returns are then used to solve portfolio optimization problems.