Volver a proyectos

PolyWorkBench

Banco de trabajo sobre datos de mercados de predicción

47.000 mercados y decenas de millones de eventos: un endpoint de estadísticas que expiraba pasó a responder en 2 ms en caliente.

  • Python
  • FastAPI
  • PostgreSQL
  • Alembic
  • React
  • Docker Compose
  • pytest

Qué es

Un banco de trabajo para analizar datos de mercados de predicción —Polymarket, esos mercados donde la gente compra y vende contratos sobre si algo va a pasar—. Recoge sus datos por API de forma continua, los guarda en una base propia y encima monta tres cosas: un panel para explorar mercados y su histórico de precios, backtesting de estrategias sobre ese histórico, y seguimiento de carteras públicas para ver qué mueven las que más aciertan.

Está en pausa, y lo interesante de haberlo hecho es que casi todo el trabajo terminó siendo de datos, no de análisis: el recolector aguanta caídas de la API con reintentos y cortacircuitos, las migraciones son incrementales para no perder lo ya recogido, y el backtesting corrige lo que hace bonitos los backtests falsos —ventanas hacia delante y modelo de deslizamiento— porque una estrategia que se prueba con datos que no existían aún siempre gana.

El dato: la pantalla de estadísticas hacía COUNT(*) sobre tablas de decenas de millones de filas y devolvía error por tiempo de espera agotado. Con la consulta pesada retirada y una caché de 60 segundos, responde en ~2 ms en caliente. Fue mi recordatorio de que a partir de cierto tamaño un contador deja de ser gratis, y 47.271 mercados ya son ese tamaño.