Optimal Execution Algorithms: TWAP, VWAP & Market Impact › The Almgren-Chriss Framework

Michael BrenndoerferJanuary 20, 202519 min read
Quantitative FinanceAll chapters
Part 12 of 15Market Making and High-Frequency Trading
Chapter 68Optimal Execution Algorithms: TWAP, VWAP & Market Impact › The Almgren-Chriss Framework
Reading section 5 of 10 · The Almgren-Chriss Framework · 19 minSection 5 of 10 · 19 min

Book contents

Section 5 of 10 · 19 min read

Optimal Execution Algorithms: TWAP, VWAP & Market Impact › The Almgren-Chriss FrameworkOne section · Sections in this chapter5 / 10 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

The Almgren-Chriss model, published in 2000, provides a rigorous mathematical framework for optimal execution. It formalizes the trade-off between market impact and timing risk, deriving closed-form optimal trajectories under specific assumptions about price dynamics and market impact. This framework provided explicit mathematical solutions that practitioners could implement and analyze.

Model Setup

The framework begins by modeling the midpoint price StS_t as following arithmetic Brownian motion. This means the price evolves randomly over time, with increments that are normally distributed and independent across time periods:

dSt=σ dWtdS_t = \sigma \, dW_t

where:

  • StS_t: midpoint price at time tt
  • σ\sigma: arithmetic volatility, representing the standard deviation of price changes per unit time
  • WtW_t: standard Wiener process, the mathematical representation of random price fluctuations

Note the deliberate absence of drift in this equation. The framework assumes no alpha and no expected direction of price movement. This assumption is philosophically consistent with the role of execution. The decision about what to trade and why has already been made elsewhere; it is not the execution algorithm's responsibility. The execution algorithm's job is not to predict where prices are going but to minimize the cost of getting the desired position, given that prices will fluctuate randomly during execution.

You must liquidate XX shares over time horizon TT. Let xtx_t denote remaining inventory at time tt, with initial condition x0=Xx_0 = X (we start with the full position) and terminal condition xT=0x_T = 0 (we must be completely liquidated by the horizon). The trading rate is vt=−x˙tv_t = -\dot{x}_t, where the negative sign reflects that inventory decreases as we trade. A positive trading rate means we are selling, and our inventory is declining.

Market Impact Model

The model incorporates both temporary and permanent market impact, as we discussed in detail in the chapter on transaction costs. These two types of impact capture different mechanisms by which trading affects prices. When trading at rate vtv_t:

  • Permanent impact. A fraction of impact persists permanently, moving the midpoint price for all subsequent trades and the wider market. Permanent impact reflects the information content of order flow. When you trade, the market updates its beliefs about fair value. The cumulative permanent impact is g(vt)=γvtg(v_t) = \gamma v_t, where γ\gamma is the permanent impact coefficient. Every share traded permanently shifts the price by γ\gamma in the adverse direction.
  • Temporary impact. Additional adverse price movement affects only the current trade, not future ones. This Temporary impact reflects the cost of demanding immediacy. To trade quickly, one must pay for liquidity, crossing the spread or walking up the order book. The temporary impact is h(vt)=ηvt+ϵ sgn(vt)h(v_t) = \eta v_t + \epsilon \, \text{sgn}(v_t), where η\eta is the temporary impact coefficient measuring the additional cost per share from trading quickly, and ϵ\epsilon represents fixed costs like half the bid-ask spread that must be paid regardless of trade size.

For mathematical tractability, and because the fixed cost does not affect the optimal trajectory shape, the model typically uses linear impact functions without the fixed component:

g(v)=γv(permanent)h(v)=ηv(temporary)\begin{aligned} g(v) &= \gamma v && \text{(permanent)} \\ h(v) &= \eta v && \text{(temporary)} \end{aligned}

where:

  • g(v)g(v): permanent impact function describing how price permanently shifts with trading
  • h(v)h(v): temporary impact function describing additional cost for the current trade only
  • γ\gamma: permanent impact coefficient in dollars per share per share traded
  • η\eta: temporary impact coefficient in dollars per share per share traded
  • vv: trading rate

The linearity assumption, while stylized, captures the essential economics. Trading faster costs more due to temporary impact, and total trading permanently moves prices. The distinction between temporary and permanent impact matters because permanent impact represents a cost that cannot be avoided by changing the trading schedule, while temporary impact depends critically on how aggressively we trade.

Expected Cost and Variance

The expected execution cost consists of permanent and temporary components. For a trading trajectory with trading rate vtv_t, we can derive your expected cost by integrating the impact over time. The calculation proceeds as follows:

E[Cost]=∫0T(γ(X−xt)vt+ηvt2)dt=γ∫0T(X−xt)(−dxtdt)dt+∫0Tηvt2 dt(substitute vt=−x˙t)=−γ∫X0(X−x) dx+∫0Tηvt2 dt(change variable to x)=γ[Xx−x22]0X+∫0Tηvt2 dt=12γX2+∫0Tηvt2 dt\begin{aligned} E[\text{Cost}] &= \int_0^T \left( \gamma(X - x_t)v_t + \eta v_t^2 \right) dt \\ &= \gamma \int_0^T (X - x_t) \left(-\frac{dx_t}{dt}\right) dt + \int_0^T \eta v_t^2 \, dt && \text{(substitute } v_t = -\dot{x}_t \text{)} \\ &= -\gamma \int_X^0 (X - x) \, dx + \int_0^T \eta v_t^2 \, dt && \text{(change variable to } x \text{)} \\ &= \gamma \left[ Xx - \frac{x^2}{2} \right]_0^X + \int_0^T \eta v_t^2 \, dt \\ &= \frac{1}{2}\gamma X^2 + \int_0^T \eta v_t^2 \, dt \end{aligned}

where:

  • E[Cost]E[\text{Cost}]: expected execution cost across all trading
  • XX: initial inventory to be liquidated
  • xtx_t: remaining inventory at time tt
  • vtv_t: trading rate at time tt
  • γ\gamma: permanent impact coefficient
  • η\eta: temporary impact coefficient
  • TT: trading horizon

This derivation reveals a fundamental insight about the structure of execution costs. The expected cost decomposes into two qualitatively different terms. The permanent impact term 12γX2\frac{1}{2}\gamma X^2 depends only on total shares and is completely path-independent. No matter how we schedule our trades, we will pay this cost. The factor of one-half appears because early trades suffer the full permanent impact of later trades, while later trades have already "locked in" some of that impact, creating an averaging effect. The temporary impact term ∫ηvt2 dt\int \eta v_t^2 \, dt depends on the execution speed and is the only component we can minimize through clever scheduling. Because it is quadratic in the trading rate, this term penalizes bursts of rapid trading and rewards smooth, steady execution.

The variance of execution cost arises from the accumulation of price risk on the held inventory. The intuition is straightforward: while we hold shares, their value fluctuates randomly. The more shares we hold and the longer we hold them, the more exposed we are to these fluctuations. If the price evolves as dSt=σdWtdS_t = \sigma dW_t, the fluctuation in portfolio value is ∫0TxtdSt=∫0TxtσdWt\int_0^T x_t dS_t = \int_0^T x_t \sigma dW_t. This stochastic integral represents the cumulative random gains and losses from price movements applied to our inventory over time.

By the Itô isometry, a fundamental result in stochastic calculus, the variance of this integral can be computed by integrating the squared integrand:

Var[Cost]=E[(∫0Tσxt dWt)2]=∫0TE[(σxt)2] dt(Itoˆ isometry)=σ2∫0Txt2 dt(deterministic xt)\begin{aligned} \text{Var}[\text{Cost}] &= E\left[ \left( \int_0^T \sigma x_t \, dW_t \right)^2 \right] \\ &= \int_0^T E[(\sigma x_t)^2] \, dt && \text{(Itô isometry)} \\ &= \sigma^2 \int_0^T x_t^2 \, dt && \text{(deterministic } x_t \text{)} \end{aligned}

where:

  • Var[Cost]\text{Var}[\text{Cost}]: variance of execution cost
  • σ\sigma: price volatility per unit time
  • TT: trading horizon
  • xtx_t: remaining inventory at time tt

This variance formula captures the essence of timing risk. The unexecuted inventory xtx_t remains exposed to price volatility σ\sigma at every moment. The variance integrates xt2x_t^2 because variance is a quadratic measure. Holding twice as many shares exposes us to four times the risk. An execution schedule that maintains high inventory for a long time will have high variance, while a schedule that rapidly reduces inventory will have low variance.

Mean-Variance Optimization

With expressions for both expected cost and variance in hand, we can formulate the optimization problem. The Almgren-Chriss objective balances expected cost against variance using a risk aversion parameter λ\lambda:

min⁡{xt}E[Cost]+λ⋅Var[Cost]\min_{\{x_t\}} \quad E[\text{Cost}] + \lambda \cdot \text{Var}[\text{Cost}]

where:

  • {xt}\{x_t\}: execution trajectory over time, the decision variable we optimize
  • λ\lambda: risk aversion parameter, expressing how much the trader dislikes variance relative to expected cost

This mean-variance formulation should feel familiar. It is directly analogous to Markowitz portfolio optimization, which we covered in Part IV. In portfolio theory, we balance expected return against portfolio variance when choosing asset weights. Here, instead of choosing portfolio weights, we choose an execution trajectory. Instead of maximizing return while controlling risk, we minimize cost while controlling execution uncertainty. The mathematical structure is identical, which is why the Almgren-Chriss framework produces an "efficient frontier" of execution strategies just as Markowitz produces an efficient frontier of portfolios.

The risk aversion parameter λ\lambda is chosen by the trader and reflects their preferences. A trader with high risk aversion, large λ\lambda, will pay more in expected impact to achieve certainty about execution cost. A trader with low risk aversion, small λ\lambda, will accept uncertain outcomes in exchange for lower expected cost. There is no objectively "correct" value for λ\lambda; it depends on the trader's circumstances, constraints, and risk tolerance.

The Optimal Trajectory

To derive the optimal trajectory, we must solve this optimization problem using calculus of variations. We first observe that the permanent impact term 12γX2\frac{1}{2}\gamma X^2 depends only on total shares XX, not the trading path. Since this term is the same for all feasible execution schedules, we can drop it from the optimization without affecting which trajectory is optimal.

Substituting the trading rate vt=−x˙tv_t = -\dot{x}_t into the remaining cost and variance terms gives the objective functional that we seek to minimize:

J[x]=∫0Tηvt2 dt+λ∫0Tσ2xt2 dt=∫0T(ηx˙t2+λσ2xt2)dt\begin{aligned} J[x] &= \int_0^T \eta v_t^2 \, dt + \lambda \int_0^T \sigma^2 x_t^2 \, dt \\ &= \int_0^T \left( \eta \dot{x}_t^2 + \lambda \sigma^2 x_t^2 \right) dt \end{aligned}

where:

  • J[x]J[x]: objective functional to minimize, a function of the entire trajectory
  • η\eta: temporary impact coefficient
  • x˙t\dot{x}_t: time derivative of inventory, equal to negative of trading rate
  • λ\lambda: risk aversion parameter
  • σ\sigma: volatility parameter
  • xtx_t: inventory at time tt

The integrand acts as the Lagrangian L(x,x˙)=ηx˙t2+λσ2xt2\mathcal{L}(x, \dot{x}) = \eta \dot{x}_t^2 + \lambda \sigma^2 x_t^2. This Lagrangian has the structure of a harmonic oscillator in classical mechanics, with a term quadratic in position (inventory) and a term quadratic in velocity (trading rate). This connection to physics is not merely coincidental; the same mathematical structure appears whenever a system must balance a position penalty against a velocity penalty.

The Euler-Lagrange equation provides the necessary condition for optimality. Any trajectory that minimizes the functional must satisfy:

∂L∂x−ddt(∂L∂x˙)=0\frac{\partial \mathcal{L}}{\partial x} - \frac{d}{dt} \left( \frac{\partial \mathcal{L}}{\partial \dot{x}} \right) = 0

where:

  • L\mathcal{L}: Lagrangian function
  • xx: state variable representing inventory
  • x˙\dot{x}: time derivative of state variable representing trading rate

Calculating the necessary partial derivatives from our Lagrangian:

∂L∂x=2λσ2xt∂L∂x˙=2ηx˙tddt(2ηx˙t)=2ηx¨t\begin{aligned} \frac{\partial \mathcal{L}}{\partial x} &= 2 \lambda \sigma^2 x_t \\ \frac{\partial \mathcal{L}}{\partial \dot{x}} &= 2 \eta \dot{x}_t \\ \frac{d}{dt} \left( 2 \eta \dot{x}_t \right) &= 2 \eta \ddot{x}_t \end{aligned}

where:

  • L\mathcal{L}: Lagrangian function
  • xtx_t: inventory at time tt
  • x˙t\dot{x}_t: first time derivative of inventory (negative of trading rate)
  • x¨t\ddot{x}_t: second time derivative of inventory (negative of rate of change of trading rate)
  • λ\lambda: risk aversion parameter
  • σ\sigma: volatility parameter
  • η\eta: temporary impact coefficient

Substituting these expressions into the Euler-Lagrange equation ∂L∂x−ddt∂L∂x˙=0\frac{\partial \mathcal{L}}{\partial x} - \frac{d}{dt} \frac{\partial \mathcal{L}}{\partial \dot{x}} = 0 yields the governing linear differential equation:

2λσ2xt−2ηx¨t=0x¨t−λσ2ηxt=0\begin{aligned} 2 \lambda \sigma^2 x_t - 2 \eta \ddot{x}_t &= 0 \\ \ddot{x}_t - \frac{\lambda \sigma^2}{\eta} x_t &= 0 \end{aligned}

where:

  • x¨t\ddot{x}_t: second time derivative of inventory
  • λ\lambda: risk aversion parameter
  • σ\sigma: price volatility
  • η\eta: temporary impact coefficient
  • xtx_t: inventory at time tt

This is a second-order linear ordinary differential equation with constant coefficients. The positive coefficient on xtx_t indicates that solutions will be hyperbolic functions rather than trigonometric ones. Solving this ODE subject to boundary conditions x(0)=Xx(0)=X (we start with full inventory) and x(T)=0x(T)=0 (we must be fully liquidated by the horizon) yields a remarkable result: the optimal trajectory has a closed-form solution expressible in terms of hyperbolic functions.

Defining the risk-adjusted time constant that emerges naturally from the coefficient ratio:

κ=λσ2η\kappa = \sqrt{\frac{\lambda \sigma^2}{\eta}}

where:

  • κ\kappa: decay constant for the optimal trajectory, with units of inverse time
  • λ\lambda: risk aversion parameter
  • σ2\sigma^2: price variance rate
  • η\eta: temporary impact coefficient

This parameter κ\kappa plays a central role in the solution. It combines all the relevant model parameters into a single quantity that determines the shape of optimal execution. The numerator λσ2\lambda \sigma^2 represents the marginal cost of holding inventory, risk aversion times variance, while the denominator η\eta represents the marginal cost of trading faster. The ratio balances these competing costs, and the square root converts this ratio into a time-scale parameter.

The optimal inventory trajectory is:

xt∗=X⋅sinh⁡(κ(T−t))sinh⁡(κT)x_t^* = X \cdot \frac{\sinh(\kappa(T-t))}{\sinh(\kappa T)}

where:

  • xt∗x_t^*: optimal remaining inventory at time tt
  • XX: initial inventory
  • TT: trading horizon
  • κ\kappa: risk-adjusted decay constant
  • sinh⁡\sinh: hyperbolic sine function, defined as sinh⁡(z)=(ez−e−z)/2\sinh(z) = (e^z - e^{-z})/2

This elegant formula describes exactly how inventory should decline over time. The hyperbolic sine function ensures that the trajectory satisfies both boundary conditions. At t=0t=0, the argument is κT\kappa T and the ratio equals 1, giving x0=Xx_0 = X. At t=Tt=T, the argument is 0 and sinh⁡(0)=0\sinh(0)=0, giving xT=0x_T=0.

The optimal trading rate follows as the derivative of the inventory trajectory:

vt∗=X⋅κcosh⁡(κ(T−t))sinh⁡(κT)v_t^* = X \cdot \frac{\kappa \cosh(\kappa(T-t))}{\sinh(\kappa T)}

where:

  • vt∗v_t^*: optimal trading rate
  • XX: initial inventory
  • κ\kappa: risk-adjusted decay constant
  • TT: trading horizon
  • tt: time
  • cosh⁡,sinh⁡\cosh, \sinh: hyperbolic cosine and sine functions, where cosh⁡(z)=(ez+e−z)/2\cosh(z) = (e^z + e^{-z})/2

The trading rate is highest at the beginning when cosh⁡(κ(T−t))\cosh(\kappa(T-t)) is largest, and decreases over time as the remaining horizon shrinks.

Interpretation of κ\kappa

The parameter κ\kappa determines the shape of the optimal trajectory. It balances the marginal cost of slow execution (timing risk, proportional to λ σ 2) against the marginal cost of fast execution (temporary impact, proportional to η). When κ is large as with high risk aversion or volatility and low temporary impact, optimal execution is front-loaded. When κ\kappa is small, execution approaches TWAP.

The optimal trajectory encompasses several intuitive limiting cases that help build understanding of what the solution means:

  • Risk-neutral trader (λ → 0): When you have no risk aversion, κ → 0 and the optimal strategy approaches TWAP. Without concern for timing risk, there is no reason to accept higher impact by trading quickly. Mathematically, as κ→0\kappa \to 0, the ratio sinh⁡(κ(T−t))/sinh⁡(κT)\sinh(\kappa(T-t))/\sinh(\kappa T) approaches (T−t)/T(T-t)/T, which is the linear inventory path of TWAP.

  • Infinite risk aversion (λ → ∞): When timing risk is completely unacceptable, κ → ∞ and you liquidate immediately, accepting maximum market impact. You effectively treat any exposure to price uncertainty as infinitely costly and are willing to pay any amount in impact to eliminate it.

  • High volatility: Increasing σ increases κ, leading to faster execution. Higher volatility means greater timing risk per unit time, which justifies the acceptance of more impact to complete sooner. This makes intuitive sense: if prices are whipping around wildly, you want to finish quickly rather than remain exposed.

  • High temporary impact: Increasing η decreases κ, leading to slower execution. When impact is costly, patience pays off, as each share of accelerated trading costs more. This captures the fundamental trade-off: when impact is cheap, trade fast; when impact is expensive, trade slow.

In[10]:
Code
def almgren_chriss_trajectory(
    X: float,  # Total shares to execute
    T: float,  # Time horizon
    sigma: float,  # Price volatility (per unit time)
    eta: float,  # Temporary impact coefficient
    lambda_risk: float,  # Risk aversion parameter
    num_points: int = 100,
) -> tuple[np.ndarray, np.ndarray, np.ndarray]:
    """
    Compute the optimal Almgren-Chriss execution trajectory.

    Returns:
        t: Time points
        x: Inventory at each time point
        v: Trading rate at each time point
    """
    # Risk-adjusted decay parameter
    kappa = np.sqrt(lambda_risk * sigma**2 / eta)

    # Time grid
    t = np.linspace(0, T, num_points)

    # Optimal inventory trajectory
    if kappa * T < 1e-6:  # Near risk-neutral case
        x = X * (1 - t / T)  # TWAP
        v = np.full_like(t, X / T)
    else:
        x = X * np.sinh(kappa * (T - t)) / np.sinh(kappa * T)
        v = X * kappa * np.cosh(kappa * (T - t)) / np.sinh(kappa * T)

    return t, x, v


import numpy as np

# Parameters
X = 100_000  # shares
T = 1.0  # normalized time horizon
sigma = 0.02  # 2% volatility over horizon
eta = 2.5e-6  # temporary impact coefficient

# Different risk aversion levels
lambdas = [0.01, 0.1, 1.0, 10.0]
trajectories = {}

for lam in lambdas:
    t, x, v = almgren_chriss_trajectory(X, T, sigma, eta, lam)
    trajectories[lam] = {"t": t, "x": x, "v": v}
Out[11]:
Visualization
Line plot showing declining inventory curves from 100000 to 0 shares, with steeper initial decline for higher risk aversion.
Optimal inventory trajectories under the Almgren-Chriss model for liquidating 100,000 shares across risk aversion levels. Risk-neutral traders (λ = 0.01) follow nearly linear TWAP-like paths, while risk-averse traders (λ = 10.0) exhibit increasingly convex trajectories, completing over 60% of execution in the first 30% of the time horizon.
Line plot showing trading rate over time, with higher initial rates for risk-averse traders.
Optimal trading rates corresponding to inventory trajectories under the Almgren-Chriss model. Trading rates are highest at the beginning and decay over time, with more rapid decay for higher risk aversion. The hyperbolic decay pattern reflects the optimal balance between temporary impact costs from fast trading and timing risk costs from holding inventory.

The trajectories reveal the fundamental insight of the Almgren-Chriss model. A risk-neutral trader (λ=0.01\lambda = 0.01) executes nearly linearly, resembling TWAP. As risk aversion increases, the trajectory becomes increasingly convex, with rapid early execution that slows as the position decreases. The most risk-averse trader (λ=10\lambda = 10) completes over half the execution in the first 20% of the time horizon.

Computing Expected Cost and Risk

The optimal trajectory achieves a specific expected cost and variance that depend on the model parameters. These expressions allow you to understand what you gain and give up by choosing a particular level of risk aversion. For the Almgren-Chriss solution:

E[Cost∗]=γX22+ηX2κ(cosh⁡(κT)−1)Tsinh⁡(κT)E[\text{Cost}^*] = \frac{\gamma X^2}{2} + \frac{\eta X^2 \kappa (\cosh(\kappa T) - 1)}{T \sinh(\kappa T)}

where:

  • E[Cost∗]E[\text{Cost}^*]: minimal expected cost achievable for the given risk aversion
  • γ,η\gamma, \eta: permanent and temporary impact coefficients
  • κ\kappa: risk-adjusted decay constant
  • XX: total shares
  • TT: time horizon
  • cosh⁡,sinh⁡\cosh, \sinh: hyperbolic cosine and sine functions

The first term γX22\frac{\gamma X^2}{2} represents the unavoidable permanent impact cost that applies regardless of execution strategy. The second term represents the minimized temporary impact cost and depends on how aggressively we trade. A higher κ\kappa (more aggressive trading) increases this term because we incur more temporary impact.

The minimal variance of the execution cost is given by integrating the squared inventory trajectory:

Var[Cost∗]=σ2∫0T(xt∗)2 dt\text{Var}[\text{Cost}^*] = \sigma^2 \int_0^T (x_t^*)^2 \, dt

where:

  • Var[Cost∗]\text{Var}[\text{Cost}^*]: minimal cost variance for the given trajectory
  • σ\sigma: price volatility
  • xt∗x_t^*: optimal inventory trajectory
  • TT: trading horizon

This integral can be computed in closed form using properties of hyperbolic functions. The key observation is that faster execution, higher κ\kappa, reduces variance by reducing the integral of squared inventory but increases expected cost through higher temporary impact.

In[12]:
Code
import numpy as np


def almgren_chriss_cost_variance(
    X: float,
    T: float,
    sigma: float,
    eta: float,
    gamma: float,
    lambda_risk: float,
) -> tuple[float, float]:
    """Compute expected cost and variance for the optimal trajectory."""
    kappa = np.sqrt(lambda_risk * sigma**2 / eta)

    if kappa * T < 1e-6:
        # TWAP case
        expected_cost = gamma * X**2 / 2 + eta * X**2 / T
        variance = sigma**2 * X**2 * T / 3
    else:
        # General case
        sinh_kT = np.sinh(kappa * T)
        cosh_kT = np.cosh(kappa * T)
        tanh_kT2 = np.tanh(kappa * T / 2)

        expected_cost = gamma * X**2 / 2 + eta * X**2 * kappa * (
            cosh_kT - 1
        ) / (T * sinh_kT)
        variance = sigma**2 * X**2 * tanh_kT2 / (2 * kappa * T)

    return expected_cost, variance


# Compute efficient frontier
gamma = 1e-6  # permanent impact coefficient
lambda_values = np.logspace(-3, 2, 50)

costs = []
risks = []

for lam in lambda_values:
    cost, var = almgren_chriss_cost_variance(X, T, sigma, eta, gamma, lam)
    costs.append(cost)
    risks.append(np.sqrt(var))

costs = np.array(costs)
risks = np.array(risks)
Out[13]:
Visualization
Curved line showing decreasing expected cost with increasing execution risk, showing the cost-risk trade-off.
Execution efficient frontier showing the cost-risk trade-off when liquidating 100,000 shares. The downward-sloping frontier reveals a basic idea: reducing execution cost requires accepting higher uncertainty in outcomes, as risk-averse traders willingly incur higher expected costs to achieve lower variance in execution results.

The efficient frontier illustrates that reducing execution risk requires accepting higher expected cost. Just as in portfolio theory, there is no free lunch: faster execution eliminates timing risk but increases market impact. The trader's risk aversion determines where on this frontier they should operate.