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.1000
If 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.1000
x0 = [ 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.1000
setOneWayTurnover
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
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