Working with 'Simple' Bound Constraints Using PortfolioMAD
            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                     PortfolioMAD Function
The properties for bound constraints are set through the PortfolioMAD 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 = PortfolioMAD('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
                    PortfolioMAD object p, use setBounds to set
                the bound
                constraints:
lb = [ 0.5; 0.25 ]; ub = [ 0.75; 0.5 ]; p = PortfolioMAD; 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                     PortfolioMAD Function or setBounds                 Function
Both the PortfolioMAD object and setBounds function
                implement scalar expansion on either the LowerBound or
                    UpperBound properties. If the NumAssets
                property is already set in the PortfolioMAD 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 = PortfolioMAD('NumAssets', 500, 'LowerBound', 0, 'UpperBound', 0.05,'BoundType', 'Simple');
or
p = PortfolioMAD('NumAssets', 500); p = setBounds(p, 0, 0.05,'BoundType','Simple');
or
p = PortfolioMAD; p = setBounds(p, 0, 0.05,'NumAssets', 500,'BoundType','Simple');
To clear bound constraints from your PortfolioMAD object, use
                either the PortfolioMAD object or setBounds with
                empty inputs for the properties to be cleared. For example, to clear the upper-bound
                constraint from the PortfolioMAD object p in
                the previous
                example:
p = PortfolioMAD(p, 'UpperBound', []);See Also
PortfolioMAD | setDefaultConstraints | setBounds | setBudget | setConditionalBudget | setGroups | setGroupRatio | setEquality | setInequality | setTurnover | setOneWayTurnover
Topics
- Setting Default Constraints for Portfolio Weights Using PortfolioMAD Object
- Troubleshooting for Setting 'Conditional' BoundType, MinNumAssets, and MaxNumAssets Constraints
- Creating the PortfolioMAD Object
- Validate the MAD Portfolio Problem
- Estimate Efficient Portfolios Along the Entire Frontier for PortfolioMAD Object
- Estimate Efficient Frontiers for PortfolioMAD Object
- Asset Returns and Scenarios Using PortfolioMAD Object
- Working with 'Conditional' BoundType, MinNumAssets, and MaxNumAssets Constraints Using PortfolioMAD Objects
- Troubleshooting for Setting 'Conditional' BoundType, MinNumAssets, and MaxNumAssets Constraints
- PortfolioMAD Object
- Portfolio Optimization Theory
- PortfolioMAD Object Workflow