IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Knights Capital a été victime du bogue logiciel le plus coûteux de l'histoire de l'humanité : 49 millions de dollars par seconde
8,6 milliards de dollars en 28 minutes

Le , par Stéphane le calme

131PARTAGES

13  0 
Le 1er août 2012, Knight Capital Group, une entreprise de trading haute fréquence, a connu un désastre financier sans précédent aux premières heures de l'ouverture de la bourse. Quelque chose a très mal tourné dans le code qui avait été introduit pendant la nuit. Il s'agissait d'un algorithme de négociation à haute fréquence conçu pour acheter et vendre des quantités massives d'actions dans un court laps de temps. La combinaison d'un mauvais timing et de mauvais ordres a conduit à des résultats désastreux.

Knight Capital Group est une société américaine de services financiers d'envergure mondiale qui exerce des activités de tenue de marché, d'exécution électronique, de vente et de négociation institutionnelles. En 2012, Knight était le plus grand négociateur d'actions américaines, avec une part de marché d'environ 17 % sur le New York Stock Exchange (NYSE) ainsi que sur le Nasdaq Stock Market.

Il a fallu 17 ans de travail acharné pour faire de Knight Capital Group l'une des principales maisons de courtage de Wall Street. Et tout a failli s'arrêter en moins d'une heure. Ce qui est arrivé à Knight le matin du 1er août 2012 est le cauchemar de tout chef d'entreprise : une simple erreur humaine, facilement repérable a posteriori mais presque impossible à prévoir, a menacé de mettre fin à l'entreprise.

Chez Knight, un nouveau logiciel de négociation contenait une faille qui n'est devenue apparente qu'après l'activation du logiciel à l'ouverture de la Bourse de New York (NYSE) ce jour-là. Le logiciel erroné a entraîné Knight dans une frénésie d'achat, s'emparant de 150 actions différentes pour un coût total de plusieurs milliards de dollars, le tout au cours de la première heure d'ouverture de la bourse.

Selon les règles de la bourse, Knight aurait dû payer ces actions trois jours plus tard. Cependant, il n'y avait aucun moyen de payer, étant donné que les transactions n'étaient pas intentionnelles et qu'elles n'avaient aucune source de financement. Les seules alternatives étaient d'essayer de faire annuler les transactions ou de vendre les actions nouvellement acquises le même jour.

Knight a tenté de faire annuler les transactions. La présidente de la Securities and Exchange Commission (SEC), Mary Schapiro, a refusé de le faire pour la plupart des actions en question, et cette décision semble avoir été la bonne. Des règles ont été établies après le "flash crash" de mai 2010 pour déterminer quand les transactions doivent être annulées. La frénésie d'achat de Knight n'a pas fait grimper le prix des actions achetées de plus de 30 %, le seuil d'annulation, sauf pour six actions. Ces transactions ont été annulées. Dans les autres cas, les transactions ont été maintenues


Des délais serrés pour les développeurs

Les développeurs ont été chargés de porter leur robot HFT (High-frequency, en français, transactions à haute fréquence) sur un service API NYSE à venir, dont la mise en service a été annoncée moins de 33 jours plus tard. Ils ont donc entamé un sprint de 80 heures par semaine. Le robot HFT était écrit en C++. Pour ne pas avoir à recompiler une seule fois, l'architecte en chef a décidé de conserver exactement la même classe et la même signature de méthode pour leur méthode PowerPeg::trade(), qui était leur robot de test automatisé qu'ils utilisaient depuis 2003. Cela signifiait également qu'ils n'avaient pas à mettre à jour le WSDL (Web Services Description Language, un langage de description fondé sur XML) pour les clients qui utilisaient le robot.

Ils ont supprimé l'ancien code mort et mis en place le nouveau code. Un code qui faisait appel à une logique réelle, au lieu du code de test, qui était conçu, par défaut, pour acheter l'offre la plus élevée qui lui était faite.

Ils l'ont testé, ils ont écrit des tests unitaires, tout semblait bon. Ils ont donc décidé de le déployer à 8 heures EST, 90 minutes avant l'ouverture du marché. Les testeurs d'assurance qualité l'ont testé en production et ont donné le feu vert. Tout le monde était très heureux. Ils avaient réussi. Ils avaient respecté le délai serré et déployé l'application avec seulement 90 minutes d'avance...

Ils se sont immédiatement rendus à une réunion de sprint standup puis à une réunion de sprint retro. Conformément à la politique de leur bureau, ils ont laissé leurs téléphones (en sourdine) à leur bureau.


« Tuez les serveurs !!! »

Pendant la rétro, les marchés ont ouvert à 9:30 EDT, et le nouveau bot a simplement commencé à acheter l'offre la plus élevée pour tous les titres de sa liste d'achat. Les marchés n'ont pas réagi de manière très...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de totozor
Expert confirmé https://www.developpez.com
Le 08/08/2024 à 7:32
Citation Envoyé par Stéphane le calme Voir le message
Quelles leçons les autres entreprises peuvent-elles tirer de cet événement ? Pensez à la manière dont votre propre entreprise gère les risques liés aux bogues logiciels et à la qualité du code.
Pour moi la première leçon est simple : ne prenez pas trop la confiance et prenez les mesures nécessaires pour une montée en prod sereine.
Petit exemple chez nous : la mise en prod n'est lancée qu'en cas de validation de l'infrastructure, de l'équipe de développement et du métier et chacun doit avoir fait les tests qui vont bien.
La mise en prod est faite le samedi (quand l'activité de l'entreprise est au plus bas), un planning est prévu bien à l'avance et nous sommes informés en direct de son avancée. Les deux dernières étapes de la mise en prod sont moi qui fait des tests en prod des fonctions les plus critiques puis de la suppression de tout ce que j'ai fait. Si samedi 18h je n'ai pas fini mes tests avec succès on rétabli le système pré montée en PROD.

Ce n'est pas une partie de plaisir pour nous (ce qui nous pousse notamment à bien faire nos tests avant), on aimerait tous éviter ça mais il s'avère qu'il arrive de temps en temps qu'on corrige des effets collatéraux imprévus dans le temps imparti.
Citation Envoyé par Stéphane le calme Voir le message
Comment les régulateurs devraient-ils intervenir dans de tels cas ? Discutez des rôles et responsabilités des organismes de régulation dans la prévention de tels incidents.
Je ne suis pas trader mais on m'explique toujours que le travail et le gain de ces gens est légitime parce que gros risques grosses récompenses.
Mais comment peut on vendre cette logique si on couvre tous les risques par un régulateur, par un petit texte en fin de page etc.
Si le gros risque n'en est plus un pourquoi ont ils toujours droit à la grosse récompense?
Je suis désolé mais pourquoi les traders changeraient de méthodes si on les couvre quand ils font des conneries?
1  0 
Avatar de Armitage1982
Membre régulier https://www.developpez.com
Le 07/08/2024 à 23:00
Ils se sont immédiatement rendus à une réunion de sprint standup puis à une réunion de sprint retro. Conformément à la politique de leur bureau, ils ont laissé leurs téléphones (en sourdine) à leur bureau.
Moralité, trop de réunions tue... carrément l'entreprise !

Note : toujours laisser quelqu'un surveiller le bon déroulé d'un déploiement en production.
0  0 
Avatar de eddy72
Membre régulier https://www.developpez.com
Le 08/08/2024 à 10:36
fait moi confiance ...
mais siiii ...
t'inquiète pas ...
0  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 08/08/2024 à 18:25
Je n'ai pas tout lu, mais ils disent que l'achat a fait monté le prix des actions donc achetées 100 elles valent disons 120 rapidement. Sauf erreur il suffit de revendre et le tour est joué on gagne de l'argent ?
0  0 
Avatar de AaâÂäÄàAaâÂäÄàAaâÂäÄ
Membre expérimenté https://www.developpez.com
Le 08/08/2024 à 19:50
49 Mns $ / seconde, 8,6 Mds $ en 28 minutes
de nouvelles unités bien tarabiscotées alors que Giga (G$) et Méga (M$) pleurent dans leur coin.

https://www.btb.termiumplus.gc.ca/tp...I6-pQZOTM.html

Le bogue logiciel le plus coûteux de l'histoire de l'humanité.
Vu comme ça c'est effectivement vrai. Mais n'oublions pas que l'avènement de l'informatique est une minuscule période en comparaison de l'histoire de l'humanité, ça relativise un peu...
0  0 
Avatar de Linkin
Membre chevronné https://www.developpez.com
Le 09/08/2024 à 13:18
Citation Envoyé par archqt Voir le message
Je n'ai pas tout lu, mais ils disent que l'achat a fait monté le prix des actions donc achetées 100 elles valent disons 120 rapidement. Sauf erreur il suffit de revendre et le tour est joué on gagne de l'argent ?
Si je ne me trompe pas, il fallait payer les actions avant de pouvoir les revendre, et ils n'avaient pas les liquidités pour le faire.
0  0 
Avatar de Stellar7
Membre éclairé https://www.developpez.com
Le 09/08/2024 à 15:24
@Linkin : il y a une particularité aux jeux de trading là-bas. Tu peux acheter et avoir 3 jours pour payer. Entre-temps, tu peux revendre et soit demander d'être payé sur le champ, soit signaler que toi tu paieras dans les 3 jours qui suivent ta revente.

Il y en a beaucoup qui jouent à ça, et ça fait des couacs de temps en temps, d'après la presse.
0  0