Linear equality constraints are optional linear constraints
that impose systems of equalities on portfolio weights (see Linear Equality Constraints). Linear equality
constraints have properties AEquality
, for the
equality constraint matrix, and bEquality
, for
the equality constraint vector.
Portfolio
FunctionThe properties for linear equality constraints are set using the Portfolio
object. Suppose that you
have a portfolio of five assets and want to ensure that the first three assets are
50% of your portfolio. To set this constraint:
A = [ 1 1 1 0 0 ]; b = 0.5; p = Portfolio('AEquality', A, 'bEquality', b); disp(p.NumAssets); disp(p.AEquality); disp(p.bEquality);
5 1 1 1 0 0 0.5000
setEquality
and addEquality
FunctionsYou can also set the properties for linear equality constraints using setEquality
. Suppose that you have
a portfolio of five assets and want to ensure that the first three assets are 50% of
your portfolio. Given a Portfolio
object p
,
use setEquality
to set the linear
equality constraints:
A = [ 1 1 1 0 0 ]; b = 0.5; p = Portfolio; p = setEquality(p, A, b); disp(p.NumAssets); disp(p.AEquality); disp(p.bEquality);
5 1 1 1 0 0 0.5000
Suppose that you want to add another linear equality constraint
to ensure that the last three assets also constitute 50% of your portfolio.
You can set up an augmented system of linear equalities or use addEquality
to build up linear equality
constraints. For this example, create another system of equalities:
p = Portfolio; A = [ 1 1 1 0 0 ]; % first equality constraint b = 0.5; p = setEquality(p, A, b); A = [ 0 0 1 1 1 ]; % second equality constraint b = 0.5; p = addEquality(p, A, b); disp(p.NumAssets); disp(p.AEquality); disp(p.bEquality);
5 1 1 1 0 0 0 0 1 1 1 0.5000 0.5000
The Portfolio
object, setEquality
, and addEquality
implement scalar
expansion on the bEquality
property based on the dimension of the
matrix in the AEquality
property.
Portfolio
| setBounds
| setBudget
| setDefaultConstraints
| setEquality
| setGroupRatio
| setGroups
| setInequality
| setOneWayTurnover
| setTrackingError
| setTrackingPort
| setTurnover