Algorithmes d'exécution

Exécution optimale d'Almgren–Chriss

structurel
Revu le 4 juin 2026. En 2026 : un trait permanent du marché, pas un avantage qui s'érode.

Le modèle canonique d'exécution optimale (2000) : liquider une position est un arbitrage entre impact de marché (trader vite) et risque de timing (trader lentement). Minimiser un coût moyenne-variance donne la trajectoire optimale ; l'aversion au risque fixe où vous vous tenez sur la frontière.

Voir en mouvement

Exécution optimale d'Almgren–Chrissfaites glisser l'aversion au risqueIX-ALMGREN
Aversion au risque λ0.50
Styleéquilibré
Coût attendu19.6
Variance de timing19.8
trajectoire optimale (positions vs temps)frontière efficiente (coût vs risque)
Aversion au risque λ0.50

À remarquer. Un trader patient (λ faible) liquide presque linéairement et paie peu d'impact mais subit la volatilité plus longtemps ; un trader averse au risque (λ élevé) concentre au départ et paie plus d'impact pour réduire le risque de timing. Chaque choix se situe sur la même frontière : pas de repas gratuit, seulement un arbitrage.

Quel problème Almgren–Chriss résout-il ?

Vous détenez XX unités et devez être à plat à l'instant TT. Vous choisissez combien trader dans chacune des NN tranches de temps. Tradez vite et votre propre vente pousse le prix à la baisse contre vous (impact) ; tradez lentement et le prix peut dériver avant que vous finissiez (volatilité, ou risque de timing). Almgren–Chriss trouve le calendrier qui arbitre ces deux coûts de façon optimale.

C'est la solution formelle du dilemme introduit dans pourquoi des algos d'exécution existent : impact contre risque de timing. Là où cette page donne l'intuition en forme de U, celle-ci donne les maths et la réponse. Le cadre est un modèle en temps discret, à impact linéaire, moyenne-variance, délibérément assez simple pour être résolu en forme close, ce qui est précisément pourquoi il est devenu la référence universelle, pédagogique et de production.

Le résultat n'est pas un calendrier mais une famille de calendriers optimaux, un par aversion au risque : la frontière efficiente. C'est l'idée la plus profonde du modèle : il n'y a pas de réponse unique, seulement un ensemble efficient. Ses hypothèses (impact linéaire, prix brownien arithmétique) sont des simplifications, que nous signalons honnêtement plus bas.

Le modèle d'impact et de risque

Le prix que vous obtenez sur chaque tranche est le prix non affecté moins deux termes d'impact : un impact permanent qui déplace le prix pour de bon et que ressent chaque tranche ultérieure, et un impact temporaire qui dépend de la vitesse à laquelle cette tranche trade et se résorbe ensuite. Le prix non affecté suit pendant ce temps une marche aléatoire de volatilité σ\sigma, la source du risque. Prenez les trois objets un à un, glosés avant toute formule.

Impact permanent γ\gamma : chaque unité que vous vendez abaisse définitivement le prix de γ\gamma par unité, une réévaluation véritable que le marché conserve. Il dépend de la taille totale, pas de la vitesse. Impact temporaire η\eta : trader une tranche de taille nn sur un court intervalle τ\tau coûte un supplément de η(n/τ)\eta\,(n/\tau) par unité. Plus vous poussez vite, plus le prix est mauvais, mais il se résorbe une fois que vous vous arrêtez. C'est le coût que vous contrôlez en ralentissant. Volatilité σ\sigma : entre les tranches, le prix non affecté évolue comme une marche aléatoire arithmétique, si bien que plus vous prenez de temps, plus il peut dériver contre votre position restante. C'est le risque (la variance) dans l'objectif.

Le prix d'exécution sur une tranche est le prix en vigueur moins l'impact temporaire (dépendant du débit) ; le prix public lui-même est poussé à la baisse de façon permanente par la taille que vous tradez.
S~k=Sk1ηnkτ,Sk=Sk1+στξkγnk\tilde{S}_k = S_{k-1} - \eta\,\frac{n_k}{\tau}, \qquad S_k = S_{k-1} + \sigma\sqrt{\tau}\,\xi_k - \gamma\,n_k

Ces η\eta, γ\gamma, σ\sigma sont les mêmes objets que les guides impact de marché. Almgren–Chriss est ce que vous faites d'un modèle d'impact calibré. Voir estimer l'impact pour obtenir η\eta et γ\gamma à partir des données.

L'objectif moyenne-variance et la frontière efficiente

Pour tout calendrier, le modèle calcule le coût espéré E[cost]E[\text{cost}] (l'impact que vous paierez) et sa variance V[cost]V[\text{cost}] (le risque de timing). Il minimise ensuite E[cost]+λV[cost]E[\text{cost}] + \lambda\,V[\text{cost}], où λ0\lambda \ge 0 est votre aversion au risque. Balayer λ\lambda de 0 à \infty trace la frontière efficiente, chaque point un calendrier optimal pour un appétit pour le risque.

Minimiser le coût d'impact espéré plus l'aversion au risque fois la variance du coût, exactement la forme moyenne-variance de la théorie du portefeuille, appliquée à un calendrier de liquidation.
min{xk}  E[cost]+λV[cost]\min_{\{x_k\}} \; E[\text{cost}] + \lambda\,V[\text{cost}]

L'intuition de λ\lambda : λ=0\lambda = 0 signifie que vous ne vous souciez que du coût espéré, vous tradez donc aussi lentement que possible pour minimiser l'impact : la limite neutre au risque, qui donne un trading uniforme (TWAP, la liquidation en ligne droite). Montez λ\lambda et vous craignez de plus en plus la variance, vous chargez le début : payer plus d'impact maintenant pour réduire votre exposition à la dérive du prix.

La frontière, glosée : tracez E[cost]E[\text{cost}] contre V[cost]\sqrt{V[\text{cost}]}. C'est une courbe convexe ; vous ne pouvez pas réduire le coût espéré sans prendre plus de risque, ni réduire le risque sans payer plus de coût espéré. Votre λ\lambda choisit le point. C'est l'image la plus importante de l'exécution. Un desk pressé (λ\lambda élevé, il ne supporte pas que la position dérive) se place en haut à gauche, tradant vite ; un patient (λ\lambda faible) se place en bas à droite, tradant lentement. Les deux ont « raison » ; le modèle refuse de prétendre le contraire.

La trajectoire en forme close : le calendrier en sinh

Le chemin optimal des positions a une forme close. Avec κ=λσ2/η\kappa = \sqrt{\lambda\sigma^2/\eta} (le taux d'« urgence » fixé par l'aversion au risque, la volatilité et l'impact temporaire), les positions restantes décroissent comme un sinus hyperbolique. Un λ\lambda plus élevé donne un κ\kappa plus grand et une décroissance plus rapide, davantage chargée au début ; quand λ0\lambda \to 0, κ0\kappa \to 0 et la courbe se redresse en la ligne TWAP.

Les positions restantes décroissent comme un sinus hyperbolique de XX au départ à 0 à l'échéance, un unique paramètre d'urgence κ\kappa contrôlant toute la courbure.
x(t)=Xsinh ⁣(κ(Tt))sinh(κT),κ=λσ2ηx(t) = X\,\frac{\sinh\!\big(\kappa(T-t)\big)}{\sinh(\kappa T)}, \qquad \kappa = \sqrt{\frac{\lambda\sigma^2}{\eta}}

Lire la formule : le rapport sinh(κ(Tt))/sinh(κT)\sinh(\kappa(T-t))/\sinh(\kappa T) vaut 1 en t=0t=0 et 0 en t=Tt=T, décroissant de façon convexe entre les deux. L'unique paramètre κ\kappa contrôle la courbure : tout le comportement du modèle se résume à ce seul nombre d'urgence. Quand κ0\kappa \to 0 le rapport devient linéaire, retrouvant le trading uniforme (neutre au risque) ; quand κ\kappa grandit, la courbe se courbe fortement vers l'origine et vous larguez la majeure partie de la position tôt. La volatilité (plus de risque à fuir) et l'aversion au risque poussent toutes deux κ\kappa à la hausse ; l'impact temporaire (plus coûteux de se précipiter) le pousse à la baisse.

Pourquoi l'impact permanent ne change pas la forme : dans le modèle de base, l'impact permanent ajoute un coût fixe de 12γX2\tfrac12\gamma X^2 à tout calendrier (il ne dépend que de la taille totale, pas du chemin), il décale donc la frontière mais ne courbe pas la trajectoire optimale. Seuls l'impact temporaire et le risque interagissent pour fixer la courbe. C'est un fait véritablement utile et non évident à retenir.

Voir la dérivation optionnel

Pour une liquidation de XX unités sur NN intervalles de longueur τ=T/N\tau = T/N, soit xkx_k les positions après l'intervalle kk (avec x0=Xx_0 = X, xN=0x_N = 0) et nk=xk1xkn_k = x_{k-1} - x_k la quantité vendue dans l'intervalle kk. Le prix non affecté porte l'impact permanent et le prix d'exécution porte l'impact temporaire :

Sk=Sk1+στξkγnk,S~k=Sk1ηnkτ,ξkN(0,1) i.i.d.S_k = S_{k-1} + \sigma\sqrt{\tau}\,\xi_k - \gamma\,n_k, \qquad \tilde{S}_k = S_{k-1} - \eta\,\frac{n_k}{\tau}, \quad \xi_k \sim \mathcal{N}(0,1)\ \text{i.i.d.}

L'implementation shortfall (coût relatif à la valeur d'arrivée S0XS_0 X) a l'espérance et la variance ci-dessous : un terme permanent indépendant du chemin plus un terme temporaire qui pénalise les tranches rapides, et une variance issue de la détention de xkx_k sur chaque intervalle à la volatilité σ\sigma.

E[cost]=12γX2+ηknk2τ,V[cost]=σ2kτxk2E[\text{cost}] = \tfrac12\gamma X^2 + \eta\sum_k \frac{n_k^2}{\tau}, \qquad V[\text{cost}] = \sigma^2\sum_k \tau\,x_k^2

Minimiser E[cost]+λV[cost]E[\text{cost}] + \lambda V[\text{cost}] sur les xkx_k (avec les contraintes aux extrémités) et annuler le gradient donne une équation aux différences linéaire d'ordre deux en xkx_k :

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

Sa solution est un sinus hyperbolique discret ; dans la limite continue, c'est x(t)=Xsinh(κ(Tt))/sinh(κT)x(t) = X\,\sinh(\kappa(T-t))/\sinh(\kappa T) avec κ=λσ2/η\kappa = \sqrt{\lambda\sigma^2/\eta}, et le débit de trading est la décroissance pondérée par cosh\cosh correspondante. La frontière est alors tracée en évaluant (E[cost],V[cost])(E[\text{cost}],\,V[\text{cost}]) le long des xk(λ)x_k(\lambda) optimaux à mesure que λ\lambda varie. (Almgren & Chriss, Optimal execution of portfolio transactions, Journal of Risk, 2000.)

Ce que le modèle suppose

Le modèle de base suppose un impact linéaire (le vrai impact est sous-linéaire, la loi en racine carrée), une marche aléatoire arithmétique (sans dérive, σ\sigma constante), des paramètres statiques, et un actif unique. Ces hypothèses le maintiennent résoluble en forme close. L'intuition de la frontière leur survit à toutes ; la trajectoire en sinh\sinh exacte, non, dès que l'impact est non linéaire ou que σ\sigma varie dans le temps.

Impact linéaire vs racine carrée. Empiriquement, l'impact croît comme size\sqrt{\text{size}} (la loi en racine carrée de Gatheral), pas linéairement. La linéarité d'Almgren–Chriss est une approximation maniable ; les extensions (Almgren 2003, Gatheral–Schied) gèrent l'impact non linéaire et perdent la forme close propre.

Pas d'alpha, pas de dérive. Le modèle suppose que le prix non affecté est une martingale sans dérive. Si vous avez un signal à court horizon, le calendrier optimal s'incline vers (ou à l'opposé de) la dérive. L'exécution avec alpha est une extension documentée, pas le cas de base.

Paramètres statiques. Les η\eta, γ\gamma, σ\sigma et le profil de volume sont pris comme fixes ; en réalité ils dépendent du régime et, en 2026, sont de plus en plus prévus par titre et par heure de la journée. C'est là qu'entre le ML, non pour remplacer la frontière, mais pour lui fournir de meilleures entrées et généraliser la politique au-delà de l'hypothèse d'impact linéaire. Voir ce que l'IA change pour le HFT.

Exemple travaillé

Chiffres synthétiques illustratifs, pas un conseil, reproductibles dans le modèle ci-dessus. Liquider X=1,000,000X = 1{,}000{,}000 actions sur T=1T = 1 jour en N=20N = 20 tranches (τ=1/20\tau = 1/20 jour). Prenez une volatilité σ=0.30\sigma = 0.30 par day\sqrt{\text{day}} (en unités de prix relatives à un prix de 50,00), avec un impact temporaire η\eta et un impact permanent γ\gamma tirés d'un modèle d'impact calibré.

Neutre au risque (λ0\lambda \to 0) : κ0\kappa \approx 0, donc le calendrier optimal est la ligne droite : vendre 50 000 à chaque tranche (TWAP). Le coût espéré est minimal (12γX2\tfrac12\gamma X^2 plus le terme temporaire étalé uniformément), mais la variance du coût est maximale : vous tenez une grosse position tard dans la journée, pleinement exposé à σ\sigma.

Choisir λ\lambda de sorte que le taux d'urgence donne une demi-vie d'environ un quart de l'horizon charge le début du calendrier : environ 130 000 actions à la tranche 1 retombant à environ 10 000 à la tranche 20.
κ=λσ2η,n1130,000    n2010,000\kappa = \sqrt{\frac{\lambda\sigma^2}{\eta}}, \qquad n_1 \approx 130{,}000 \;\longrightarrow\; n_{20} \approx 10{,}000

Ce calendrier en sinh\sinh modérément averse au risque paie plus d'impact temporaire tôt, son coût espéré augmente donc, mais son écart-type de coût chute fortement, parce que vous êtes à plat bien plus tôt et le prix ne peut pas dériver sur une grosse position restante. Lire la frontière : tracer les deux points montre le calendrier averse au risque en haut et à gauche du point TWAP, avec un coût espéré plus élevé et un risque bien moindre. Aucun ne domine ; votre λ\lambda décide. Faites glisser λ\lambda dans le widget ci-dessus et regardez le point choisi glisser le long de la frontière convexe pendant que la trajectoire passe d'une ligne à un sinh\sinh. Calibrez η\eta, γ\gamma sur vos propres exécutions ; la forme de la trajectoire est robuste, les chiffres exacts ne le sont pas.

Où cela s'inscrit

Questions fréquentes

Qu'est-ce que le modèle d'Almgren–Chriss ?
Almgren–Chriss (2000) est le cadre canonique d'exécution optimale. Il pose la liquidation d'une grosse position comme un arbitrage entre impact de marché (trader vite, pousser le prix contre soi) et risque de timing (trader lentement, s'exposer à la volatilité). Minimiser un coût moyenne-variance donne une trajectoire de trading optimale ; un paramètre d'aversion au risque fixe où vous vous tenez sur la frontière impact-vs-risque.