Skip to content

    Under active development. New calculators and features ship every week. Everything currently runs free while the site matures — pricing pages are a preview, checkout is not open yet.

    Finance / Optimal Execution Almgren-Chriss Protocol

    Almgren-Chriss Optimal Execution Calculator

    Compute the optimal trade schedule for a large order with the Almgren-Chriss model: hyperbolic trajectory, trading half-life, expected cost, and the risk frontier.

    ToolCalculatorExecutionIn browserCategoryFinancial
    ZORVLABS · OPTIMAL EXECUTION

    Optimal Execution Almgren Chriss Protocol

    Almgren-Chriss linear-impact liquidation with an exact hyperbolic trajectory, efficient frontier, and 2D / 3D views.
    Numerical Integrity
    analytic frontier
    Closed-form path + frontier grid.
    Expected cost
    1.447e+7
    Implementation shortfall proxy
    Variance
    1.736e+9
    sigma^2 integral x(t)^2 dt
    Utility
    1.447e+7
    E + lambda V
    Half-life
    4.381780
    rho = 1 / kappa
    Terminal inventory
    0.0000
    x(T) = 0 exact
    Frontier cost
    1.445e+7
    lambda-selected point
    Frontier variance
    1.736e+9
    lambda-selected point
    Front-load ratio
    3.1430
    early / late inventory
    View mode
    3D surface
    Side
    Initial shares X
    Horizon T (years)
    Intervals N
    Annual volatility sigma
    Risk aversion lambda
    Temporary impact eta
    Permanent impact gamma
    Spread epsilon
    Drift alpha
    Selected lambda marker
    Lambda min
    Lambda max
    Surface lambda resolution
    Surface t resolution
    Optimal kappa
    0.228218
    sqrt(lambda sigma^2 / eta)
    Half-life rho
    4.381780
    1 / kappa
    Terminal inventory
    0.0000
    x(T) = 0 exact
    Avg rate
    1.200e+7
    shares / year
    Trajectory: x(t) = X sinh(kappa (T - t)) / sinh(kappa T)
    Objective: min E(x) + lambda V(x)
    2D liquidation trajectory
    Exact hyperbolic holdings path
    Remaining shares x(t)tx(t)0.000.020.030.050.070.080.00200000.00400000.00600000.00800000.001.000e+6Holdings
    2D trade rate
    Discrete execution rate implied by the optimal path
    Execution rate v(t)tv(t)0.000.020.030.050.070.080.002.400e+64.801e+67.201e+69.601e+61.200e+7Rate
    2D frontier
    Expected cost vs variance across lambda
    Efficient frontierVarianceExpected cost1.657e+91.672e+91.688e+91.704e+91.720e+91.736e+91.445e+71.446e+71.447e+71.448e+71.448e+71.449e+7Frontier
    2D diagnostics
    Cumulative cost and risk accumulation
    Cumulative diagnosticstCumulative0.000.020.030.050.070.080.001.250e+102.500e+103.750e+105.000e+106.250e+10CostRisk proxy
    3D exact surface
    Holdings surface x(t, lambda)
    Optimal holdings surfacetlambdaxsurface grid56 x 64 cells · max x = 1.000e+6
    Source equations
    Almgren-Chriss linear-impact optimal execution
    Permanent impact: g(v) = gamma v
    Temporary impact: h(v) = epsilon sgn(v) + eta v
    Objective: min E(x) + lambda V(x)
    Optimal trajectory: x(t)=X sinh(kappa(T-t))/sinh(kappa T) with kappa ~ sqrt(lambda sigma^2 / eta) and half-life rho = 1/kappa.
    finance methodology

    A clear path from inputs to results.

    Compute the optimal schedule for liquidating (or accumulating) a large position using the Almgren-Chriss model, which trades off market-impact cost against timing risk. It returns the exact hyperbolic trading trajectory, the trading-urgency parameter kappa and its half-life, the expected implementation shortfall, and the variance of that cost, for execution traders, quants, and finance students.

    Step-by-step methodWorked exampleAssumptions explained

    How to use

    1. Enter the number of shares X to execute and the horizon T (in years) over which you want to complete the program.
    2. Set the number of intervals N that discretize the schedule.
    3. Enter the annualized volatility sigma of the stock, which drives the timing risk.
    4. Set the risk-aversion lambda: higher lambda means you fear price risk more and trade faster; lambda near zero gives near-linear (TWAP-like) execution.
    5. Enter the temporary-impact coefficient eta, the permanent-impact coefficient gamma, the half-spread epsilon, and any price drift alpha.
    6. Read the optimal trajectory x(t), the urgency kappa = sqrt(lambda*sigma^2/eta) and its half-life, the expected cost, and the cost variance; sweep lambda to trace the efficient frontier of cost versus variance.

    The formula

    x(t)=X sinh⁡ ⁣(κ(T−t))sinh⁡(κT),κ=λ σ2η,min⁡x  E(x)+λ V(x)x(t) = X\,\frac{\sinh\!\big(\kappa (T - t)\big)}{\sinh(\kappa T)}, \quad \kappa = \sqrt{\frac{\lambda\,\sigma^{2}}{\eta}}, \quad \min_{x}\; E(x) + \lambda\,V(x)

    Reference: Almgren, R. & Chriss, N. (2000/2001), "Optimal Execution of Portfolio Transactions," Journal of Risk 3(2), 5-39; the continuous-time hyperbolic-sine liquidation trajectory with linear temporary and permanent impact.

    Worked example

    Liquidating one million shares over a trading month

    Inputs
    • X = 1,000,000 shares; horizon T = 1/12 year (about one month); N = 60 intervals; volatility sigma = 30%; risk aversion lambda = 1e-5; temporary impact eta = 1e-8; permanent impact gamma = 0; half-spread epsilon = 0.01; drift alpha = 0.
    Calculation path
    1. 1

      The urgency parameter is kappa = sqrt(lambda*sigma^2/eta) = sqrt(1e-5 * 0.30^2 / 1e-8) = 9.486833 per year, so the half-life is 1/kappa = 0.105409 year, about 1.265 months - longer than the horizon, meaning the schedule is only mildly front-loaded. The optimal path x(t) = X * sinh(kappa(T-t))/sinh(kappa*T) leaves 71.76%, 46.33%, and 22.72% of the position outstanding at one quarter, one half, and three quarters of the horizon (versus 75%, 50%, 25% for a straight-line TWAP), confirming modest front-loading. The expected cost is the spread term epsilon*X = 10,000 plus the accumulated temporary-impact term of 120,928.03, totaling 130,928.03, i.e. about 0.1309 per share. The cost variance from price risk is 2.3086e9, a standard deviation of roughly 48,048. The schedule ends with x(T) = 0 exactly.

    Result

    kappa = 9.4868 per year, half-life 1.265 months, expected cost 130,928.03 (about 0.131 per share, of which 10,000 is spread and 120,928 is temporary impact), cost standard deviation about 48,048, and a trajectory that front-loads only slightly relative to TWAP given the long half-life.

    Interpreting the result

    The key output is kappa and its half-life: they summarize how aggressively you should trade. A short half-life relative to T means heavy front-loading - you pay more impact to cut risk; a long half-life (as here) means a nearly linear schedule because the position is not risky enough, or you are not risk-averse enough, to justify rushing. Raising lambda or volatility sigma, or lowering the impact coefficient eta, all increase kappa and pull trading earlier. The expected cost and its variance are the two axes of the Almgren-Chriss efficient frontier: every choice of lambda is a point on that curve, and there is no single right answer - only the trade-off between paying impact now and bearing price risk later.

    Assumptions & limitations

    • Price impact is linear: temporary impact is proportional to the trade rate (coefficient eta) and permanent impact proportional to volume (coefficient gamma), plus a fixed half-spread epsilon.
    • The mid-price follows arithmetic Brownian motion with constant volatility sigma and optional constant drift; there is no mean reversion or intraday seasonality.
    • Parameters are constant over the horizon and known in advance; the schedule is static (set once), not re-optimized as the market moves.
    • The trajectory is the continuous-time hyperbolic-sine solution; the reported cost and variance come from the component's discrete N-interval integration, so very small N introduces minor discretization error.
    • Impact coefficients must be calibrated to the specific stock and venue; the illustrative values here are chosen for clarity, not fitted to any particular security, and real costs depend heavily on that calibration.

    Frequently asked questions

    What problem does the Almgren-Chriss model solve?

    It answers how fast to trade a large order. Trade too quickly and you move the price against yourself (market impact); trade too slowly and you are exposed to random price moves (timing risk). Almgren-Chriss finds the schedule that minimizes expected cost plus a risk penalty, producing a smooth trajectory between the extremes of immediate execution and slow TWAP.

    How does risk aversion lambda change the schedule?

    Lambda is the weight on cost variance in the objective E + lambda*V. A larger lambda means you dislike price risk more, so kappa rises and you trade earlier to reduce exposure, accepting higher impact cost. As lambda approaches zero the schedule approaches a straight line (minimum-impact TWAP). Sweeping lambda traces the entire efficient frontier.

    Why is the trajectory a hyperbolic sine curve?

    Minimizing a quadratic cost-plus-risk objective with linear impact leads to a linear second-order condition whose solution is sinh(kappa(T-t))/sinh(kappa*T). This curve equals X at t=0, decays to exactly 0 at t=T, and is convex, so inventory is reduced faster early and tapers near the end. When lambda is tiny, kappa approaches 0 and the curve flattens to the straight TWAP line.

    What is kappa and the trading half-life?

    kappa = sqrt(lambda*sigma^2/eta) is the urgency parameter, with units of inverse time. Its reciprocal 1/kappa is the trading half-life - the characteristic time over which the position is wound down. A short half-life relative to the horizon means aggressive front-loading; a long half-life means a near-linear schedule. In the worked example the half-life is about 1.265 months, slightly longer than the one-month horizon.

    What is the efficient frontier here?

    It is the set of achievable (variance, expected cost) pairs as lambda varies. Each lambda gives one optimal schedule, one expected cost, and one cost variance. The frontier is downward-sloping: you can only lower expected cost by accepting more variance, and vice versa. Choosing a point on it is a risk-preference decision, not a purely mathematical one.

    Can I use this to buy as well as sell?

    Yes. The model is symmetric: for a buy program the same trajectory describes how the to-be-acquired quantity is scheduled over time, with impact pushing the price up instead of down. The cost and risk trade-off is identical in structure; only the sign of the impact and any drift term flips.

    Methodology last reviewed 2026-10-06. Results are informational and not financial or engineering advice — see our disclaimer.