MTO

Mean-tracking-error optimization, maximize your return in excess of a benchmark while minimizing tracking-error.

Description

Maximize expected returns relative to a benchmark and minimize expected tracking-error. Solve for the mean-tracking-error optimal portfolio (MTO). This is a quadratic programming optimizer in active space. The function allow you to specify both linear and non-linear constraints and is able to account for friction penalties such as transaction costs across assets.

Syntax

The following describes the function signature for use in Microsoft Excel's formula bar.

=MTO(mu, sigma, rho, aversion, wBenchmark, wInitial, tc, lb, ub, constraints, nonlincons)

Input(s)

ArgumentDescription

mu

Required. Vector of expected returns.

sigma

Required. Vector of expected risk.

rho

Required. Correlation matrix.

aversion

Optional. Scalar value for tracking aversion. If the argument is not specified, it defaults to 1.

wBenchmark

Optional. Vector of benchmark weights. This is used to evaluate the utility function in excess return space. If not specified, the function assumes a vector of zeros.

wInitial

Optional. Vector of initial weights (or your current weights). This is used to measure the friction penalties when solving for an optimal transition. If not specified, the function assumes a vector of zeros.

tc

Optional. Vector of transaction costs. If the argument is not specified, it defaults to a vector of zeros.

lb

Optional. Vector of lower bound limits. If the argument is not specified, it defaults to a vector of zeros.

ub

Optional. Vector of upper bound limits. If the argument is not specified, it defaults to a vector of ones.

constraints

Optional. Matrix of constraints, operator enumeration, and values: [Aopb]\begin{bmatrix}A & op &b\end{bmatrix}

The operator enumeration is represented by op{0:1:=2:op \in \begin{cases} 0: & \leq \\1: & = \\ 2: & \geq \end{cases}

If the argument is not specified, it will default to a fully-funded constraint. i.e. [1,1,,1N,1,1]\begin{bmatrix}1,1,…,1_N​,1,1\end{bmatrix}

nonlincons

Optional. Matrix to specify nonlinear constraint enumeration, operator enumeration, and values: [nonlinTypeopvalue]\begin{bmatrix}nonlinType​ & op ​& value\end{bmatrix}

The nonlinType enumeration is nonlinType{0:off1:same risk2:same tracking-errornonlinType \in \begin{cases} 0: & \text{off} \\1: & \text{same risk} \\ 2: & \text{same tracking-error} \end{cases}

Output(s)

The function returns a vector of optimal weights ww across NNassets and appends the corresponding optimization's exit flag.

output=[w1w2wNexitFlag]\text{output}=\begin{bmatrix}w_1 & w_2 & \ldots & w_N & \text{exitFlag}\end{bmatrix}

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.

exitFlagDescription

-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