Supported Constraints for Portfolio Optimization Using PortfolioMAD Object
The final element for a complete specification of a portfolio optimization problem is the set of feasible portfolios, which is called a portfolio set. A portfolio set is specified by construction as the intersection of sets formed by a collection of constraints on portfolio weights. A portfolio set necessarily and sufficiently must be a nonempty, closed, and bounded set.
When setting up your portfolio set, ensure that the portfolio set satisfies these
            conditions. The most basic or “default” portfolio set requires portfolio
            weights to be nonnegative (using the lower-bound constraint) and to sum to
                1 (using the budget constraint). The most general portfolio set
            handled by the portfolio optimization tools can have any of these constraints and which
            are properties for the PortfolioMAD object: 
- Linear inequality constraints 
- Linear equality constraints 
- 'Simple'Bound constraints
- 'Conditional'Bound constraints
- Budget constraints 
- Conditional budget constraints 
- Group constraints 
- Group ratio constraints 
- Average turnover constraints 
- One-way turnover constraints 
- Cardinality constraints 
Linear Inequality Constraints
Linear inequality constraints are general linear constraints that model relationships among portfolio weights that satisfy a system of inequalities. Linear inequality constraints take the form
where:
x is the portfolio (n vector).
AI is the linear inequality constraint matrix (nI-by-n matrix).
bI is the linear inequality constraint vector (nI vector).
n is the number of assets in the universe and nI is the number of constraints.
PortfolioMAD object properties to specify linear inequality
                constraints are:
- AInequalityfor AI
- bInequalityfor bI
- NumAssetsfor n
The default is to ignore these constraints.
Linear Equality Constraints
Linear equality constraints are general linear constraints that model relationships among portfolio weights that satisfy a system of equalities. Linear equality constraints take the form
where:
x is the portfolio (n vector).
AE is the linear equality constraint matrix (nE-by-n matrix).
bE is the linear equality constraint vector (nE vector).
n is the number of assets in the universe and nE is the number of constraints.
PortfolioMAD object properties to specify linear equality
                constraints are: 
- AEqualityfor AE
- bEqualityfor bE
- NumAssetsfor n
The default is to ignore these constraints.
'Simple' Bound Constraints
'Simple'
                Bound constraints are specialized linear constraints that
                confine portfolio weights to fall either above or below specific bounds. Since every
                portfolio set must be bounded, it is often a good practice, albeit not necessary, to
                set explicit bounds for the portfolio problem. To obtain explicit bounds for a given
                portfolio set, use the estimateBounds function. Bound
                constraints take the form
where:
x is the portfolio (n vector).
lB is the lower-bound constraint (n vector).
uB is the upper-bound constraint (n vector).
n is the number of assets in the universe.
PortfolioMAD object properties to specify bound constraints are:
- LowerBoundfor lB
- UpperBoundfor uB
- NumAssetsfor n
The default is to ignore these constraints.
The default portfolio optimization problem (see Default Portfolio Problem) has
                    lB = 0 with
                        uB set implicitly through a budget
                constraint. 
'Conditional' Bound Constraints
'Conditional'
                Bound constraints, also called semicontinuous constraints,
                are mixed-integer linear constraints that confine portfolio weights to fall either
                above or below specific bounds if the asset is selected;
                otherwise, the value of the asset is zero. Use setBounds to
                specify bound constraints with a 'Conditional'
                BoundType. To mathematically formulate this type of constraints,
                a binary variable vi is
                needed. vi = 0
                indicates that asset i is not selected and
                        vi indicates
                that the asset was selected. Thus 
where
x is the portfolio (n vector).
l is the conditional lower-bound constraint (n vector).
u is the conditional upper-bound constraint (n vector).
n is the number of assets in the universe.
PortfolioMAD object properties to specify the bound constraint are:
- LowerBoundfor lB
- UpperBoundfor uB
- NumAssetsfor n
The default is to ignore this constraint.
Budget Constraints
Budget constraints are specialized linear constraints that confine the sum of portfolio weights to fall either above or below specific bounds. The constraints take the form
where:
x is the portfolio (n vector).
1 is the vector of ones (n vector).
lS is the lower-bound budget constraint (scalar).
uS is the upper-bound budget constraint (scalar).
n is the number of assets in the universe.
PortfolioMAD object properties to specify budget constraints are:
- LowerBudgetfor lS
- UpperBudgetfor uS
- NumAssetsfor n
The default is to ignore this constraint.
The default portfolio optimization problem (see Default Portfolio Problem) has
                    lS =
                        uS = 1, which
                means that the portfolio weights sum to 1. If the portfolio
                optimization problem includes possible movements in and out of cash, the budget
                constraint specifies how far portfolios can go into cash. For example, if
                        lS = 0 and
                        uS = 1, then
                the portfolio can have 0–100% invested in cash. If cash is to be a portfolio choice,
                set RiskFreeRate (r0)
                to a suitable value (see Return Proxy and Working with a Riskless Asset). 
Conditional Budget Constraints
Conditional budget constraints is a logical constraint that
                bounds the maximum amount of the portfolio that can be invested in assets exceeding
                a given threshold. This constraint supports the Undertakings for Collective Investment in Transferable Securities (UCITS) directive. Use setConditionalBudget to
                set conditional budget constraints. To mathematically formulate this type of
                constraints, a binary variable
                    wi is needed. If
                    wi =
                    0 the asset is below the specified threshold, otherwise the
                asset is above that threshold which is represented as
where:
x is an n vector representing the portfolio.
ɑ is a scalar or n representing the threshold above which assets are accounted for in the conditional budget (scalar or n vector).
γ is a scalar representing the maximum amount of the portfolio that can be invested in assets exceeding ɑ.
Group Constraints
Group constraints are specialized linear constraints that enforce “membership” among groups of assets. The constraints take the form
where:
x is the portfolio (n vector).
lG is the lower-bound group constraint (nG vector).
uG is the upper-bound group constraint (nG vector).
G is the matrix of group membership indexes (nG-by-n matrix).
Each row of G identifies which assets belong to a group
                associated with that row. Each row contains either 0s or
                    1s with 1 indicating that an asset is part
                of the group or 0 indicating that the asset is not part of the
                group. 
PortfolioMAD object properties to specify group constraints
                are: 
- GroupMatrixfor G
- LowerGroupfor lG
- UpperGroupfor uG
- NumAssetsfor n
The default is to ignore these constraints.
Group Ratio Constraints
Group ratio constraints are specialized linear constraints that enforce relationships among groups of assets. The constraints take the form
for i = 1,..., nR where:
x is the portfolio (n vector).
lR is the vector of lower-bound group ratio constraints (nR vector).
uR is the vector matrix of upper-bound group ratio constraints (nR vector).
GA is the matrix of base group membership indexes (nR-by-n matrix).
GB is the matrix of comparison group membership indexes (nR-by-n matrix).
n is the number of assets in the universe and nR is the number of constraints.
Each row of GA and GB identifies which assets belong to a base and comparison group associated with that row.
Each row contains either 0s or 1s with
                    1 indicating that an asset is part of the group or
                    0 indicating that the asset is not part of the group. 
PortfolioMAD object properties to specify group ratio
                constraints are:
- GroupAfor GA
- GroupBfor GB
- LowerRatiofor lR
- UpperRatiofor uR
- NumAssetsfor n
The default is to ignore these constraints.
Average Turnover Constraints
Turnover constraint is a linear absolute value constraint that ensures estimated optimal portfolios differ from an initial portfolio by no more than a specified amount. Although portfolio turnover is defined in many ways, the turnover constraints implemented in Financial Toolbox™ compute portfolio turnover as the average of purchases and sales. Average turnover constraints take the form
where:
x is the portfolio (n vector).
1 is the vector of ones (n vector).
x0 is the initial portfolio (n vector).
τ is the upper bound for turnover (scalar).
n is the number of assets in the universe.
PortfolioMAD object properties to specify the average turnover
                constraint are:
- Turnoverfor τ
- InitPortfor x0
- NumAssetsfor n
The default is to ignore this constraint.
One-way Turnover Constraints
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 forms
where:
x is the portfolio (n vector)
1 is the vector of ones (n vector).
x0 is the Initial portfolio (n vector).
τB is the upper bound for turnover constraint on purchases (scalar).
τS is the upper bound for turnover constraint on sales (scalar).
To specify one-way turnover constraints, use the following properties in the
                    PortfolioMAD object: 
- BuyTurnoverfor τB
- SellTurnoverfor τS
- InitPortfor x0
The default is to ignore this constraint.
Note
The average turnover constraint (see Working with Average Turnover Constraints Using PortfolioMAD Object) with τ is not a combination of the one-way turnover constraints with τ = τB = τS.
Cardinality Constraints
Cardinality constraint limits the number of assets in the
                optimal allocation for an PortfolioMAD object. Use setMinMaxNumAssets
                to specify the 'MinNumAssets' and
                    'MaxNumAssets' constraints. To mathematically formulate this
                type of constraints, a binary variable
                        vi is needed.
                    vi = 0 indicates
                that asset i is not selected and
                        vi = 1
                indicates that the asset was selected. Thus
The default is to ignore this constraint.
See Also
Portfolio | PortfolioCVaR | PortfolioMAD