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 !

Un crash pétrolier a fait "buguer" les ordinateurs d'un courtier, ce qui a causé de lourdes pertes,
Le logiciel du courtier n'ayant pas pu faire face au passage à des prix en dessous de zéro

Le , par Stan Adkens

237PARTAGES

26  0 
Interactive Brokers Group Inc., l’une des plus importantes compagnies de courtage en ligne du marché américain, a fait passer à certains de ses clients une journée qu’ils n’oublieront pas si tôt le 20 avril dernier, alors que les prix du pétrole avaient plongé sous la barre de zéro pour la toute première fois, a rapporté le site Web de Bloomberg. En effet, le système en ligne du courtier ne pouvait pas afficher les prix négatifs du brut et ses clients, qui ignoraient cela, faisaient par conséquent leurs achats à l'aveuglette. Des bogues dans le logiciel, qui ont coûté plus de 100 millions de dollars à la société, sont à l’origine du problème.

En effet, le logiciel d’Interactive Brokers ne pouvait pas faire face au passage à des prix négatifs, même s'il était toujours techniquement possible – même si c'était une idée inhabituelle avant la pandémie – que le marché du brut se renverse. Ce qui faisait que ses clients naviguaient à l'aveuglette, incapables de voir que les prix étaient devenus négatifs ou, dans d'autres cas, bloqués dans leurs investissements et empêchés de négocier. L’un des clients du courtier qui a vécu l’expérience inattendue du passage du prix du brut au négatif est Syed Shah, qui achète et vend habituellement des actions et des devises par l'intermédiaire de son compte Interactive Brokers et qui n'a pas pu résister à la baisse des prix du pétrole le 20 avril.

Thomas Peterffy, fondateur d'Interactive Brokers

Le day trader de la banlieue de Toronto, n’avait jamais imaginé qu'il pouvait perdre dans ces conditions, car il n’a dépensé que 2 400 dollars pour acheter du brut à 3,30 dollars le baril, puis 50 centimes. Shah a ensuite procédé à ce qui semblait être l’affaire du siècle en achetant 212 contrats à terme sur le West Texas Intermediate pour un prix étonnant. Cependant, il s’est trouvé que, alors que le brut était en fait autour de 3,70 dollars le baril, l'écran de Shah le lui présentait à 1 centime. Et Interactive Brokers ne lui a jamais affiché un prix inférieur à zéro alors que le pétrole n'a cessé de plonger ce jour-là pour finir la journée à -37,63 dollars le baril.

Bloomberg a rapporté qu’à minuit, Shah a reçu la nouvelle de sa facture salée d’un montant de 9 millions de dollars qu’il devait à Interactive Brokers. Il avait commencé la journée avec 77 000 dollars sur son compte. « J'étais en état de choc », a déclaré le day trader lors d'une interview téléphonique accordée à Bloomberg. « J'avais l'impression que tout allait m'être retiré, tous mes biens », a-t-il ajouté.


Selon Bloomberg, le problème s’est aggravé par le fait que les chiffres négatifs ont également fait exploser le modèle utilisé par Interactive Brokers pour le calcul du montant de la marge – ou de la garantie – dont les clients avaient besoin pour sécuriser leurs comptes. Ce qui explique en grande partie pourquoi Shah a perdu un montant incroyable en quelques heures.

En ce qui concerne les contrats à terme, le day trader de Mississauga, au Canada, a acheté les cinq premiers à 3,30 dollars chacun à 13h19. Au cours des 40 minutes suivantes, il en a acheté 21 autres avec le dernier pour 50 cents. Selon Bloomberg, Shah a essayé de passer un ordre à un prix négatif, mais la plateforme d’Interactive Brokers l'a rejeté, ce qui l'a convaincu qu'il n'était pas possible que le pétrole descende au-dessous de zéro. À 14h11, il a placé cette transaction de rêve devenu cauchemar à un centime.

Mais plus tard dans la nuit, il a vu aux nouvelles que le pétrole avait plongé au prix jamais vu de -37,63 dollars le baril. Bloomberg a rapporté qu’il a essayé frénétiquement de contacter le service support de la firme, mais personne ne pouvait l'aider. C’est suite à cela que Shah a pris connaissance de l’importante perte qu’il a subie au cours de la journée pendant qu’il se fiait à des indications erronées de son écran.

Thomas Peterffy, le président et fondateur d'Interactive Brokers, a expliqué deux jours après dans une interview que la descente en zone négative du prix du brut a dévoilé des bogues dans le logiciel de sa société. « C'est une erreur de 113 millions de dollars de notre part », a déclaré le milliardaire de 75 ans dans une interview mercredi 22 avril. Jusqu’à la semaine dernière, sa société a révisé son estimation des pertes maximales à 109,3 millions de dollars. Au lendemain de la journée de passage au négatif des prix, Interactive Brokers avait estimé d’abord qu'il avait perdu 88 millions de dollars suite à l'incident.

Les clients seront sauvés, a déclaré M. Peterffy. « Nous rembourserons sur nos fonds propres nos clients, qui étaient bloqués avec une position longue pendant que le prix était négatif, toute perte subie au-dessous de zéro », a-t-il indiqué.

Un autre client a vu son écran de négociation se figer et le flux des prix devenu noir

Les bogues d’Interactive Brokers n’ont pas pénalisé seulement que ses clients de l'Amérique du Nord. Manfred Koller, un autre client de la société de courtage en ligne qui vit près de Francfort en Allemagne, a connu des problèmes similaires à ceux auxquels Shah a dû faire face. Koller, qui négocie depuis son ordinateur personnel au nom de deux amis, n'a pas non plus vu les pris négatifs du brut s’afficher sur son écran à cause des pannes du logiciel.

Selon Bloomberg, Koller avait acheté ce jour-là des contrats pour ses amis sur Interactive Brokers à 11 dollars, puis entre 4 et 5 dollars. Mais juste après 14 heures (heure de New York), son écran de négociation s'est figé. « Le flux des prix est devenu noir, il n'y avait plus d'offres ou de demandes », a-t-il déclaré dans une interview, selon Bloomberg. Pourtant, pour autant qu'il le sache à ce moment-là, d'après son compte Interactive Brokers, il n'avait pas à s'inquiéter de la fermeture de la bourse pour la journée.

Une capture d'écran du message qu'un client d'Interactive Brokers a reçu lorsqu'il a essayé de négocier du pétrole après que celui-ci soit devenu négatif.


Mais sa surprise fut grande lorsqu’Interactive Brokers lui a envoyé un avis lui indiquant qu'il devait 110 000 dollars, selon Bloomberg. « Ce n'est certainement pas ce que vous voulez faire, perdre tout votre argent en 20 minutes », a déclaré Koller.

Un autre bogue du logiciel d’Interactive Brokers concernait le montant d'argent, connu sous le nom de marge, que la société exigeait de ses clients pour effectuer des transactions. Il s'agit d'une mesure de risque essentielle pour s'assurer que les traders ne perdent pas plus que ce qu'ils peuvent se permettre. Pour les 212 contrats pétroliers que Shah a achetés pour 1 cent chacun, le courtier n'exigeait que son compte dispose de 30 dollars de marge par contrat.

C'est comme si Interactive Brokers pensait que la perte potentielle d'un achat à 1 centime était de 1 centime, plutôt que la baisse presque illimitée qu'impliquent des prix négatifs, a dit. « Il semble qu'ils ne savaient pas que cela pouvait arriver », a-t-il ajouté. Mais, selon Bloomberg, tout le secteur savait que les contrats pétroliers de référence de CME Group Inc. pouvaient devenir négatifs.

Par ailleurs, cinq jours avant le chaos, le propriétaire du New York Mercantile Exchange, où la négociation a eu lieu, a envoyé un avis à toutes ses sociétés membres les informant qu'elles pouvaient tester leurs systèmes en utilisant des prix négatifs. « Les entreprises qui souhaitent tester ces prix négatifs dans leurs systèmes peuvent utiliser les environnements de test "New Release" du CME » pour le pétrole brut, avait déclaré la bourse.

« Cinq jours, y compris le week-end, avec le coronavirus en cours et un système complexe où nous devons faire de nombreux changements, n'était pas un délai suffisant », a dit M. Peterffy. « L'idée que nous pouvons avoir des bugs n'est pas, dans mon esprit, une surprise ». Il a également reconnu l'erreur dans le modèle de marge utilisé par Interactive Brokers ce jour-là.

Approximativement, selon Bloomberg, des opérations similaires à celles que Shah a placées auraient nécessité 6 930 dollars de marge par opération s'il les avait placées à Intercontinental Exchange. C'est 231 fois les 30 dollars demandés par Interactive Brokers. « J'ai réalisé après coup que la marge pour ces contrats est très élevée et que ces transactions n'auraient jamais dû être traitées », a dit M. Peterffy. Interactive Brokers a pris a responsabilité de rembourser ses clients qui ont été victimes des problèmes liés à sa plateforme Web de négociation.

Source : Bloomberg

Et vous ?

Qu’en pensez-vous ?
« L'idée que nous puissions avoir des bugs n'est pas, dans mon esprit, une surprise », selon le président et fondateur d'Interactive Brokers. Quel commentaire en faites-vous ?
Que pensez-vous du fait que le système ait crashé face aux prix négatifs ?

Lire aussi

Des officiels indiquent qu'un bogue informatique a favorisé l'extension rapide de l'incendie, qui a ravagé la cathédrale Notre-Dame de Paris
Un bogue dans un code Python pourrait avoir causé des erreurs de calcul dans plus d'une centaine d'études scientifiques publiées depuis 2014
Pôle Emploi accusé de bogues informatiques récurrents ayant créé un gros trou dans ses caisses, l'agence se défend et parle de « mécanismes connus »

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

Avatar de sokal
Membre à l'essai https://www.developpez.com
Le 11/05/2020 à 15:54
Je savais bien qu'il me manquait un Unit test
17  0 
Avatar de sevyc64
Modérateur https://www.developpez.com
Le 11/05/2020 à 18:14
Donc en gros :
- on savait que ça pouvait arriver
- on savait que la probabilité que ça arrive était très loin d'être négligeable
- on savait que si ça arrivait, ça se passerait très mal, et les conséquences seraient lourdes.
- mais, naïvement, on pensait pas pas que ça arriverait réellement
- donc on a rien fait, rien préparer, au cas ou ça arriverait

Parce que c'est vrai, quoi, ce genre de chose n'arrive jamais dans le monde de Bisounours ou l'on vit.

Bon après 113 millions d'euros, pour un multimilliardaire, c'est sur, il peut les sortir de sa poche pour rembourser, il va même pas voir la différence.
9  1 
Avatar de sevyc64
Modérateur https://www.developpez.com
Le 11/05/2020 à 21:18
Citation Envoyé par Pyramidev Voir le message
le développeur a explicitement pensé au cas du prix négatif,
heu, oui, mais non !

Le message tel que je le comprends moi et si on fait abstraction du contexte, c'est que le développeur a prévu le cas ou le prix serait à 0, sachant qu'il fallait qu'il soit au minimum de 0.01. Çà peut traduire au contraire qu'il n'a pas imaginé qu'il soit négatif, au quel cas le message serait libellé certainement différemment.

Mais outre le fait que le développeur n'a pas pensé à un prix négatif à cet endroit là, on voit aussi que ça n'a pas du tout été pensé, car, par un quelconque miracle, un prix négatif s'est transformé à un prix à 0.

Et 0, comme tout développeur sait, est une valeur traitre car ne représente pas forcément 0, elle peut représenter surtout une variable vierge, pas initialisée, etc ... Et cela peut induire en erreur sur le diagnostic.
Et cela est aussi le cas pour un utilisateur qui n'y connais rien en développement. Une valeur à 0 peut être, pour lui, une valeur mal renseignée.
Alors qu'une valeur négative l'alertera sans doute sur un problème sur le marché qu'il suit, un 0 pas forcément, et pourra être interprété comme un bug interne, un bug d'affichage.

Ceci dit, hors contexte de ce logiciel et de ce marché en particulier, qui pourrait imaginer que le cours du pétrole puisse, un jour, être négatif ?
6  0 
Avatar de Zefling
Expert confirmé https://www.developpez.com
Le 11/05/2020 à 18:21
Citation Envoyé par sevyc64 Voir le message
Donc en gros :
- on savait que ça pouvait arriver
- on savait que la probabilité que ça arrive était très loin d'être négligeable
- on savait que si ça arrivait, ça se passerait très mal, et les conséquences seraient lourdes.
- mais, naïvement, on pensait pas pas que ça arriverait réellement
- donc on a rien fait, rien préparer, au cas ou ça arriverait

Parce que c'est vrai, quoi, ce genre de chose n'arrive jamais dans le monde de Bisounours ou l'on vit.
Ça fait un peu, on a n'a pas voulu mettre les moyens dans les tests et la sécurités et on s'étonne que ça plante dans les cas limites.
De toute façon, ce genre de trucs c'est assez fréquent, on envoie des trucs en prod et on prie pour que ça passe, parce qu'on plus le temps pour faire une vraie politique de test et débug : on hotfixera les cas les plus graves.
3  0 
Avatar de Pyramidev
Expert confirmé https://www.developpez.com
Le 11/05/2020 à 20:42
Concernant la fenêtre avec le message d'erreur « The price 0.00 does not conform to the minimum price validation of 0.01 for this contract. », le développeur a explicitement pensé au cas du prix négatif, a vraisemblablement cru que c'était interdit et a construit le message d'erreur correspondant. Du coup, ça ressemble plutôt à un problème de spécification.

Le cas plus embêtant côté développeur, c'est celui où un prix négatif n'a été ni prévu ni testé et où le programme se comporte de manière imprévisible.
2  0 
Avatar de Pyramidev
Expert confirmé https://www.developpez.com
Le 11/05/2020 à 23:20
J'ai parlé trop vite.

J'avais pensé à un programme sur lequel je travaille (rq : ce n'est pas le milieu bancaire) où une certaine valeur entière en entrée devait être au moins 1. Dans le cas où la valeur entière en entrée était incorrecte, pour le message d'erreur, je ne m'étais pas embêté à distinguer le cas 0 et le cas strictement négatif.

Dans l'exemple avec le message d'erreur « The price 0.00 does not conform to the minimum price validation of 0.01 for this contract. », peut-être que le développeur avait pensé aussi aux valeurs négatives, ou bien peut-être que, comme tu dis, il n'avait pensé qu'à 0.

Dans la partie du programme où une valeur négative devient magiquement 0, on est d'accord que c'est vraisemblablement un cas imprévu. Mais on ne sait pas si c'est le même développeur. Sur un même programme, plein de développeurs passent dessus.
2  0 
Avatar de
https://www.developpez.com
Le 14/05/2020 à 0:31
C'est plus un "krach pétrolier" qu'un "crash pétrolier". On est loin de l'Amoco Cadiz
2  0 
Avatar de
https://www.developpez.com
Le 11/05/2020 à 17:49
Citation Envoyé par sokal Voir le message
Je savais bien qu'il me manquait un Unit test
Juste un seul ?
1  0 
Avatar de Ryu2000
Membre extrêmement actif https://www.developpez.com
Le 12/05/2020 à 7:31
Citation Envoyé par sevyc64 Voir le message
Parce que c'est vrai, quoi, ce genre de chose n'arrive jamais dans le monde de Bisounours ou l'on vit.
Les gars ont trop confiance ils ne s'imaginent pas qu'un crash peut avoir lieu. Ils pensent que tout ira bien et qu'un prix ne peut pas être négatif.
Tous ceux qui bossent dans le milieu devraient retenir la leçon et prendre en compte le scénario dans lequel le prix devient négatif.

Mais au final ce n'est pas trop grave, là avec le tradding haute fréquence des catastrophes auraient pu avoir lieu, mais ça n'a pas été le cas.
Bon après la FED a injecté des centaines de milliards pour maintenir artificiellement les marchés en vie.
1  0 
Avatar de sevyc64
Modérateur https://www.developpez.com
Le 15/05/2020 à 13:45
ouais, encore que, il y aurait matière à philosopher sur ce point. Dans beaucoup de domaines, les gens sont pire que les robots.

Et ne pas oublier que ceux sont des vrai gens avec un cerveau qui conçoivent, fabriquent, et programment les robots. Et donc ceux sont eux qui disent quoi (mal) faire.
1  0