Customized Constraints
Customized constraints allow you to create customized constraints that restrict optimization and post-optimization for specific purposes. For optimization, New Frontier provides the functionality of both "hard" constraints (linear constraints with upper and lower bounds that must hold) and "soft" constraints, a target for the Optimizer to reach for. (Post-optimization does not accept soft customized constraints, though it does include linear customized constraints.) You can dictate the percentage of the portfolio devoted to equities, require that the sum of two assets equal the total of a third asset, or assess a penalty if the weight of a particular asset or group of assets strays from a target weight. All of these constraints and many more can be developed. However, constraints limit the effectiveness of the optimization and easily render an investment problem infeasible.
Appearance of Customized Constraints
Customized constraints appear on the right of the Constraints Worksheet. A checkbox on the top activates or inactivates the constraint. The row below indicates whether or not the constraint coefficients will automatically update if their source changes. Managed constraints rely on expense ratios, the benchmark portfolio, yields, or custom characteristics for their coefficients. Since these inputs can be updated, the Optimizer will automatically change the constraint if you change the input. For example, a managed constraint that is weighted according to expense ratios would change slightly if you entered new expense ratios. Most often, managed constraints are created in the Constraints Wizard, described below. (The Optimizer will also treat customized constraints as managed if it recognizes the pattern of coefficients entered manually.) Beneath that row is a name for the customized constraint, followed by rows for each asset. If the asset will be included in the constraint, a coefficient of some sort will appear in that asset's row. At the bottom are the bounds on those assets.
If a constraint is inactive, whether because "N/A" appears for both bounds, there are no coefficients, or they are unchecked, it will appear in a lighter blue. Constraints can be individually activated or deactivated from the Constraints Wizards, and they can all be activated or deactivated from the Wizards as well.
How to Set Up a Customized Constraint
First, determine how to express your constraint. Customized constraints are written mathematically as: Min ≤ C1W1 + C2W2 + …. CnWn ≤ Max, where C is the Constraint Value, W is the weight of the asset, and there are n assets in the problem. Coefficients appear in each asset row, indicating which assets are affected and how the assets relate to each other within the constraint. The Min% and Max% Fields provide the limits.
Examine a model constraint. The portfolio constraint, also known as the budget constraint, ensuring that all assets in a portfolio sum to 100%, appears automatically. For the portfolio constraint, all assets are included equally, so each asset has a coefficient of 1. Since the portfolio constraint dictates that the assets sum to 100%, both the Min% and Max% Fields contain “100%”. Note that you can compose constraints that do not total 100%.
To add a constraint, select the Customized Constraints Option in the Constraints Menu in the Case Settings Section of the NFA ribbon. The Customized Constraints Wizard appears. To work directly with the coefficients, add as many blank constraints as you wish and return to the Constraints Worksheet to work with them. If not, click the Add Customized Constraint button to access the Design Customized Constraint Window (see directions below).
The constraints are automatically assigned an alpha-numeric name starting with "C001". You can change the names directly on the Constraints Worksheet. A checkbox will appear before the constraint name which can be used to activate or deactivate the constraint.
The simplest customized constraints involve only the coefficients. To ensure that Asset A always has the same weight as Asset B, add a blank constraint, and then enter “1” in one asset’s row and “-1” in the other. To ensure that the sum of Assets A & B always equals the weight of Asset C, enter “-1” for Assets A & B and “1” for Asset C.
Examples:
-
An equity-only portfolio: Enter "1" in each equity asset's row. Enter "100" in both the Minimum % and Maximum % Fields.
-
Equities must be at least 30% of the portfolio: Enter "1" in each equity asset's row. Enter "30" in the Minimum % Field. Enter "100" in the Maximum % Field.
-
One particular equity must be less than or equal to 25% of all equities, including the specific equity: Enter "-0.75" in the particular equity's row. Enter "0.25" in each of the other equity rows. Enter "0" in the Minimum % Field. Enter "100" in the Maximum % Field.
-
Asset A's value must not vary from Asset B's value by more than 15%: Enter "-1" for Asset B. Enter "1" for Asset A. Enter "-15" in the Minimum % Field. Enter "15" in the Maximum % Field.
-
Dividend yield of the portfolio must be between 2% and 4%: Enter the Dividend Yield of every asset in the corresponding asset row (as coefficients). Set the minimum value to 2% and the maximum to 4%.
-
Large cap stocks must be at least 60% of all equities, in a universe that includes large cap, mid cap, and small cap equities: Enter "0.4" in the Large Cap row. Enter "-0.6" in the Mid Cap and Small Cap rows. Enter "0" in the Minimum % Field. Enter "100" in the Maximum % Field. (Note that you could switch this to "-0.4" for large cap and "0.6" for mid and small cap.)
Constraints Wizard
If you want the Optimizer to set up the constraint for you, select the Customized Constraints option in the Customized Constraints Wizard and then clicking on the Add Customized Constraint Button. The Design Customized Constraint Window will appear. (For investability constraints, select the Investability Customized Constraints Wizard instead.)
-
Enter a name in the Constraint Name Field (optional).
-
Chose whether you want the constraint to apply to one or two groups of assets by selecting the One Group or the Two Groups radio button. Do you want to bound a set of assets to within certain parameters (one group) or set up a relative constraint, sometimes called an inequality constraint (two groups)?
-
Enter the Lower and Upper Bound. For example, if you want the group of assets A, B, and C to fall within 10% and 40% of the portfolio, enter 10 and 40.
-
Assign assets to groups by highlighting the asset(s) in question and then adding them to the group boxes by using the Add buttons.
-
Chose how the assets should be weighted in each group.
-
Coefficient -- Assign a coefficient to apply to all of the assets in the group. The default is "1". Note that for two group constraints, the assets in the right-hand box will receive the opposite sign coefficient as the one entered in the box; the default coefficient of 1 and 1 means that the assets to the right will be marked as "-1" in the final constraint.
-
Benchmark portfolio -- If you have a benchmark portfolio, you can weight the assets according to their weights in the benchmark portfolio.
-
Yield -- If you have entered yields, you can weight the assets according to their yield.
-
Expense Ratio -- If you have entered expense ratios, you can weight the assets according to their expense ratios.
-
Custom -- If you entered a custom characteristic on the Inputs Worksheet, you can weight the assets according to that characteristic.
-
-
Review the formula that appears at the bottom of the window to review the constraint that will be applied.
Blue Background and Updating Customized Constraints
If you set up a customized constraint in the wizard, the cell background for the weights will be blue. This indicates that you can edit them in the Customized Constraints Wizard/Investability Customized Constraints Wizard and that the Optimizer automatically updates the weights as the source material is updated. For instance, yield-weighted constraints change when yields are updated. Constraints without the blue background have either been entered or updated manually; they require manual updating going forward and cannot be edited in the wizard.
Customized Quadratic Constraints
To enable quadratic customized constraints, select the Quadratic Constraints option in the Constraints Menu. Two rows will appear at the bottom of the Customized Constraints section of the Constraints Worksheet. The Quadratic Target field holds the target for the asset or the specific group of assets designated by the coefficients. he Quadratic Penalty field indicates the quadratic return penalty that the Optimizer assesses when the target is not met. In other words, the Optimizer applies the penalty to the deviation of the optimal portfolio's constraint value from the target.
Here's an example of the simplest type of constraint that involves more than coefficients. Perhaps you want the sum of Assets A, B & C to be close to 20% of the portfolio, with the outer limits at 10% and 30%. First you would put a coefficient of "1" for Assets A, B, & C. Then you would enter "10" as the lower bound and "30" as the upper bound. At this point, the sum of Assets A, B, & C must be 10-30% of the optimal portfolio. However, the stated goal is for the sum of the assets to be close to 20%. If you want to be more precise, you have two options. You can tighten the bounds—forcing the optimization solution nearer to twenty by restricting the weight to between 15 and 25%, or you can enter a target and penalty—encouraging the optimization solution to be nearer to twenty. The penalty is a quadratic function applied to portfolio returns when the optimal portfolio strays from the desired target. For our example, enter “20” in the Quadratic Target Field below the new constraint. Enter “0.001” to enter a 0.1% quadratic return penalty on the optimization if the portfolio strays from the target of 20% in assets A, B & C. This is in addition to the impermeable bounds of 10-30%, but a quadratic penalty on a group of assets does not require the addition of impermeable bounds. Quadratic penalties provide you with the ability to encourage an optimization outcome without forcing it.
Though customized constraints become easier to construct with practice, remember that constraints should be used sparingly to ensure a meaningful optimization result. It is also wise to review your asset bounds and other constraints to confirm that they do not conflict with your customized constraints. You can save customized constraints as part of a constraint set.