Na noite passada, descobri que o meu programa de negociação automática na Polymarket comprou secretamente 37 ordens, gastando $110.


Os logs do programa mostram "Posição: 0". Mas ao abrir a Polymarket, todas as seis mercados de previsão do tempo estavam com as minhas posições.
O que se passa?
Após fazer uma ordem, a API informa ao programa que "não foi possível comprar", então o programa não registra. Mas na realidade, o dinheiro já foi gasto.
Depois, o programa trava por causa de outro bug e o gestor de processos reinicia-o automaticamente. Após a reinicialização, o programa verifica — "Ei, sem posições, vou comprar de novo".
Falha → Reinício → Compra de novo → Nova falha. Ciclo repetido 34 vezes.
O mais irónico é que, em outra estratégia, já tinha implementado a lógica correta de confirmação de execução. Quando escrevi isso, não revi o meu próprio código.
Três lições:
• Não confiar em respostas instantâneas de qualquer API como resultado final, é preciso confirmação dupla
• O mecanismo de reinício automático não possui proteção contra duplicação = transforma um pequeno bug numa explosão em cadeia
• Uma solução correta já existente no seu próprio repositório de código é muito mais barata do que repetir os erros
Felizmente, consultei a previsão do tempo e a maior parte das posições deve conseguir recuperar os ganhos. Mas isso é sorte, não habilidade.
Ver original
post-image
post-image
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • Fixar

Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)