Café Math : Optimal Execution of Portfolio Transactions

Hi, today I want to talk about the article *Optimal Execution of Portfolio Transactions* by R. Almgren and N. Chriss *Journal of Risk*, 3(2):5-39, 2000 which I found genuinely interesting. The paper is full of insightful remarks.
It provides a simple model used to describe optimal execution of portfolio transactions.
The idea is to segment the execution of a big transaction into smaller trades at successive time intervals in order to reduce the execution costs in the context of an insufficiently liquid market.
This is one of the primary goals of algorithmic trading.

The paper presents the question as an optimization problem. One has to compromise between at least two antagonist constraints. The primary constraint is to reduce the transaction costs due to market impact. The secondary constraints is to guarantee a price that isn't too far from that of the time the transaction is initiated.

Each of the successive trade has an impact on the market which is modeled by an impact function denoted by $g$. At one point the authors assume that this impact function is linear. They then derive closed form formulae for the solution of their problem and discuss the limiting behavior of their solution. Linear impact function is an unrealistic simplification. But the closed form solution they give can still be used in non-linear versions of the model by first linearizing it near the functioning point (as is customary in engineering).

Description of the Model.. Let $X$ be the initial amount of the asset to be liquidated. $T$ is the time limit before which the full position is to be liquidated. $N$ is the number of successive time-steps. $\tau = T/N$ is the length of the uniformly spread time-steps. $S_k$ is the value of the asset at time $t_k = k\tau$ without consideration of the temporary impact of the current transaction. $\tilde{S}_k$ is the value of the asset at time $t_k$ after considering the temporary impact of the current transaction. $n_k$ is the small trade of the strategy at time $t_k = k\tau$. The model is described by the following equations. \begin{align*} S_k &= S_{k-1} + \sigma \tau^{1/2} \xi_k - \tau g\left(\frac{n_k}{\tau}\right) \\ \tilde{S}_k &= S_{k-1} - h\left(\frac{n_k}{\tau}\right) \end{align*} Here $\xi_1, ... ,\xi_N$ is a sequence of independent random variables of zero mean and unit standard deviation, $\sigma \tau^{1/2} \xi_k$ is the standard arithmetic brownian increment, $\tau g\left(\frac{n_k}{\tau}\right)$ is the permanent impact of the $k$-th transaction and $h\left(\frac{n_k}{\tau}\right)$ is its temporary impact.

Problem Statement.. The value of the position at time $t_0=0$ is $XS_0$ and thus the overall transaction cost of the strategy is $x = XS_0 - \sum n_k \tilde{S}_k$. It is a random variable following a distribution having an approximately normal shape. If one denotes by $E(x)$ and $V(x)$ its mean and variance, then one has to find the trade strategy minimizing the quantity, \begin{align*} U(x) = E(x) + \lambda V(x) \end{align*} where $\lambda$ is the parameter of risk aversion.

The *trading trajectory* is the list $x_0,...,x_N$ where $x_k$ is the amount of asset we are still holding at time $t_k$. Of course,
\begin{align*}
x_k = \sum_{\ell=k+1}^N n_\ell = X - \sum_{\ell =1}^kn_\ell;
\end{align*}
which means that $x_0 = X$, $x_N = 0$ and $n_k = x_{k-1} - x_{k}$ for $k = 1,...,N$.
The total execution cost of the strategy is,
\begin{align*}
XS_0 - \sum_{k=1}^N n_k \tilde{S}_k = \sum_{k=1}^N \sigma \tau^{1/2}\xi_k\, x_k +\sum_{k=1}^N \tau g\left(\frac{n_k}{\tau}\right)x_k + \sum_{k=1}^N n_k\, h\left(\frac{n_k}{\tau}\right).
\end{align*}
The mean and variance of this random variable are,
\begin{align*}
E(x) &= \sum_{k=1}^N \tau g\left(\frac{n_k}{\tau}\right)x_k + \sum_{k=1}^N n_k\, h\left(\frac{n_k}{\tau}\right), \\
V(x) &= \sum_{k=1}^N \sigma^2 \tau \,x_k.
\end{align*}

Linear Assumption. In order to solve this problem by simple mean, one can adopt linear assumption of the article. They make the following assumption as to the two market impact functions, \begin{align*} g(v) &= \gamma \,v, & h\left(\frac{n_k}{\tau}\right) &= \varepsilon\, \mathrm{sign} (n_k) + \frac{\eta}{\tau} \,n_k. \end{align*} Using those assumptions, and replacing $n_k$ by $x_{k-1} - x_{k}$, the mean and variance of the total execution cost are, \begin{align*} E(x) &= \sum_{k=1}^N \gamma\, (x_{k-1} - x_{k})x_k + \varepsilon\left| X\right| + \sum_{k=1}^N \frac{\eta}{\tau} \,(x_{k-1} - x_{k})^2, \\ V(x) &= \sum_{k=1}^N \sigma^2 \tau \,x_k^2. \end{align*} Minimizing the quantity $U(x) = E(x) + \lambda V(x)$ is done by solving the following system of linear equations, \begin{align*} \frac{\partial U(x)}{\partial x_i} &= A\, x_{i-1} + B\, x_i + A\, x_{i+1} = 0, &(i &= 1,...,N-1) \end{align*} where, \begin{align*} A &= -\left(\gamma+2\,\frac{\eta}{\tau}\right), & B &= 2\,\gamma+4\,\frac{\eta}{\tau}+2\,\lambda \sigma^2 \tau. \end{align*} It is solved by the following formula, \begin{align*} \boxed{x_k = u\, \alpha_1^k + v\,\alpha_2^k} \end{align*} where, \begin{align*} \alpha_1 &= \frac{-B-\sqrt{B^2 - 4A^2}}{2A} & \alpha_2 &= \frac{-B+\sqrt{B^2 - 4A^2}}{2A} \\ u &= \frac{X\alpha_2^N}{\alpha_2^N-\alpha_1^N} & v &= \frac{X\alpha_1^N}{\alpha_2^N-\alpha_1^N} & \end{align*}

Samuel VIDAL posted 2012-04-29 18:32:50

Ho, thanks a lot !

Your post captures the issue perfectly!