Working with Tracking Error Constraints Using Portfolio Object
Tracking error constraints are optional constraints (see Tracking Error Constraints) that measure the risk relative to a portfolio
called a tracking portfolio. Tracking error constraints can be set using the Portfolio
object or the setTrackingError
function.
The tracking error constraint is an optional quadratic constraint that enforces an upper bound on tracking error, which is the relative risk between a portfolio and a designated tracking portfolio. For more information, see Tracking Error Constraints.
The tracking error constraint can be set using the Portfolio
object or the setTrackingPort
and setTrackingError
functions. The tracking error constraint depends on a
tracking portfolio, which is assumed to be zero if not set when the tracking error
constraint is set. The tracking error constraint has properties
TrackingError
, for the upper bound on tracking error, and
TrackingPort
, for the portfolio against which tracking error is computed.
Note
The initial portfolio in the Portfolio
object property
InitPort
is distinct from the tracking portfolio in the
Portfolio
object property
TrackingPort
.
Setting Tracking Error Constraints Using the Portfolio
Function
The properties for the tracking error constraints are set using the Portfolio
object. Suppose that you
have a tracking portfolio of 10 assets in a variable x0 and you
want to ensure that the tracking error of any portfolio on the efficient frontier is
no more than 8% relative to this portfolio. To set this
constraint:
x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; p = Portfolio('TrackingError', 0.08, 'TrackingPort', x0); disp(p.NumAssets) disp(p.TrackingError) disp(p.TrackingPort)
10 0.0800 0.1200 0.0900 0.0800 0.0700 0.1000 0.1000 0.1500 0.1100 0.0800 0.1000
If the NumAssets
or TrackingPort
properties
are not set before or when the tracking error constraint is set, various
rules are applied to assign default values to these properties (see Setting Up a Tracking Portfolio).
Setting Tracking Error Constraints Using the setTrackingError
Function
You can also set properties for portfolio tracking error using the setTrackingError
function to
specify both the upper bound for tracking error and a designated tracking portfolio.
Suppose that you have a tracking portfolio of 10 assets in a variable x0 and want to
ensure that tracking error is no more than 8%. Given a Portfolio
object p
, use setTrackingError
to set the
tracking error constraint with and without the initial portfolio being set
previously:
x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ];
p = Portfolio('TrackingPort', x0);
p = setTrackingError(p, 0.08);
disp(p.NumAssets)
disp(p.TrackingError)
disp(p.TrackingPort)
10 0.0800 0.1200 0.0900 0.0800 0.0700 0.1000 0.1000 0.1500 0.1100 0.0800 0.1000
or
x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ];
p = Portfolio('TrackingPort', x0);
p = setTrackingError(p, 0.08, x0);
disp(p.NumAssets)
disp(p.TrackingError)
disp(p.TrackingPort)
10 0.0800 0.1200 0.0900 0.0800 0.0700 0.1000 0.1000 0.1500 0.1100 0.0800 0.1000
If the NumAssets
or TrackingPort
properties are not set
before or when the tracking error constraint is set, various rules are applied to
assign default values to these properties (see Setting Up a Tracking Portfolio).
setTrackingError
implements scalar expansion on the argument for the
tracking portfolio. If the NumAssets
property is already set in
the Portfolio
object, a scalar argument for
TrackingPort
expands to have the same value across all
dimensions. In addition, setTrackingError
lets you specify
NumAssets
as an optional argument. To clear tracking error
from your Portfolio
object, use the Portfolio
object or setTrackingError
with empty inputs
for the properties to be cleared.
See Also
Portfolio
| setDefaultConstraints
| setBounds
| setBudget
| setConditionalBudget
| setGroups
| setGroupRatio
| setEquality
| setInequality
| setTurnover
| setOneWayTurnover
| setTrackingPort
| setTrackingError
Related Examples
- Creating the Portfolio Object
- Working with Portfolio Constraints Using Defaults
- Validate the Portfolio Problem for Portfolio Object
- Estimate Efficient Portfolios for Entire Efficient Frontier for Portfolio Object
- Estimate Efficient Frontiers for Portfolio Object
- Constraint Specification Using a Portfolio Object
- Asset Allocation Case Study
- Portfolio Optimization Examples Using Financial Toolbox
- Portfolio Optimization with Semicontinuous and Cardinality Constraints
- Black-Litterman Portfolio Optimization Using Financial Toolbox
- Portfolio Optimization Using Factor Models
- Portfolio Optimization Using Social Performance Measure
- Diversify Portfolios Using Custom Objective
More About
- Portfolio Object
- Portfolio Optimization Theory
- Portfolio Object Workflow
- Setting Up a Tracking Portfolio