setOneWayTurnover

Class: Portfolio

Set up one-way portfolio turnover constraints

Syntax

obj = setOneWayTurnover(obj,BuyTurnover)
obj = setOneWayTurnover(obj,BuyTurnover,SellTurnover,
InitPort,NumAssets)

Description

obj = setOneWayTurnover(obj,BuyTurnover) sets up one-way portfolio turnover constraints.

obj = setOneWayTurnover(obj,BuyTurnover,SellTurnover,
InitPort,NumAssets)
to set up one-way portfolio turnover constraints with additional options specified by SellTurnover, InitPort, and NumAssets.

Given an initial portfolio in InitPort and an upper bound for portfolio turnover on purchases in BuyTurnover or sales in SellTurnover, the one-way turnover constraints require any portfolio Port to satisfy the following:

1' * max{0, Port - InitPort} <= BuyTurnover
1' * max{0, InitPort - Port} <= SellTurnover

    Note:   If Turnover = BuyTurnover = SellTurnover, the constraint is not equivalent to:

    1' * | Port - InitPort | <= Turnover

    To set this constraint, use setTurnover.

Tips

You can also use dot notation to set up one-way portfolio turnover constraints.

obj = obj.setOneWayTurnover(BuyTurnover,SellTurnover,InitPort,NumAssets)

Input Arguments

obj

Portfolio object [Portfolio].

BuyTurnover

Turnover constraint on purchases [scalar].

    Note:   BuyTurnover must be nonnegative and finite.

SellTurnover

(Optional) Turnover constraint on sales [scalar].

    Note:   SellTurnover must be nonnegative and finite.

InitPort

(Optional) Initial or current portfolio weights [vector].

    Note:   InitPort must be a finite vector with NumAssets > 0 elements.

    If no InitPort is specified, that value is assumed to be 0.

    If InitPort is specified as a scalar and NumAssets exists, then InitPort undergoes scalar expansion.

NumAssets

(Optional) Number of assets in the portfolio [scalar].

    Note:   If it is impossible to obtain a value for NumAssets, it is assumed that NumAssets is 1.

Output Arguments

obj

Updated Portfolio object [Portfolio].

Definitions

One-Way Turnover Constraint

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 form

1Tmax{0,xx0}τB

1Tmax{0,x0x}τS

with

  • x — The portfolio (NumAssets vector)

  • x0 — Initial portfolio (NumAssets vector)

  • τB — Upper-bound for turnover constraint on purchases (scalar)

  • τS — Upper-bound for turnover constraint on sales (scalar)

To specify one-way turnover constraints, use the following properties in the Portfolio object: BuyTurnover for τB, SellTurnover for τS, and InitPort for x0.

    Note:   The average turnover constraint (see setTurnover) is not just the combination of the one-way turnover constraints with the same value for the constraint.

Attributes

Accesspublic
Staticfalse
Hiddenfalse

To learn about attributes of methods, see Method Attributes in the MATLAB® Object-Oriented Programming documentation.

Examples

expand all

Set One-Way Turnover Constraints

Set one-way turnover constraints.

p = Portfolio('AssetMean',[0.1, 0.2, 0.15], 'AssetCovar',...
[ 0.005, -0.010,  0.004; -0.010,  0.040, -0.002;  0.004, -0.002,  0.023]);
p = setBudget(p, 1, 1);
p = setOneWayTurnover(p, 1.3, 0.3, 0); %130-30 portfolio
plotFrontier(p);

Was this topic helpful?