MVO
Mean-variance optimization, a quadratic programming optimizer.
Description
Maximize expected returns and minimize expected risk. Solve for a mean-variance optimal portfolio. The function allows you to specify both linear and non-linear constraints and is able to account for friction penalties (transaction costs).
Syntax
The following describes the function signature for use in Microsoft Excel's formula bar.
Input(s)
Argument | Description |
---|---|
mu | Required. Vector of expected returns. |
sigma | Required. Vector of expected risk. |
rho | Required. Correlation matrix. |
aversion | Optional. Scalar value for risk aversion. If the argument is not specified, it defaults to 1. |
wInitial | Optional. Vector of initial weights (or your current weights). This is used to measure the friction penalties or as a starting point should a numerical approach be necessary. If not specified, it defaults to a vector of zeros. |
tc | Optional. Vector of transaction costs. If the argument is not specified, it defaults to a vector zeros. |
lb | Optional. Vector of lower bound limits. If the argument is not specified, it defaults to a vector zeros. |
ub | Optional. Vector of upper bound limits. If the argument is not specified, it defaults to a vector ones. |
constraints | Optional. Matrix of constraints, operator enumeration, and values: The operator enumeration is represented by If the argument is not specified, it will default to a fully-funded constraint. i.e. |
nonlincons | Optional. Matrix to specify nonlinear constraint enumeration, operator enumeration, and values: The nonlinType enumeration is |
Output(s)
The function returns a vector of optimal weights across assets and appends the corresponding optimization's exit flag.
The output matrix follows the vector orientation of mu (column / row). If you have specified your inputs as column-vectors, the corresponding output matrix will be transpose of the above.
exitFlag | Description |
---|---|
-2 | No feasible solution found. Check your constraints and problem definition. |
-1 | Unexpected interruption. |
0 | Number of iterations exceeded. |
1 | First-order optimality measure is less than tolerance threshold and the constraints were satisfied. |
2 | Delta in optimal weights is less than the configured numerical step size. |
3 | Change in the expected utility value is less than the tolerance threshold. |
4 | Magnitude of search direction was less than the configured threshold. |
5 | Magnitude of directional derivative in the search direction was less than the configured threshold. |
Example
Last updated