The constraints that are implemented in Portfolio Probe are:
Monetary Value Constraints
Control the amount of money in the portfolio.
Control the amount of money (buys plus sells) that can be traded.
Disallow the possibility of short positions. From the mathematical perspective, this rules out negative weights.
Maximum Weight Constraints
Limit the fraction of the value of the portfolio that each asset may have.
This can be general, such as no asset can have a weight greater than 5%. Alternatively, it can be specific to each asset.
Asset Trade Constraints
Limit the number of units (shares, lots, contracts, …) that can be bought or sold for particular assets.
Risk Fraction Constraints
A fraction of the portfolio variance can be attributed to each asset. Risk fraction constraints allow you to control the fraction of variance each asset may have. One application of this is in the creation of risk parity portfolios.
A related type of constraint is to limit the correlation between assets and the portfolio.
Number of Assets Held Constraint
Limit the number of assets (the number of names) held in the portfolio.
Number of Assets Traded Constraint
Limit the number of assets (the number of names) traded.
Trade Universe Constraint
Limit the assets that are allowed to trade.
There are two types of threshold constraint.
A trade threshold constraint means that if an asset is traded at all, then at least some number of units of the asset must be traded. A portfolio threshold constraint means that if the asset is in the portfolio at all, then the position size must be at least some value.
Forced Trade Constraints
Make trades with particular assets of at least a certain size.
This is not the same as a threshold constraint since a threshold constraint doesn’t say the trade has to happen — it only says it must be at least of a certain size if it does happen.
Examples of traditional linear constraints include:
- constrain weights in sectors (or countries)
- constrain the value of beta in the portfolio
- constrain the market cap in an equity portfolio
- constrain the duration in a bond portfolio
Portfolio Probe can do all of those but can also:
- constrain the contribution to portfolio variance in sectors (or countries)
This is really what the weight constraints on sectors are trying to do. Constraints on weights were implemented because the technology didn’t exist to do what was really wanted.
This might also be described as user-defined integer constraints.
The constraint limits the number of assets that appear in each category of a categorical variable. For example, there might be a constraint that there be between 6 and 8 assets from the Energy sector in the portfolio.
Tracking Error Constraints
Constrain the predicted tracking error of the portfolio from some benchmark. This is computed from the predicted variance matrix.
Constrain the predicted volatility of the portfolio, which is computed from the predicted variance matrix.
Expected Return Constraints
Constrain the predicted expected return of the portfolio, which is computed from the predictions given for the expected returns of the assets.
There are several concepts of the distance between portfolios. These include the amount of money that it takes to trade from one portfolio to the other, and the sum of absolute differences in weights.
A distance constraint limits the distance between the portfolio (or trade) and some target portfolio.
Sum of Largest Weights Constraints
Maximum weight constraints limit the size of individual weights. A sum of largest weights constraint is related, but different. This limits the sum of some number of the largest weights, no matter what assets have those weights.
Limit the transaction cost of the trade.
Number of Closing Positions Constraint
Control the number of positions that are closed. A position is closed if an asset is in the existing portfolio but not in the new portfolio.
A quadratic constraint involves a product with a square matrix that has dimensions corresponding to the assets. General quadratic constraints are not implemented, but Portfolio Probe can be tricked into doing a few special constraints.
Round Lot Constraints
If prices are given for lots, then trading in round lots is what you get. Trading is always done in integers except if an existing position has a non-integer value.