SpreadAtlas

Un seul bug a causé 86 % de nos pertes de trading

Publié le 13 octobre 2026

Notre premier bot de trading automatique a perdu 5,1 millions de ₩ en simulation (paper trading) sur 190 sorties. Quand nous avons réparti les pertes selon le motif de chaque sortie, un seul chemin de code en représentait 86,5 %. Puis ce même bug nous a trompés une seconde fois.

Comment ceci a été réalisé : le code, les séries d'analyses et les premières versions de ce texte ont été produits par un assistant IA travaillant sous la direction de l'opérateur ; l'opérateur a pris toutes les décisions et vérifié les chiffres. Tout le trading était fictif (paper trading) : prix réels, aucun argent réel. Rien ici ne constitue un conseil en investissement.

Pertes par motif de sortie

Motif de sortieSortiesRésultat, KRWMoyenneTaux de réussiteDurée de détention médiane
Sortie sur alarme non confirmée157−4 416 442−0,37 %10,2 %12 s
Durée de détention écoulée18−244 623−0,26 %38,9 %2 h
Sortie sur alarme confirmée6−684 389−2,10 %0 %14 min
Stop suiveur5+613 519+2,33 %100 %18 min
Stop-loss2−386 990−3,69 %0 %23 min
Autres2+13 194———
Registre de simulation de notre premier bot de trading, 190 sorties jusqu'au 14 septembre 2026. Total : −5 105 732 ₩.

157 des 190 sorties provenaient d'une seule règle : une alarme qui vendait immédiatement, sans confirmation, sans durée de détention minimale et sans vérifier que le prix avait réellement bougé. Ces sorties avaient une durée de détention médiane de 12 secondes. Leur coût d'aller-retour médian, mesuré dans le même registre, était de 0,43 %, si bien qu'elles perdaient de l'argent même lorsque le prix ne bougeait pas : 97 d'entre elles, soit 62 %, se sont terminées avec un prix à moins de 0,35 % de l'entrée et ont tout de même perdu.

Les sorties intervenues dans les 30 secondes suivant l'entrée, soit 114 trades, ont à elles seules représenté 63 % de l'ensemble des pertes.

Ce que faisait le code

Dans le même fichier, deux autres alarmes exigeaient déjà une étape de confirmation avant de vendre. Celle-ci avait été oubliée. Un module jumeau avait été corrigé pour le même problème plusieurs semaines plus tôt ; celui-ci ne l'avait pas été. Nous l'avons modifié pour qu'une alarme non confirmée ne puisse vendre qu'après une durée de détention minimale de 20 secondes, une perte réelle supérieure au coût d'aller-retour et six secondes de confirmation, tandis que les sorties de sécurité strictes, le stop-loss et la sortie sur krach, se déclenchaient toujours immédiatement.

Lors du rejeu du registre, la nouvelle règle aurait bloqué 143 des 157 sorties sur alarme. Nous ne l'avons pas présenté comme un gain. Bloquer une sortie signifie seulement ne pas payer l'aller-retour à ce moment-là ; ce que le prix a fait ensuite, si nous avions conservé la position, ne peut pas être prouvé à partir de ce registre.

Publicité

La seconde erreur

L'audit a aussi montré que les trades issus de la fenêtre de signal de 3 minutes avaient perdu 4,42 millions de ₩ alors que la fenêtre de 1 heure avait gagné de l'argent, et nous avons recommandé de moins trader la fenêtre de 3 minutes. Un jour plus tard, nous avons retiré cette recommandation. 157 des 158 trades de la fenêtre de 3 minutes étaient précisément ces sorties sur alarme. Sans elles, la fenêtre de 3 minutes n'avait qu'un seul trade. Nous avions comparé deux chemins de code et en avions fait une différence entre unités de temps.

Ce même second audit a mis au jour un défaut apparenté : six sorties sur alarme confirmée avaient toutes vendu avant d'atteindre leur propre stop-loss, à −2,0 % en moyenne, et cinq des six cryptos étaient plus haut quinze minutes plus tard. Les alarmes primaient désormais sur le plan de risque. Nous les avons empêchées de vendre avant le niveau du stop.

Ce que nous en avons retenu

Corriger le bug a supprimé un bug, pas le problème de fond : l'avantage de la stratégie par trade restait inférieur à ses coûts. Les six semaines au complet.

Autres recherches

Calculateur associé : Calculateur de frais de trading crypto