Almgren–Chriss optimal execution
∞structuralThe canonical optimal-execution model (2000): liquidating a position is a trade-off between market impact (trade fast) and timing risk (trade slow). Minimising a mean-variance cost yields the optimal trajectory; risk aversion sets where on the frontier you sit.
See it move
What to notice. A patient trader (low λ) liquidates almost linearly and pays little impact but rides volatility for longer; a risk-averse trader (high λ) front-loads and pays more impact to cut timing risk. Every choice sits on the same frontier: there is no free lunch, only a trade-off.
What problem does Almgren–Chriss solve?
You hold units and must be flat by time . You choose how much to trade in each of time slices. Trade quickly and your own selling pushes the price down against you (impact); trade slowly and the price can drift away before you finish (volatility, or timing risk). Almgren–Chriss finds the schedule that optimally trades these two costs off.
It is the formal solution to the dilemma introduced in why execution algorithms exist: impact versus timing risk. Where that page gives you the U-shaped intuition, this page gives you the maths and the answer. The framework is a discrete-time, linear-impact, mean-variance model, deliberately simple enough to be solved in closed form, which is exactly why it became the universal teaching and production baseline.
The output is not one schedule but a family of optimal schedules, one per risk-aversion: the efficient frontier. That is the model's deepest idea: there is no single right answer, only an efficient set. Its assumptions (linear impact, an arithmetic Brownian price) are simplifications, which we flag honestly below.
The impact and risk model
The price you receive on each slice is the unaffected price minus two impact terms: a permanent impact that shifts the price for good and is felt by every later slice, and a temporary impact that depends on how fast this slice trades and recovers after. The unaffected price meanwhile follows a random walk with volatility , the source of risk. Take the three objects one at a time, glossed before any formula.
Permanent impact : each unit you sell permanently lowers the price by per unit, a genuine revaluation the market keeps. It depends on total size, not speed. Temporary impact : trading a slice of size over a short interval costs an extra per unit. The faster you push, the worse the price, but it recovers once you stop. This is the cost you control by slowing down. Volatility : between slices the unaffected price moves as an arithmetic random walk, so the longer you take, the more it can drift against your remaining position. This is the risk (the variance) in the objective.
These , , are the same objects as the market-impact guides. Almgren–Chriss is what you do with a calibrated impact model. See estimating impact for getting and from data.
The mean-variance objective and the efficient frontier
For any schedule, the model computes the expected cost (the impact you'll pay) and its variance (the timing risk). It then minimises , where is your risk-aversion. Sweeping from 0 to traces the efficient frontier, every point a schedule that is optimal for some risk appetite.
The intuition for : means you care only about expected cost, so you trade as slowly as possible to minimise impact: the risk-neutral limit, which gives uniform trading (TWAP, the straight-line liquidation). Crank up and you increasingly fear the variance, so you front-load: pay more impact now to cut your exposure to price drift.
The frontier, glossed: plot against . It is a convex curve; you cannot reduce expected cost without taking more risk, or reduce risk without paying more expected cost. Your picks the point. This is the single most important picture in execution. An urgent desk (high , it cannot stomach the position drifting) sits up and to the left, trading fast; a patient one (low ) sits down and to the right, trading slow. Both are "right"; the model refuses to pretend otherwise.
The closed-form trajectory: the sinh schedule
The optimal holdings path has a closed form. With (the "urgency" rate set by risk-aversion, volatility and temporary impact) the remaining holdings decay as a hyperbolic sine. Higher gives a larger and a faster, more front-loaded decay; as , and the curve straightens into the TWAP line.
Reading the formula: the ratio is 1 at and 0 at , decaying convexly in between. The single parameter controls the curvature: all of the model's behaviour collapses into this one urgency number. As the ratio becomes linear, recovering uniform (risk-neutral) trading; as grows, the curve bends sharply toward the origin and you dump most of the position early. Volatility (more risk to flee) and risk-aversion both push up; temporary impact (more expensive to rush) pushes it down.
Why permanent impact does not change the shape: in the basic model permanent impact adds a fixed cost to every schedule (it depends only on total size, not the path) so it shifts the frontier but does not bend the optimal trajectory. Only temporary impact and risk interact to set the curve. That is a genuinely useful, non-obvious fact worth carrying away.
▸ Show the derivation optional
For a liquidation of units over intervals of length , let be holdings after interval (with , ) and the amount sold in interval . The unaffected price carries permanent impact and the execution price carries temporary impact:
The implementation shortfall (cost relative to the arrival value ) has the expectation and variance below: a path-independent permanent term plus a temporary term that penalises fast slices, and a variance from holding through each interval at volatility .
Minimising over the (with the endpoint constraints) and setting the gradient to zero gives a linear second-order difference equation in :
Its solution is a discrete hyperbolic sine; in the continuous limit this is with , and the trade rate is the corresponding -weighted decay. The frontier is then traced by evaluating along the optimal as varies. (Almgren & Chriss, Optimal execution of portfolio transactions, Journal of Risk, 2000.)
What the model assumes
The basic model assumes linear impact (real impact is sublinear, the square-root law), an arithmetic random walk (no drift, constant ), static parameters, and a single asset. These keep it solvable in closed form. The frontier intuition survives all of them; the exact trajectory does not, once impact is nonlinear or is time-varying.
Linear vs square-root impact. Empirically impact scales like (the Gatheral square-root law) not linearly. Almgren–Chriss's linearity is a tractable approximation; extensions (Almgren 2003, Gatheral–Schied) handle nonlinear impact and lose the clean closed form.
No alpha, no drift. The model assumes the unaffected price is a driftless martingale. If you have a short-horizon signal, the optimal schedule tilts toward (or away from) the drift. Execution with alpha is a documented extension, not the base case.
Static parameters. The , , and the volume profile are taken as fixed; in reality they are regime-dependent and, in 2026, increasingly forecast per name and time of day. This is where ML enters, not to replace the frontier, but to feed it better inputs and to generalise the policy beyond the linear-impact assumption. See what AI changes for HFT.
Worked example
Illustrative synthetic figures, not advice, reproducible in the model above. Liquidate shares over day in slices ( day). Take volatility per (in price units relative to a 50.00 price), with temporary impact and permanent impact taken from a calibrated impact model.
Risk-neutral (): , so the optimal schedule is the straight line: sell 50,000 every slice (TWAP). Expected cost is the minimum ( plus the temporary term spread evenly), but the variance of cost is the maximum: you hold a large position late into the day, fully exposed to .
That moderately risk-averse schedule pays more temporary impact early, so its expected cost rises, but its cost standard deviation falls sharply, because you are flat much sooner and the price cannot drift on a large remaining position. Reading the frontier: plotting the two points shows the risk-averse schedule sitting up and to the left of the TWAP point, with higher expected cost and much lower risk. Neither dominates; your decides. Drag in the widget above and watch the chosen point glide along the convex frontier while the trajectory bends from a line into a . Calibrate , to your own fills; the trajectory shape is robust, the exact numbers are not.