Portfolio Optimization Problems

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.

Portfolio Problem Specification

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.

Return Proxy

The proxy for portfolio return is a function μ:X→R on a portfolio set X⊂Rn 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 r0 so
that the portfolio x∈X contains only
risky assets.

Regardless of the underlying distribution of asset returns,
a collection of S asset returns y1,...,yS has
a mean of asset returns

m=1S∑s=1Sys,

and (sample) covariance of asset returns

C=1S−1∑s=1S(ys−m)(ys−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.

Gross Portfolio Returns

The gross portfolio return for a portfolio x∈X is

μ(x)=r0+(m−r01)Tx,

where:

r0 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 r0

AssetMean for m

Net Portfolio Returns

The net portfolio return for a portfolio x∈X is

μ(x)=r0+(m−r01)Tx−bTmax{0,x−x0}−sTmax{0,x0−x},

where:

r0 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 r0

AssetMean for m

InitPort for x0

BuyCost for b

SellCost for s

Risk Proxy

The proxy for portfolio risk is a function ∑:X→R on a portfolio set X⊂Rn that characterizes the risks
associated with portfolio choices.

Variance

The variance of portfolio returns for a portfolio x∈X is

∑(x)=xTCx

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).

Conditional Value-at-Risk

The conditional value-at-risk for a portfolio x∈X, which is also known as expected
shortfall, is defined as

CVaRα(x)=11−α∫f(x,y)≥VaRα(x)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

VaRα(x)=min{γ:Pr[f(x,Y)≤γ]≥α}.

An alternative formulation for CVaR has the form:

CVaRα(x)=VaRα(x)+11−α∫Rnmax{0,(f(x,y)−VaRα(x))}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∈X and α∈(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.

Portfolio Set for Optimization Using PortfolioCVaR Object

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⊂Rn 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

Linear Inequality 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

AIx≤bI

where:

x is the portfolio (n vector).

AI is the linear inequality
constraint matrix (nI-by-n matrix).

bI is the linear inequality
constraint vector (nI vector).

n is the number of assets in the universe
and nI is the number of
constraints.

Bound 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

Budget Constraints

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

lS≤1Tx≤uS

where:

x is the portfolio (n vector).

1 is the vector of ones (n vector).

lS is the lower-bound
budget constraint (scalar).

uS 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 lS

UpperBudget for uS

NumAssets for n

The default is to ignore this constraint.

The default portfolio optimization problem (see Default Portfolio Problem) has lS = uS = 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 lS = 0 and uS = 1,
then the portfolio can have 0–100% invested in cash. If cash
is to be a portfolio choice, set RiskFreeRate (r0)
to a suitable value (see Portfolio Problem Specification and Working with a Riskless Asset).

Group Constraints

Group constraints are specialized linear
constraints that enforce "membership" among groups of
assets. The constraints take the form

lG≤Gx≤uG

where:

x is the portfolio (n vector).

lG is the lower-bound
group constraint (nG vector).

uG is the upper-bound
group constraint (nG vector).

G is the matrix of group membership indexes
(nG-by-n matrix).

Each row of G identifies which assets belong
to a group associated with that row. Each row contains either 0s
or 1s 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 lG

UpperGroup for uG

NumAssets for n

The default is to ignore these constraints.

Group Ratio Constraints

Group ratio constraints are specialized
linear constraints that enforce relationships among groups of assets.
The constraints take the form

lRi(GBx)i≤(GAx)i≤uRi(GBx)i

for i = 1,..., nR where:

x is the portfolio (n vector).

lR is the vector of
lower-bound group ratio constraints (nR vector).

uR is the vector matrix
of upper-bound group ratio constraints (nR vector).

GA is the matrix of
base group membership indexes (nR-by-n matrix).

GB is the matrix of
comparison group membership indexes (nR-by-n matrix).

n is the number of assets in the universe
and nR is the number of
constraints.

Each row of GA and GB identifies
which assets belong to a base and comparison group associated with
that row.

Each row contains either 0s or 1s
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 GA

GroupB for GB

LowerRatio for lR

UpperRatio for uR

NumAssets for n

The default is to ignore these constraints.

Average Turnover 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

121T|x−x0|≤τ

where:

x is the portfolio (n vector).

1 is the vector of ones (n vector).

x0 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 x0

NumAssets for n

The default is to ignore this constraint.

One-way Turnover Constraints

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

1T×max{0,x−x0}≤τB

1T×max{0,x0−x}≤τS

where:

x is the portfolio (n vector)

1 is the vector of ones (n vector).

x0 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 x0

The default is to ignore this constraint.

Note:
The average turnover constraint (see Average Turnover Constraints) with τ is not a combination
of the one-way turnover constraints with τ = τB =
τS.

Default Portfolio Problem

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.