☰ Menu

08.10.2026 · Signal Titans Editorial

Knight Capital a perdu 460 millions de dollars en 45 minutes. Un code abandonné depuis 2003 s’est réveillé.

Le parquet bondé de la Bourse de New York dans une composition éditoriale de style archive consacrée à la défaillance de trading de Knight Capital en 2012.

Le 1er août 2012 à 9 h 30, le marché boursier américain ouvrait, et l'une de ses plus grandes sociétés de trading se mettait à acheter et à vendre des actions qu'elle n'avait jamais eu l'intention de toucher. Pendant environ 45 minutes, le routeur d'ordres de Knight Capital a envoyé des millions d'ordres sur le marché. Quand tout s'est arrêté, Knight avait perdu plus de 460 millions de dollars.

Aucun pirate informatique n'était en cause. Aucun trader n'avait agi en solitaire. La cause, selon la Securities and Exchange Commission (SEC), le gendarme boursier américain, tenait à un morceau de logiciel désactivé depuis neuf ans, à un indicateur de configuration auquel on avait donné un nouveau sens, et à un serveur sur huit qui n'avait jamais reçu de mise à jour.

Une société au cœur du marché

Knight n'était pas un acteur secondaire. Selon la SEC, ses opérations représentaient généralement, en 2011 et 2012, environ dix pour cent de l'ensemble des échanges d'actions cotées aux États-Unis. L'un de ses systèmes clés était SMARS, un routeur algorithmique à haute vitesse. SMARS recevait de grands ordres « parents » provenant d'autres parties de la plateforme de Knight et les découpait en ordres « enfants » plus petits, qu'il envoyait aux plateformes de négociation.

À l'été 2012, Knight a préparé SMARS pour un nouveau programme de la Bourse de New York, le Retail Liquidity Program, dont le lancement était prévu le 1er août. Il fallait donc écrire du nouveau code et le déployer en production à une date fixe.

Vieux code, nouveau sens

La nouvelle fonctionnalité devait remplacer un morceau de code que plus personne n'utilisait. Il appartenait à une ancienne fonction appelée Power Peg, que Knight avait cessé d'utiliser en 2003. Ce code n'avait jamais été supprimé. Il était toujours présent dans SMARS et pouvait toujours être appelé.

Le nouveau code du Retail Liquidity Program réutilisait en outre un indicateur qui servait autrefois à activer Power Peg. Knight comptait supprimer l'ancien code, de sorte que placer l'indicateur sur « oui » active désormais la nouvelle fonctionnalité à la place.

Un second problème, plus ancien, se cachait en dessous. Lorsque Power Peg était en service, une fonction suivait le nombre d'actions exécutées pour chaque ordre parent et indiquait au routeur de s'arrêter une fois l'ordre complété. En 2005, Knight a déplacé cette fonction de comptage ailleurs dans le code. Power Peg n'a jamais été retesté par la suite. Si le code endormi se réveillait un jour, il ne saurait plus quand s'arrêter.

Sept serveurs sur huit

À partir du 27 juillet, Knight a déployé le nouveau code par étapes sur les huit serveurs SMARS. Sur l'un d'eux, le technicien n'a pas copié le nouveau code. Personne d'autre n'a vérifié le déploiement, et Knight n'avait aucune procédure écrite exigeant que quelqu'un le fasse. Le huitième serveur a conservé l'ancien code de Power Peg, sans la nouvelle fonctionnalité.

Le matin du 1er août, les signaux d'alerte arrivaient déjà. À partir d'environ 8 h 01, un système interne a envoyé des e-mails automatiques mentionnant SMARS et une erreur décrite comme « Power Peg disabled ». À l'ouverture de 9 h 30, 97 de ces messages avaient été adressés à un groupe d'employés de Knight. Ils n'avaient pas été conçus comme des alertes, et personne n'a réagi.

Quarante-cinq minutes

À l'ouverture du marché, des ordres portant l'indicateur réaffecté sont arrivés. Les sept serveurs mis à jour les ont traités correctement. Le huitième a exécuté Power Peg. Comme la logique de comptage des actions avait été déplacée des années plus tôt, il a continué à émettre des ordres enfants pour chaque ordre parent, sans tenir compte du nombre d'actions déjà achetées ou vendues.

Les chiffres de la SEC sont saisissants. Pour seulement 212 ordres parents reçus, SMARS a envoyé des millions d'ordres enfants, produisant plus de quatre millions d'exécutions sur 154 titres, pour un total de plus de 397 millions d'actions. Knight s'est retrouvé avec une position longue nette d'environ 3,5 milliards de dollars sur 80 titres et une position courte nette d'environ 3,15 milliards de dollars sur 74 autres. Sur des dizaines de titres, les transactions de Knight ont représenté une large part du volume et fait varier les cours de plus de cinq pour cent.

La réaction a aggravé la situation. L'outil de surveillance de Knight signalait les positions une fois les transactions déjà effectuées et reposait sur des personnes devant des écrans plutôt que sur des alarmes automatiques. Knight ne disposait d'aucune procédure de réponse aux incidents pour un cas de ce genre. Pendant que les ingénieurs cherchaient la cause en plein marché, ils ont désinstallé le nouveau code des sept serveurs sur lesquels il avait été correctement déployé. Ces serveurs se sont alors eux aussi mis à router des ordres via l'ancienne logique de Power Peg.

L'addition

La perte de Knight sur ces positions non désirées s'est élevée à environ 460 millions de dollars. En quelques jours, la société a eu besoin d'un sauvetage : un groupe d'investisseurs a apporté 400 millions de dollars en échange d'une large participation majoritaire. Plus tard dans l'année, Knight a accepté d'être racheté par la société de trading Getco, et les deux se sont réunies en 2013 sous le nom de KCG Holdings. En octobre 2013, la SEC a conclu que Knight avait enfreint la Market Access Rule, qui impose aux courtiers de disposer de contrôles empêchant les ordres erronés d'atteindre le marché. Knight a payé une amende de 12 millions de dollars.

Ce que les ingénieurs en retiennent encore

Il serait facile d'accuser le technicien qui a oublié un serveur. Les conclusions de la SEC pointent vers quelque chose de plus utile. Chaque maillon de la chaîne était un garde-fou manquant, et non une mauvaise décision isolée :

  • Du code mort resté appelable pendant neuf ans.
  • Un indicateur réutilisé avec un nouveau sens alors que l'ancien comportement existait toujours.
  • Un déploiement sans seconde vérification ni contrôle automatique de la conformité de tous les serveurs.
  • Des avertissements envoyés dans une boîte de réception plutôt qu'à une personne chargée d'arrêter le système.
  • Aucun plan établi à l'avance pour suspendre les transactions en cas de comportement anormal du système.

Rien de tout cela n'est exotique. La plupart des systèmes en production en comportent aujourd'hui au moins un. La débâcle de Knight montre à quelle vitesse ces failles s'aggravent les unes les autres lorsqu'elles se rencontrent au même moment, à la vitesse du marché.

La leçon durable est simple à énoncer et difficile à appliquer : le code que vous n'utilisez plus n'est pas inoffensif simplement parce que vous ne l'appelez plus. Supprimez-le, ou partez du principe qu'un jour, quelque chose l'appellera.

Sources