1 puntos por GN⁺ 15 일 전 | 1 comentarios | Compartir por WhatsApp
  • Un bot asíncrono en Python que solo compra posiciones ‘No’ en los mercados de sí/no no deportivos de Polymarket, ofrecido con fines de entretenimiento
  • Distingue entre modo de simulación y modo de trading real; para operar en real es indispensable configurar varias variables de entorno y claves privadas
  • Mediante una interfaz de panel, permite monitorear el estado y, cuando el envío de órdenes está habilitado, guarda el estado de recuperación en tiempo real
  • Incluye scripts de despliegue para Heroku que automatizan la verificación del estado de la app, la consulta de logs, el cambio a trading real y la finalización de procesos
  • Incluye pruebas y herramientas de gestión de datos, por lo que puede ejecutarse y validarse de forma segura tanto en entornos locales como en la nube

Resumen general

  • Nothing Ever Happens es un bot asíncrono basado en Python que siempre compra la posición ‘No’ en los mercados de sí/no no deportivos de la plataforma Polymarket
  • Se ofrece con fines de entretenimiento y se ejecuta sin garantía ni responsabilidad, bajo el riesgo del usuario
  • El repositorio está compuesto por los directorios bot/, scripts/ y tests/, que contienen respectivamente la lógica de trading, scripts operativos y código de pruebas

Estructura de ejecución

  • En tiempo de ejecución, escanea mercados independientes y rastrea posiciones buscando opciones ‘No’ cuyo precio esté por debajo del límite máximo configurado
  • Muestra el estado mediante el panel y, si el envío de órdenes está habilitado, guarda el estado de recuperación en tiempo real
  • El módulo de ejecución es nothing_happens y, en modo inactivo, usa PaperExchangeClient

Modelo de seguridad

  • Para enviar órdenes reales, deben estar configuradas las tres variables de entorno siguientes
    • BOT_MODE=live
    • LIVE_TRADING_ENABLED=true
    • DRY_RUN=false
  • Si falta cualquiera de estas condiciones, cambia al modo de simulación
  • En modo de trading real, también se requieren las siguientes variables de entorno
    • PRIVATE_KEY
    • FUNDER_ADDRESS (para tipos de firma 1 y 2)
    • DATABASE_URL
    • POLYGON_RPC_URL (para aprobación de wallet proxy y redención)

Instalación y configuración

  • La instalación se realiza con pip install -r requirements.txt y luego se copia el archivo de configuración de ejemplo para usarlo como configuración local
  • config.json contiene configuración de ejecución no secreta, y .env incluye claves secretas y banderas de ejecución
  • La configuración de ejecución se encuentra bajo strategies.nothing_happens, y se puede indicar otro archivo de configuración con la variable de entorno CONFIG_PATH

Ejecución local

  • En local, puede ejecutarse con el comando python -m bot.main
  • El panel se vincula a la variable de entorno $PORT o DASHBOARD_PORT

Flujo de despliegue en Heroku

  • En el entorno de Heroku, se usa HEROKU_APP_NAME o se pasa un argumento explícito con el nombre de la app
  • Scripts incluidos:
    • alive.sh: verifica el estado de la app
    • logs.sh: consulta los logs
    • live_enabled.sh / live_disabled.sh: cambian el modo de trading real
    • kill.sh: finaliza el proceso
  • El procedimiento de despliegue habitual es el siguiente
    • Configurar variables de entorno (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
  • El proceso worker está diseñado para fallar rápidamente si se ejecuta por accidente

Pruebas

  • Las pruebas usan pytest para validaciones unitarias y de regresión
  • Comando: python -m pytest -q

Scripts incluidos

  • scripts/db_stats.py

    • Revisa la cantidad de tablas de la base de datos en tiempo real y la actividad reciente
  • scripts/export_db.py

    • Exporta tablas desde DATABASE_URL o desde una app de Heroku
  • scripts/wallet_history.py

    • Consulta posiciones, transacciones y saldo de la wallet configurada
  • scripts/parse_logs.py

    • Convierte logs JSON de Heroku a formato de terminal o HTML

Gestión del repositorio

  • La configuración local, libros contables, datos exportados, reportes y artefactos de despliegue están excluidos de git por defecto
  • El repositorio está organizado para separar claramente el entorno operativo del entorno local

1 comentarios

 
GN⁺ 15 일 전
Comentarios en Hacker News
  • Al ver este tuit, queda claro que no promete ganancias ni reembolsos
    Parece simplemente un proyecto hecho por diversión como código basado en memes
    Más que una estafa, se siente como un experimento gracioso

    • Sí. El bot no tiene absolutamente nada de gestión de riesgo, y en GitHub también dice claramente que es un meme
      Hay una estadística de que alrededor del 73% de Polymarket efectivamente termina en “No”
      Si te interesa el análisis de datos, vale la pena revisar el dataset de Hugging Face
    • Entonces eso significa que en realidad no es una estrategia de trading útil
      Por el sesgo de optimismo humano, el lado de “Yes” podría estar sobrevalorado, pero en Polymarket los traders ya están atentos, así que los precios se forman de manera realista
      Si se pudiera apostar contra monedas que van cayendo, sería interesante, pero incluso esos mercados terminarían ajustándose eficientemente
    • Cuando la gente encuentra una estrategia rentable de verdad, no suele compartirla
    • La expresión “código basado en memes” me da muchísima risa. Parece que este tipo de broma nerd fue lo que hizo explotar la discusión
    • Como varios mercados están conectados, es natural que salga más “No”. Por ejemplo, si hay 10 candidatos, 9 terminan en “No”
  • Es interesante que este proyecto sea para mercados no deportivos
    También se sabe que en las apuestas deportivas, la mayoría de las veces el lado “No” da mejor rentabilidad. “Yes” es más emocionante y por eso atrae a más gente
    Al final, las apuestas aburridas podrían generar mejores rendimientos en el largo plazo
    Parece posible que este tipo de insights de economía conductual acumulados en las apuestas deportivas también se apliquen a mercados no deportivos

    • Por la estructura del backend de Polymarket, incluso las apuestas deportivas en la práctica también tienen formato de Yes/No, así que la distinción es ambigua
    • Este tipo de estrategia puede tener al inicio un valor esperado (EV) positivo, pero cuando la gente se da cuenta, el mercado se reajusta eficientemente
      Al final se genera un bucle de retroalimentación donde el precio vuelve a su sitio
      Por eso, si encuentras una estrategia realmente rentable, lo más sensato es no publicarla como open source y correrla en silencio
  • La idea de “apostar siempre a No” es divertida, pero hace falta verificar cuánto dinero realmente genera

    • Yo también hice backtesting, pero aunque parecía mostrar algo como 100% APR, había una parte tramposa donde en la práctica ya se conocía el momento del resultado
      En el mundo real la liquidez es baja, y una sola pérdida puede borrar varias ganancias
      Los mercados deportivos son más predecibles precisamente porque tienen un momento de cierre claro y gran volumen de transacciones
    • A mí también me gustan los mercados de predicción y he probado varias estrategias, y la temporización es clave
      En lugar de ponerle No simplemente a todo, parece que se podría lograr una ganancia bastante estable apostando No en ítems relacionados justo cuando una noticia apenas empieza a salir
  • Yo lo veo como un arbitraje de imaginación humana
    A la gente le gustan los escenarios llamativos, pero la realidad casi siempre es aburrida

    • La gente subestima los eventos cisne negro, pero cuando ocurren reacciona de más
      Yo también gané dinero aprovechando ese patrón durante la crisis financiera y el COVID
      Ahora me preocupa la burbuja de la IA, pero creo que más que un desplome será un enfriamiento gradual, así que he aumentado mi proporción en bonos y efectivo
    • Pero si este tipo de bot se aplicara a eventos militares o políticos, podría crear un incentivo para que alguien intentara hacer realidad el “Yes”
    • Por eso el mercado no se valora de forma uniforme
    • El problema es que esta lógica en la práctica no funciona bien como estrategia real
  • Se argumenta que apostar a “No” es básicamente lo mismo que apostar “Yes” a todos los demás resultados
    La documentación de Polymarket tiene operaciones relacionadas

    • Pero eso es un malentendido. Por ejemplo, “Joe Dart gana la presidencia Y/N” y “Cory Wong gana la presidencia Y/N” son independientes entre sí
    • Exacto. Cada resultado no está relacionado con los demás
  • Este tipo de estrategia es como recoger monedas frente a un tren
    Repites pequeñas ganancias hasta que un evento de cola larga te hace perderlo todo de una vez

    • De todos modos, no parece que el autor lo haya presentado como una estrategia seria, sino más bien como un proyecto meme
    • Si no apuestas todo en un solo evento, la pérdida queda limitada al monto apostado
  • Hay un estudio relacionado: Prediction Market Microstructure
    (Discusión anterior: enlace de HN)

  • Yo diría que el mercado ya terminó de incorporarlo en el precio

    • El autor también menciona que “a largo plazo hay que comprar por debajo de 0.73”
      Ver este tuit relacionado
    • Pero el simple hecho de que exista un mercado puede activar la heurística de disponibilidad, haciendo que la gente sobreestime la probabilidad
      Enlace de referencia
    • “No pasa nada” le queda perfecto
    • Benjamin, qué mención tan interesante
  • Al final, con el tiempo la volatilidad realizada tiende a aparecer por debajo de la volatilidad implícita

    • La gente paga demasiado por la protección de skew, y vender eso puede generar ganancias constantes
      Claro, cuando explota, también se puede perder mucho
  • Que simplemente salga “No” el 70% de las veces no significa que se gane dinero
    Esto es mala matemática de manual. Es una estrategia tipo “recoger monedas frente a una apisonadora”

    • No creo que nadie se deje engañar. Parece que el autor lo hizo simplemente como una broma
    • Si no usas apalancamiento, este tipo de estrategia tiene un riesgo limitado
      Aun así, estos mercados ineficientes suelen ser pequeños y raros, así que al final probablemente “sí recoges monedas, pero solo monedas”
    • Que sea rentable o no depende de variables como el precio de entrada, el valor esperado y el tiempo restante
      Incluso siguiendo el criterio de Kelly, si apuestas al azar es muy probable que termines agotando el capital. Hace falta un análisis minucioso (DD) por mercado