Setting Up a Tracking Portfolio
Given a benchmark or tracking portfolio, you can ensure that the risk of a portfolio relative
to the benchmark portfolio is no greater than a specified amount. The
Portfolio object property TrackingPort lets
you identify a tracking portfolio. For more information on using a tracking portfolio
with tracking error constraints, see Working with Tracking Error Constraints Using Portfolio Object.
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 can result in an empty portfolio set. Use
estimateBounds to confirm that the
portfolio set is non-empty and compact.
Suppose that you have an initial portfolio in x0, then use the Portfolio object to set up a tracking
portfolio:
x0 = [ 0.3; 0.2; 0.2; 0.0 ];
p = Portfolio('TrackingPort', x0);
disp(p.TrackingPort) 0.3000
0.2000
0.2000
0As with all array properties, you can set TrackingPort with scalar
expansion. This is helpful to set up an equally weighted tracking portfolio of, for
example, 10
assets:
p = Portfolio('NumAssets', 10, 'TrackingPort', 1/10); disp(p.TrackingPort)
0.1000
0.1000
0.1000
0.1000
0.1000
0.1000
0.1000
0.1000
0.1000
0.1000To clear a tracking portfolio from your Portfolio object, use either the
Portfolio object or the setTrackingPort function with an empty input for the
TrackingPort property. If transaction costs or turnover
constraints are set, it is not possible to clear the TrackingPort
property in this way. In this case, to clear TrackingPort, first
clear the dependent properties and then clear theTrackingPort
property.
The TrackingPort property can also be set with setTrackingPort which lets you specify the number of assets if you want
to use scalar expansion. For example, given an initial portfolio in
x0, use setTrackingPort to set the TrackingPort
property:
p = Portfolio; x0 = [ 0.3; 0.2; 0.2; 0.0 ]; p = setTrackingPort(p, x0); disp(p.TrackingPort)
0.3000
0.2000
0.2000
0
To create an equally weighted portfolio of four assets, use setTrackingPort:
p = Portfolio; p = setTrackingPort(p, 1/4, 4); disp(p.TrackingPort)
0.2500 0.2500 0.2500 0.2500
See Also
Portfolio | setAssetList | setInitPort | setTrackingPort | setTrackingError | estimateBounds | checkFeasibility
Topics
- Setting Up an Initial or Current Portfolio
- Common Operations on the Portfolio Object
- Working with Portfolio Constraints Using Defaults
- Asset Returns and Moments of Asset Returns Using Portfolio Object
- Validate the Portfolio Problem for 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
- Diversify Portfolios Using Custom Objective
- Portfolio Object
- Portfolio Optimization Theory
- Portfolio Object Workflow