1 pontos por GN⁺ 15 일 전 | 1 comentários | Compartilhar no WhatsApp
  • Um bot assíncrono em Python que compra automaticamente apenas posições “No” nos mercados de sim/não não esportivos do Polymarket, fornecido para fins de entretenimento
  • Distingue entre modo de negociação simulada e modo de negociação real; no modo real, é obrigatório configurar várias variáveis de ambiente e chaves privadas
  • Por meio de uma interface de dashboard, monitora o estado e, quando o envio de ordens está ativado, salva o estado de recuperação em tempo real
  • Inclui scripts de implantação no Heroku para automatizar a verificação do estado do app, consulta de logs, ativação do modo real e encerramento de processos
  • Inclui ferramentas de teste e gerenciamento de dados, permitindo execução e validação seguras tanto em ambientes locais quanto na nuvem

Visão geral

  • Nothing Ever Happens é um bot assíncrono baseado em Python que sempre compra a posição “No” em mercados de sim/não não esportivos na plataforma Polymarket
  • É fornecido para fins de entretenimento e executado por conta e risco do usuário, sem garantias nem responsabilidade
  • O repositório é composto pelos diretórios bot/, scripts/ e tests/, contendo respectivamente lógica de negociação, scripts operacionais e código de teste

Estrutura de runtime

  • O runtime varre mercados independentes e rastreia posições ao buscar itens “No” abaixo do teto de preço configurado
  • Exibe o estado por meio do dashboard e, quando o envio de ordens está ativado, salva o estado de recuperação em tempo real
  • O módulo de execução é nothing_happens e, no modo inativo, usa o PaperExchangeClient

Modelo de segurança

  • Para enviar ordens reais, as três variáveis de ambiente abaixo precisam estar configuradas
    • BOT_MODE=live
    • LIVE_TRADING_ENABLED=true
    • DRY_RUN=false
  • Se qualquer uma dessas condições estiver ausente, o sistema muda para o modo de negociação simulada
  • No modo real, as variáveis de ambiente adicionais abaixo também são necessárias
    • PRIVATE_KEY
    • FUNDER_ADDRESS (para tipos de assinatura 1 e 2)
    • DATABASE_URL
    • POLYGON_RPC_URL (para aprovação e resgate da carteira proxy)

Instalação e configuração

  • A instalação é feita com pip install -r requirements.txt e, depois, copiando o arquivo de configuração de exemplo para uso como configuração local
  • config.json contém configurações de runtime não sigilosas, enquanto .env contém chaves secretas e flags de execução
  • As configurações de runtime ficam em strategies.nothing_happens, e é possível apontar para outro arquivo de configuração com a variável de ambiente CONFIG_PATH

Execução local

  • Em ambiente local, é possível executar com o comando python -m bot.main
  • O dashboard faz bind em $PORT ou na variável de ambiente DASHBOARD_PORT

Fluxo de implantação no Heroku

  • No ambiente Heroku, usa-se HEROKU_APP_NAME ou passa-se explicitamente o nome do app como argumento
  • Scripts fornecidos:
    • alive.sh: verifica o estado do app
    • logs.sh: consulta logs
    • live_enabled.sh / live_disabled.sh: alterna o modo de negociação real
    • kill.sh: encerra o processo
  • Um procedimento típico de implantação é o seguinte
    • Configurar as variáveis de ambiente (BOT_MODE, DRY_RUN, LIVE_TRADING_ENABLED, PRIVATE_KEY, FUNDER_ADDRESS, POLYGON_RPC_URL, DATABASE_URL)
    • git push heroku <branch>:main
    • heroku ps:scale web=1 worker=0
  • O processo worker foi projetado para falhar rapidamente caso seja executado sem intenção

Testes

  • Os testes usam pytest para validação unitária e de regressão
  • Comando: python -m pytest -q

Scripts incluídos

  • scripts/db_stats.py

    • Verifica a contagem de tabelas do banco de dados em tempo real e a atividade recente
  • scripts/export_db.py

    • Exporta tabelas a partir de DATABASE_URL ou de um app Heroku
  • scripts/wallet_history.py

    • Consulta posições, transações e saldo da carteira configurada
  • scripts/parse_logs.py

    • Converte logs JSON do Heroku para formato de terminal ou HTML

Gerenciamento do repositório

  • Configurações locais, ledger, dados exportados, relatórios e artefatos de implantação são excluídos do git por padrão
  • O repositório foi estruturado para separar claramente o ambiente operacional do ambiente local

1 comentários

 
GN⁺ 15 일 전
Comentários do Hacker News
  • Olhando este tweet, está explicitamente dito que não promete lucro nem reembolso
    Parece só um projeto feito por diversão, com código baseado em meme
    Mais um experimento engraçado do que um golpe

    • Sim. O bot não tem absolutamente nenhum gerenciamento de risco, e no GitHub também está claramente descrito como meme
      Há uma estatística de que cerca de 73% dos mercados da Polymarket de fato terminam em “No”
      Se você se interessa por análise de dados, vale dar uma olhada no dataset do Hugging Face
    • Então isso significa que não é uma estratégia de trading realmente utilizável
      Por causa do viés otimista humano, o lado “Yes” pode até ficar supervalorizado, mas a Polymarket já é acompanhada por traders, então os preços tendem a se formar de maneira realista
      Se fosse possível apostar em moedas em queda, seria interessante, mas esse mercado também acabaria sendo precificado de forma eficiente
    • Quando as pessoas encontram uma estratégia realmente lucrativa, elas não costumam compartilhar
    • A expressão “código baseado em meme” é boa demais. Parece que esse tipo de brincadeira nerd fez a discussão explodir
    • Como vários mercados estão conectados, é natural que saia mais “No”. Por exemplo, se há 10 candidatos, 9 vão terminar em “No”
  • É interessante que esse projeto seja voltado para mercados não esportivos
    Também se diz que, em apostas esportivas, na maioria dos casos o lado “No” tem retorno melhor, porque “Yes” é mais interessante e atrai mais gente
    No fim, a “aposta chata” pode ter mais chance de gerar retorno melhor no longo prazo
    Parece que esse tipo de insight de economia comportamental acumulado em apostas esportivas também pode se aplicar a mercados não esportivos

    • Pela estrutura de backend da Polymarket, até as apostas esportivas são basicamente em formato Yes/No, então a distinção fica meio nebulosa
    • Esse tipo de estratégia pode ter valor esperado (EV) positivo no começo, mas, quando as pessoas percebem, o mercado se reajusta de forma eficiente
      No fim, surge um loop de feedback em que o preço volta ao lugar certo
      Por isso, se você encontrar uma estratégia realmente lucrativa, o mais sensato é não abrir em open source e rodá-la em silêncio
  • A ideia de “aposte sempre em No” é divertida, mas ainda precisa ser validado o quanto isso realmente dá lucro

    • Eu também fiz backtest, e embora parecesse algo como 100% APR, havia uma parte “trapaceada” por já saber o momento do resultado com antecedência
      Na prática, a liquidez é baixa, e uma única perda pode apagar vários ganhos
      Mercados esportivos, na verdade, são mais previsíveis graças ao momento de encerramento bem definido e ao grande volume negociado
    • Eu também gosto de mercados de previsão e já testei várias estratégias, e o ponto-chave é o timing
      Em vez de simplesmente colocar No em tudo, algo como apostar em No em itens relacionados no momento em que as notícias começam a sair talvez permita um retorno relativamente estável
  • Eu vejo isso como uma arbitragem da imaginação humana
    As pessoas gostam de cenários estimulantes, mas a realidade na maior parte do tempo é entediante

    • As pessoas subestimam eventos de cisne negro e, quando eles de fato acontecem, reagem de forma exagerada
      Eu também ganhei dinheiro explorando esse padrão na crise financeira e na COVID
      Hoje me preocupo com a bolha de IA, mas acho mais provável que ela esfrie aos poucos do que desabe de uma vez, então aumentei minha alocação em títulos e caixa
    • Mas, se um bot desses fosse aplicado a eventos militares ou políticos, alguém poderia ganhar incentivo para fazer o “Yes” acontecer na realidade
    • É por isso que o mercado não é precificado de forma uniforme
    • O problema é que essa lógica, na prática, não funciona muito bem como estratégia real
  • Há quem diga que apostar em “No” é praticamente o mesmo que apostar em “Yes” para todos os outros resultados
    A documentação da Polymarket tem os cálculos relacionados

    • Mas isso é um mal-entendido. Por exemplo, “Joe Dart vence a eleição presidencial Y/N” e “Cory Wong vence a eleição presidencial Y/N” são independentes entre si
    • Exato. Cada resultado não tem relação com os outros
  • Esse tipo de estratégia parece pegar moedas na frente de um trem
    Você repete pequenos lucros até que um único evento de cauda longa leva tudo embora

    • O autor também não parece ter apresentado isso como uma estratégia séria, e sim como um projeto-meme
    • Se você não apostar tudo em um único evento, a perda fica limitada ao valor apostado
  • Há um estudo relacionado: Prediction Market Microstructure
    (discussão anterior: link do HN)

  • Eu diria que isso já está precificado pelo mercado

    • O autor também menciona que “no longo prazo, é preciso comprar abaixo de 0,73”
      Veja este tweet relacionado
    • Mas o simples fato de o mercado existir pode estimular a heurística da disponibilidade, levando as pessoas a superestimar a probabilidade
      Link de referência
    • “Nada acontece” é uma formulação perfeita
    • Benjamin, hein, uma menção interessante
  • No fim, a volatilidade realizada tende, com o tempo, a ficar abaixo da volatilidade implícita

    • As pessoas pagam caro demais por proteção de skew, e vender isso pode gerar lucro de forma consistente
      Claro, quando estoura, a perda pode ser grande
  • Só porque “No” sai em 70% dos casos não significa que isso dá dinheiro
    Isso é matemática ruim clássica. É o tipo de estratégia de “pegar moedas na frente de um rolo compressor”

    • Acho que ninguém está sendo enganado. O autor parece ter feito isso só como piada
    • Sem usar alavancagem, o risco desse tipo de estratégia é limitado
      Só que mercados ineficientes assim são pequenos e raros, então no fim talvez você “pegue moedas, mas só moedas”
    • O lucro depende de variáveis como preço de entrada, valor esperado e tempo restante
      Mesmo seguindo o critério de Kelly, se você apostar aleatoriamente, a tendência é o capital acabar se esgotando. É preciso fazer uma análise detalhada (DD) de cada mercado