Quant Memo
Advanced

The Almgren-Chriss Model

The foundational optimal-execution framework, trade a position off to minimize expected impact cost plus a risk penalty on the leftover exposure, yielding a closed-form hyperbolic-sine trajectory and the efficient frontier of execution.

Prerequisites: Expectation, Variance & Moments, Brownian Motion

Almgren and Chriss (2000) turned execution from an art into an optimization. You must liquidate XX shares by a deadline TT. Trade fast and you pay large Market Impact costs; trade slow and you sit on an exposed position whose price wanders, timing risk. Their model makes this tradeoff precise, minimizing expected cost plus a risk penalty, and it has a beautiful closed-form solution. It is the direct ancestor of every modern execution algorithm and the formal statement of the Optimal Execution problem.

Setup

Liquidate XX shares over [0,T][0, T], divided into NN intervals of length τ=T/N\tau = T/N. Let xkx_k be the shares remaining after interval kk (so x0=Xx_0 = X, xN=0x_N = 0), and nk=xk1xkn_k = x_{k-1} - x_k the shares sold in interval kk. The trajectory {xk}\{x_k\} is what we choose. The price evolves as an arithmetic random walk pushed down by permanent impact:

Sk=Sk1+στξkτg ⁣(nkτ),S_k = S_{k-1} + \sigma\sqrt{\tau}\,\xi_k - \tau\,g\!\left(\frac{n_k}{\tau}\right),

with ξk\xi_k i.i.d. standard normal (the volatility, a Brownian Motion increment) and gg the permanent impact. Each sale actually executes at a worse price because of temporary impact hh:

S~k=Sk1h ⁣(nkτ).\tilde S_k = S_{k-1} - h\!\left(\frac{n_k}{\tau}\right).

Take the standard linear impact functions g(v)=γvg(v) = \gamma v and h(v)=εsgn(v)+ηvh(v) = \varepsilon\,\operatorname{sgn}(v) + \eta v.

Expected cost and risk

The implementation shortfall is the difference between the value of the position at the initial price XS0X S_0 and the actual proceeds nkS~k\sum n_k \tilde S_k. Its expectation and variance work out to

E[cost]=12γX2permanent  +  εknkspread  +  ητknk2temporary,Var[cost]=σ2kτxk2.\mathbb{E}[\text{cost}] = \underbrace{\tfrac12\gamma X^2}_{\text{permanent}} \;+\; \underbrace{\varepsilon\sum_{k}|n_k|}_{\text{spread}} \;+\; \underbrace{\frac{\eta}{\tau}\sum_{k} n_k^2}_{\text{temporary}}, \qquad \operatorname{Var}[\text{cost}] = \sigma^2\sum_{k}\tau\,x_k^2.

Read the structure. The permanent term 12γX2\tfrac12\gamma X^2 depends only on the total size, not the schedule, you cannot avoid it by clever timing. The temporary term ητnk2\frac{\eta}{\tau}\sum n_k^2 punishes trading fast (large nkn_k): it is convex, so spreading trades out reduces it. The variance σ2τxk2\sigma^2\sum\tau x_k^2 punishes holding the position, it accumulates as long as xkx_k is large, so it rewards trading fast. These two pull in opposite directions: that is the trader's dilemma.

The mean-variance objective

Choose the trajectory to minimize expected cost plus a risk penalty scaled by risk-aversion λ>0\lambda > 0:

min{xk}  E[cost]+λVar[cost]  =  min{xk}  ητknk2  +  λσ2kτxk2  +  const.\min_{\{x_k\}} \; \mathbb{E}[\text{cost}] + \lambda\,\operatorname{Var}[\text{cost}] \;=\; \min_{\{x_k\}}\; \frac{\eta}{\tau}\sum_k n_k^2 \;+\; \lambda\sigma^2\sum_k \tau\,x_k^2 \;+\; \text{const}.

(The permanent term is a schedule-independent constant; drop the spread term for the smooth solution.) This is a quadratic program in {xk}\{x_k\}. Its Euler condition is a linear second-order difference equation,

xk12xk+xk+1=κ2τ2xk,κ2λσ2η.x_{k-1} - 2x_k + x_{k+1} = \kappa^2\tau^2\, x_k, \qquad \kappa^2 \approx \frac{\lambda\sigma^2}{\eta}.

The closed-form trajectory

The solution with boundary conditions x0=Xx_0 = X, xN=0x_N = 0 is a hyperbolic sine decay:

x(t)=Xsinh ⁣(κ(Tt))sinh(κT),κ=λσ2η.\boxed{\,x(t) = X\,\frac{\sinh\!\big(\kappa (T - t)\big)}{\sinh(\kappa T)}, \qquad \kappa = \sqrt{\frac{\lambda\sigma^2}{\eta}}.\,}

The single parameter κ\kappa (the urgency, units of inverse time) controls everything, and its dependence is exactly the intuition:

  • Risk-neutral limit (λ0\lambda \to 0, κ0\kappa \to 0). sinh(κ(Tt))/sinh(κT)(Tt)/T\sinh(\kappa(T-t))/\sinh(\kappa T) \to (T-t)/T: the trajectory is a straight line, sell at a constant rate. This is TWAP, VWAP & POV (TWAP), the minimum-impact schedule. A trader who does not care about risk simply minimizes impact by trading uniformly.
  • Risk-averse (λ\lambda large, κ\kappa large). κ\kappa grows, the sinh\sinh front-loads the schedule, and you liquidate fast and early to shed the risky position, accepting more impact cost to cut timing risk. The characteristic half-life of the trade is 1/κ=η/(λσ2)\sim 1/\kappa = \sqrt{\eta/(\lambda\sigma^2)}: more volatility σ\sigma or more risk aversion λ\lambda shortens it; more impact η\eta lengthens it.

The efficient frontier of execution

Sweeping λ\lambda from 00 to \infty traces a curve in the (Var, E[cost])(\operatorname{Var},\ \mathbb{E}[\text{cost}]) plane, the efficient frontier of execution, exactly analogous to Markowitz's mean-variance frontier but for a single liquidation. Each point is the minimum expected cost achievable at a given level of execution-risk variance. TWAP sits at the low-cost/high-risk end; aggressive liquidation at the high-cost/low-risk end. Your choice of λ\lambda is your point on the frontier, and it should reflect the position's risk relative to your book, not a universal constant.

Worked example

Liquidate X=1,000,000X = 1{,}000{,}000 shares over T=1T = 1 day, with daily volatility σ=0.02×S\sigma = 0.02\times S and temporary impact coefficient η\eta. Suppose calibration gives κ=2\kappa = 2 per day.

  • The half-life is 1/κ=0.51/\kappa = 0.5 day: you sell roughly the first half of the position in the first half-day and taper. Concretely, at t=T/2t = T/2, remaining shares are Xsinh(κT/2)/sinh(κT)=Xsinh(1)/sinh(2)=X(1.175/3.627)=0.324XX\sinh(\kappa T/2)/\sinh(\kappa T) = X\sinh(1)/\sinh(2) = X(1.175/3.627) = 0.324\,X, so 68% is done by the midpoint, front-loaded, versus 50% for TWAP.
  • Push risk aversion up so κ=4\kappa = 4: at the midpoint remaining is sinh(2)/sinh(4)=3.627/27.29=0.133\sinh(2)/\sinh(4) = 3.627/27.29 = 0.133, i.e. 87% done by halfway, much more aggressive, higher impact cost, lower timing risk. Drop to κ0\kappa \to 0 and you recover the straight-line TWAP with 50% done at halfway. Choosing κ\kappa is choosing your spot on the frontier.

Failure modes and caveats

  • Linear impact contradicts the data. The tractable closed form assumes linear temporary impact, but real impact is concave (The Square-Root Impact Law); linear Almgren–Chriss overstates the cost of large child slices. Almgren (2003) extends to power-law impact at the cost of the clean formula.
  • Static, deterministic schedule. The basic solution is computed up front and ignores new information, it does not react to price moves, volume surprises, or fills. Adaptive/dynamic-programming extensions (Almgren–Lorenz) let the schedule respond to the realized path.
  • Constant parameters. σ\sigma, η\eta, and volume are assumed constant; intraday they follow strong U-shaped patterns, which is why real algos track a volume profile (VWAP) rather than the clock (TWAP).
  • No cross-impact or alpha. Liquidating a portfolio couples names through cross-impact and correlations; and if you have short-term alpha, the objective should include it (the schedule should trade with the signal), which pure Almgren–Chriss omits.

In interviews

This is the execution model interviewers expect you to reason through. State the two competing costs, temporary impact ητnk2\frac{\eta}{\tau}\sum n_k^2 punishes trading fast; variance σ2τxk2\sigma^2\sum\tau x_k^2 punishes holding, and note the permanent term is schedule-independent. Then give the qualitative solution: minimizing E+λVar\mathbb{E} + \lambda\operatorname{Var} yields the sinh\sinh trajectory x(t)=Xsinh(κ(Tt))/sinh(κT)x(t) = X\sinh(\kappa(T-t))/\sinh(\kappa T) with κ=λσ2/η\kappa = \sqrt{\lambda\sigma^2/\eta}, whose two limits are TWAP (risk-neutral, straight line) and front-loaded liquidation (risk-averse). The concept that ties it together is the efficient frontier of execution, the direct analog of mean-variance. Expect the follow-up on what breaks it: linear impact vs. the empirical The Square-Root Impact Law, and the static-vs-adaptive distinction that leads to Optimal Execution.

Related concepts

Practice in interviews

Further reading

  • Almgren & Chriss (2000), Optimal Execution of Portfolio Transactions
  • Almgren (2003), Optimal Execution with Nonlinear Impact Functions
  • Bouchaud, Bonart, Donier & Gould, Trades, Quotes and Prices
ShareTwitterLinkedIn