Working with One-Way Turnover Constraints Using Portfolio Object
One-way turnover constraints are optional constraints (see One-Way Turnover Constraints) that enforce upper bounds on net purchases or
net sales. One-way turnover constraints can be set using the Portfolio object or the setOneWayTurnover function. One-way turnover constraints depend upon an
initial or current portfolio, which is assumed to be zero if not set when the turnover
constraints are set. One-way turnover constraints have properties
BuyTurnover, for the upper bound on net purchases,
SellTurnover, for the upper bound on net sales, and
InitPort, for the portfolio against which turnover is computed.
Setting One-Way Turnover Constraints Using the Portfolio Function
The Properties for the one-way turnover constraints are set using the Portfolio object. Suppose that you
have an initial portfolio with 10 assets in a variable x0 and you
want to ensure that turnover on purchases is no more than 30% and turnover on sales
is no more than 20% of the initial portfolio. To set these turnover
constraints:
x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; p = Portfolio('BuyTurnover', 0.3, 'SellTurnover', 0.2, 'InitPort', x0); disp(p.NumAssets) disp(p.BuyTurnover) disp(p.SellTurnover) disp(p.InitPort)
10
0.3000
0.2000
0.1200
0.0900
0.0800
0.0700
0.1000
0.1000
0.1500
0.1100
0.0800
0.1000If the NumAssets or InitPort properties
are not set before or when the turnover constraint is set, various
rules are applied to assign default values to these properties (see Setting Up an Initial or Current Portfolio).
Setting Turnover Constraints Using the setOneWayTurnover Function
You can also set properties for portfolio turnover using setOneWayTurnover to specify the
upper bounds for turnover on purchases (BuyTurnover) and sales
(SellTurnover) and an initial portfolio. Suppose that you
have an initial portfolio of 10 assets in a variable x0 and want
to ensure that turnover on purchases is no more than 30% and that turnover on sales
is no more than 20% of the initial portfolio. Given a Portfolio
object p, use setOneWayTurnover to set the
turnover constraints 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('InitPort', x0);
p = setOneWayTurnover(p, 0.3, 0.2);
disp(p.NumAssets)
disp(p.BuyTurnover)
disp(p.SellTurnover)
disp(p.InitPort) 10
0.3000
0.2000
0.1200
0.0900
0.0800
0.0700
0.1000
0.1000
0.1500
0.1100
0.0800
0.1000x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; p = Portfolio; p = setOneWayTurnover(p, 0.3, 0.2, x0); disp(p.NumAssets) disp(p.BuyTurnover) disp(p.SellTurnover) disp(p.InitPort)
10
0.3000
0.2000
0.1200
0.0900
0.0800
0.0700
0.1000
0.1000
0.1500
0.1100
0.0800
0.1000setOneWayTurnover implements scalar expansion on the argument for
the initial portfolio. If the NumAssets property is already set
in the Portfolio object, a scalar argument for
InitPort expands to have the same value across all
dimensions. In addition, setOneWayTurnover lets you specify
NumAssets as an optional argument. To remove one-way turnover
from your Portfolio object, use the Portfolio object or setOneWayTurnover with empty inputs
for the properties to be cleared.
See Also
Portfolio | setDefaultConstraints | setBounds | setBudget | setConditionalBudget | setGroups | setGroupRatio | setEquality | setInequality | setTurnover | setOneWayTurnover | setTrackingPort | setTrackingError
Topics
- 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
- Portfolio Object
- Portfolio Optimization Theory
- Portfolio Object Workflow
- Setting Up a Tracking Portfolio