Working with Budget Constraints Using PortfolioCVaR Object
The budget constraint is an optional linear constraint that maintains upper and lower
bounds on the sum of portfolio weights (see Budget Constraints). Budget constraints have properties
LowerBudget for the lower budget constraint and
UpperBudget for the upper budget constraint. If you set up a CVaR
portfolio optimization problem that requires portfolios to be fully invested in your
universe of assets, you can set LowerBudget to be equal to
UpperBudget. These budget constraints can be set with default
values equal to 1 using setDefaultConstraints (see Setting Default Constraints Using the PortfolioCVaR Function).
Setting Budget Constraints Using the PortfolioCVaR Function
The properties for the budget constraint can also be set using the PortfolioCVaR object. Suppose that
you have an asset universe with many risky assets and a riskless asset and you want
to ensure that your portfolio never holds more than 1% cash, that is, you want to
ensure that you are 99–100% invested in risky assets. The budget constraint for this
portfolio can be set with:
p = PortfolioCVaR('LowerBudget', 0.99, 'UpperBudget', 1); disp(p.LowerBudget) disp(p.UpperBudget)
0.9900 1
Setting Budget Constraints Using the setBudget Function
You can also set the properties for a budget constraint using setBudget. Suppose that you have a
fund that permits up to 10% leverage which means that your portfolio can be from
100% to 110% invested in risky assets. Given a PortfolioCVaR
object p, use setBudget to set the budget
constraints:
p = PortfolioCVaR; p = setBudget(p, 1, 1.1); disp(p.LowerBudget) disp(p.UpperBudget)
1 1.1000
RiskFreeRate
property to the borrowing rate to finance possible leveraged positions. For details
on the RiskFreeRate property, see Working with a Riskless Asset. To clear either bound for the budget
constraint from your PortfolioCVaR object, use either the PortfolioCVaR object or setBudget with empty inputs for the
properties to be cleared. For example, clear the upper-budget constraint from the
PortfolioCVaR object p in the previous
example
with:p = PortfolioCVaR(p, 'UpperBudget', []);See Also
PortfolioCVaR | setDefaultConstraints | setBounds | setBudget | setConditionalBudget | setGroups | setGroupRatio | setEquality | setInequality | setTurnover | setOneWayTurnover
Topics
- Creating the PortfolioCVaR Object
- Working with CVaR Portfolio Constraints Using Defaults
- 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
- Hedging Using CVaR Portfolio Optimization
- Compute Maximum Reward-to-Risk Ratio for CVaR Portfolio
- PortfolioCVaR Object
- Portfolio Optimization Theory
- PortfolioCVaR Object Workflow