### Description

Portfolio optimization is the process of using predictions about the asset universe to find a suitable trade to perform. The term “portfolio optimization” is really a misnomer — it is actually the trade that is being optimized.

In general, the optimization in Portfolio Probe is restricted to the case where the predictions are embodied by expected returns and/or variance matrices. But see utility-free optimization as an alternative.

### Implementation

The `trade.optimizer`

function performs optimization. This takes a number of arguments that describe:

- the utility to maximize
- the constraints to use
- the transaction costs to assume

If both a variance matrix and expected returns are given, then the default is to maximize the information ratio (the predicted portfolio return divided by the predicted standard deviation of the portfolio return).

The output includes the number of units (shares, lots, contracts, …) to trade and to hold. There is no need to post-process the results from the optimizer.

### Utilities

- Maximize the information ratio (two ways of including costs)
- Maximize mean-variance utility
- Maximize mean-volatility utility
- Minimize variance
- Maximize expected return
- Minimize distance to a target portfolio

It is possible to use more than one variance matrix and/or more than one vector of expected returns in utilities. One possible use of this would be to have a short-term utility and a long-term utility.