Working with 'Simple'
Bound Constraints Using PortfolioCVaR
Object
'Simple'
bound constraints are optional linear constraints that
maintain upper and lower bounds on portfolio weights (see 'Simple' Bound Constraints). Although every portfolio set must be bounded, it is not
necessary to specify a portfolio set with explicit bound constraints. For example, you
can create a portfolio set with an implicit upper bound constraint or a portfolio set
with average turnover constraints. The bound constraints have properties
LowerBound
for the lower-bound constraint and
UpperBound
for the upper-bound constraint. Set default values for
these constraints using the setDefaultConstraints
function (see
Setting Default Constraints for Portfolio Weights Using Portfolio Object).
Setting 'Simple'
Bounds Using the PortfolioCVaR
Function
The properties for bound constraints are set through the PortfolioCVaR
object. Suppose that
you have a balanced fund with stocks that can range from 50% to 75% of your
portfolio and bonds that can range from 25% to 50% of your portfolio. The bound
constraints for a balanced fund are set with:
lb = [ 0.5; 0.25 ]; ub = [ 0.75; 0.5 ]; p = PortfolioCVaR('LowerBound', lb, 'UpperBound', ub, 'BoundType', 'Simple'); disp(p.NumAssets) disp(p.LowerBound) disp(p.UpperBound)
2 0.5000 0.2500 0.7500 0.5000
To continue with this example, you must set up a budget constraint. For details, see Working with Budget Constraints Using Portfolio Object.
Setting 'Simple'
Bounds Using the setBounds
Function
You can also set the properties for bound constraints using setBounds
. Suppose
that you have a balanced fund with stocks that can range from 50% to 75% of your
portfolio and bonds that can range from 25% to 50% of your portfolio. Given a
PortfolioCVaR
object p
, use setBounds
to set
the bound
constraints:
lb = [ 0.5; 0.25 ]; ub = [ 0.75; 0.5 ]; p = PortfolioCVaR; p = setBounds(p, lb, ub,'BoundType', 'Simple'); disp(p.NumAssets) disp(p.LowerBound) disp(p.UpperBound)
2 0.5000 0.2500 0.7500 0.5000
Setting 'Simple'
Bounds Using the PortfolioCVaR
Function or setBounds
Function
Both the PortfolioCVaR
object and setBounds
function
implement scalar expansion on either the LowerBound
or
UpperBound
properties. If the NumAssets
property is already set in the PortfolioCVaR
object, scalar
arguments for either property expand to have the same value across all dimensions.
In addition, setBounds
lets you
specify NumAssets
as an optional argument. Suppose that you have
a universe of 500 assets and you want to set common bound constraints on all assets
in your universe. Specifically, you are a long-only investor and want to hold no
more than 5% of your portfolio in any single asset. You can set these bound
constraints in any of these equivalent ways:
p = PortfolioCVaR('NumAssets', 500, 'LowerBound', 0, 'UpperBound', 0.05,'BoundType', 'Simple');
or
p = PortfolioCVaR('NumAssets', 500); p = setBounds(p, 0, 0.05,'BoundType','Simple');
or
p = PortfolioCVaR; p = setBounds(p, 0, 0.05,'NumAssets', 500,'BoundType','Simple');
To clear bound constraints from your PortfolioCVaR
object, use
either the PortfolioCVaR
object or setBounds
with
empty inputs for the properties to be cleared. For example, to clear the upper-bound
constraint from the PortfolioCVaR
object p
in
the previous
example:
p = PortfolioCVaR(p, 'UpperBound', []);
See Also
PortfolioCVaR
| setDefaultConstraints
| setBounds
| setBudget
| setConditionalBudget
| setGroups
| setGroupRatio
| setEquality
| setInequality
| setTurnover
| setOneWayTurnover
Related Examples
- Creating the PortfolioCVaR Object
- Working with CVaR Portfolio Constraints Using Defaults
- Troubleshooting for Setting 'Conditional' BoundType, MinNumAssets, and MaxNumAssets Constraints
- Validate the CVaR Portfolio Problem
- Estimate Efficient Portfolios for Entire Frontier for PortfolioCVaR Object
- Estimate Efficient Frontiers for PortfolioCVaR Object
- Asset Returns and Scenarios Using PortfolioCVaR Object
- Working with 'Conditional' BoundType, MinNumAssets, and MaxNumAssets Constraints Using PortfolioCVaR Objects
- Hedging Using CVaR Portfolio Optimization
- Compute Maximum Reward-to-Risk Ratio for CVaR Portfolio