Hier soir, j'ai découvert que mon programme de trading automatique Polymarket avait discrètement acheté 37 ordres, pour un total de 110 $.


Le journal du programme affichait "Position: 0". Mais en ouvrant Polymarket, j'ai vu que les six marchés météo étaient tous en ma possession.
Que se passe-t-il ?
Après avoir passé une commande, l'API a indiqué au programme "pas acheté", donc le programme ne l'a pas enregistré. Mais en réalité, l'argent avait déjà été dépensé.
Ensuite, le programme a planté à cause d'un autre bug, et le gestionnaire de processus a redémarré automatiquement. Après le redémarrage, le programme a vu — "Tiens, pas de position, je vais acheter à nouveau".
Plantage → Redémarrage → Achat à nouveau → Nouveau plantage. Cycle répété 34 fois.
Le plus ironique, c'est que dans un autre de mes stratégies, j'avais déjà écrit une logique de confirmation de transaction correcte. En l'écrivant, je n'ai pas regardé mon propre code.
Trois leçons :
• Ne pas faire confiance à la réponse instantanée d'une API comme résultat final, il faut une double vérification
• Le mécanisme de redémarrage automatique n'a pas de protection contre les doublons = transformer un petit bug en une explosion en chaîne
• La solution correcte déjà présente dans mon propre code est bien moins coûteuse que de retomber dans le même piège
Heureusement, en vérifiant la météo, la plupart des positions devraient pouvoir être récupérées. Mais c'est de la chance, pas du talent.
Voir l'original
post-image
post-image
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler

Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)