Main Content

setInequality

Set up linear inequality constraints for portfolio weights

Description

obj = setInequality(obj,AInequality,bInequality) sets up linear inequality constraints for portfolio weights for Portfolio, PortfolioCVaR, or PortfolioMAD objects. For details on the respective workflows when using these different objects, see Portfolio Object Workflow, PortfolioCVaR Object Workflow, and PortfolioMAD Object Workflow.

Given a linear inequality constraint matrix AInequality and vector bInequality, every weight in a portfolio Port must satisfy the following:

AInequality * Port <= bInequality

example

Examples

collapse all

Suppose you have a portfolio of five assets and you want to ensure that the first three assets are no more than 50% of your portfolio. Given a Portfolio object p, set the linear inequality constraints with the following.

A = [ 1 1 1 0 0 ];
b = 0.5;
p = Portfolio;
p = setInequality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AInequality);
     1     1     1     0     0
disp(p.bInequality);
    0.5000

To add additional Linear Inequality constraints, use addInequality.

Suppose you have a portfolio of five assets and you want to ensure that the first three assets are no more than 50% of your portfolio. Given a CVaR portfolio object p, set the linear inequality constraints with the following.

A = [ 1 1 1 0 0 ];
b = 0.5;
p = PortfolioCVaR;
p = setInequality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AInequality);
     1     1     1     0     0
disp(p.bInequality);
    0.5000

To add additional Linear Inequality constraints, use addInequality.

Suppose you have a portfolio of five assets and you want to ensure that the first three assets are no more than 50% of your portfolio. Given PortfolioMAD object p, set the linear inequality constraints with the following.

A = [ 1 1 1 0 0 ];
b = 0.5;
p = PortfolioMAD;
p = setInequality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AInequality);
     1     1     1     0     0
disp(p.bInequality);
    0.5000

To add additional Linear Inequality constraints, use addInequality.

Input Arguments

collapse all

Object for portfolio, specified using Portfolio, PortfolioCVaR, or PortfolioMAD object. For more information on creating a portfolio object, see

Data Types: object

Matrix to form linear inequality constraints, specified as a matrix for a Portfolio, PortfolioCVaR, or PortfolioMAD input object (obj).

Note

An error results if AInequality is empty and bInequality is nonempty.

Data Types: double

Vector to form linear inequality constraints, specified as a vector for a Portfolio, PortfolioCVaR, or PortfolioMAD input object (obj).

Note

An error results if AInequality is nonempty and bInequality is empty.

Data Types: double

Output Arguments

collapse all

Updated portfolio object, returned as a Portfolio, PortfolioCVaR, or PortfolioMAD object. For more information on creating a portfolio object, see

Tips

  • You can also use dot notation to set up linear inequality constraints for portfolio weights.

    obj = obj.setInequality(AInequality, bInequality);

  • To remove inequality constraints, enter empty arguments. To add to existing inequality constraints, use addInequality.

Version History

Introduced in R2011a