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