Main Content

getOneWayTurnover

Obtain one-way turnover constraints from portfolio object

Description

Use thegetOneWayTirnoverfunction with aPortfolio,PortfolioCVaR, orPortfolioMADobject to obtain one-way turnover constraints from portfolio objects.

有关相应的工作流在使用these different objects, seePortfolio Object Workflow,PortfolioCVaR Object Workflow, andPortfolioMAD对象的工作流.

example

[BuyTurnover,SellTurnover] = getOneWayTurnover(obj)obtain one-way turnover constraints from portfolio objects.

Examples

collapse all

Set one-way turnover costs.

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 portfolioplotFrontier(p);

Figure contains an axes object. The axes object with title E f f i c i e n t blank F r o n t i e r contains 2 objects of type scatter, line. These objects represent Initial Portfolio, Efficient Frontier.

Obtain one-way turnover costs.

[BuyTurnover,SellTurnover] = getOneWayTurnover(p)
BuyTurnover = 1.3000
SellTurnover = 0.3000

Set one-way turnover costs and obtain the buy and sell turnover values.

m = [ 0.05; 0.1; 0.12; 0.18 ]; C = [ 0.0064 0.00408 0.00192 0; 0.00408 0.0289 0.0204 0.0119; 0.00192 0.0204 0.0576 0.0336; 0 0.0119 0.0336 0.1225 ]; m = m/12; C = C/12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); p = setBudget(p, 1, 1); p = setOneWayTurnover(p, 1.3, 0.3, 0);%130-30 portfolio[BuyTurnover,SellTurnover] = getOneWayTurnover(p)
BuyTurnover = 1.3000
SellTurnover = 0.3000

Set one-way turnover costs and obtain the buy and sell turnover values.

m = [ 0.05; 0.1; 0.12; 0.18 ]; C = [ 0.0064 0.00408 0.00192 0; 0.00408 0.0289 0.0204 0.0119; 0.00192 0.0204 0.0576 0.0336; 0 0.0119 0.0336 0.1225 ]; m = m/12; C = C/12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setBudget(p, 1, 1); p = setOneWayTurnover(p, 1.3, 0.3, 0);%130-30 portfolio[BuyTurnover,SellTurnover] = getOneWayTurnover(p)
BuyTurnover = 1.3000
SellTurnover = 0.3000

Input Arguments

collapse all

Object for portfolio, specified usingPortfolio,PortfolioCVaR, orPortfolioMADobject. For more information on creating a portfolio object, see

Data Types:object

Output Arguments

collapse all

Turnover constraint on purchases, returned as a scalar for aPortfolio,PortfolioCVaR, orPortfolioMADinput object (obj).

Turnover constraint on sales, returned as a scalar for aPortfolio,PortfolioCVaR, orPortfolioMADinput object (obj).

More About

collapse all

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

1 T max { 0 , x x 0 } τ B

1 T max { 0 , x 0 x } τ S

with

  • x— The portfolio (NumAssetsvector)

  • x0— Initial portfolio (NumAssetsvector)

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

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

Specify one-way turnover constraints using the following properties in a supported portfolio object:BuyTurnoverfor τB,SellTurnoverfor τS, andInitPortforx0.

Note

The average turnover constraint (which is set usingsetTurnover) is not just the combination of the one-way turnover constraints with the same value for the constraint.

Tips

You can also use dot notation to get the one-way turnover constraint for portfolio objects.

[BuyTurnover,SellTurnover] = obj.getOneWayTurnover

Version History

Introduced in R2011a