⬡ POLYBOT
// dashboard v1.0
⬡ POLYBOT
ACTIVO
SIM
—
Principal
◈ Overview
◎ Apuestas 0
◇ Mercados
⊙ Decisiones 0
Sistema
⊞ Config 0
⬡ Modelo
≡ Logs
⌘ Comandos
🩺 Diagnóstico
// overview
P&L Total
—
hoy: —
ROI
—
win rate: —
Apuestas
—
✓— ✗—
Balance Wallet
—
exposición: —
// bankroll evolution
// p&l by category
// últimas apuestas
Tiempo Modo Mercado Cat Lado Monto Edge Resultado P&L
// historial de apuestas
cargando...
Timestamp Mercado Cat Lado Monto Precio Edge Modo Resultado P&L
// mercados activos
cargando...
Mercado Cat YES % NO % Volumen Cierre
// decisiones del bot
// para qué sirve esta sección

Evalúa el comportamiento del bot antes de pasarlo a modo real.
Si los simulados ganan consistentemente → considera pasar a real.
Si hay muchas intenciones rechazadas por spread → la liquidez de Polymarket es estrecha en esos mercados.
Si las oportunidades cercanas son rentables con edge 4-5% → considera bajar edge_minimo en Config.

// cómo distribuye el capital

Por cada oportunidad: el bot calcula Kelly fraccionario:
monto = kelly_puro × kelly_fraccion × bankroll

Limitado por:
· apuesta_maxima (cap absoluto por apuesta)
· max_exposicion (15% del bankroll por apuesta)
· max_exposicion_categoria (30% del bankroll en una categoría)

No es "winner take all". Si hay 5 oportunidades y bankroll bajo, apuesta en cada una con monto Kelly hasta agotar los caps.

// histograma de distribución de edge
Cargando histograma...
-30% -20% -10% 0% +10% +20% +30%
// apuestas simuladas ejecutadas (dry_run)

Decisiones APOSTAR que pasaron todos los filtros (edge, exposición, correlación, spread). Si pasaras a real, estas serían las apuestas reales.

Tiempo Mercado Cat Lado Monto Precio Edge Resultado
// rechazos por filtro (acumulado)
// intenciones del modelo (APOSTAR rechazadas por filtros)

El modelo decidió APOSTAR pero un filtro posterior la frenó. La columna filtro dice cuál y motivo explica el detalle exacto (ej: "Spread CLOB de 12.3% supera el límite de 5%").

Tiempo Mercado Cat Lado Edge Filtro Motivo
// top oportunidades (decision_log)
edge mín:
Tiempo Mercado Cat Acción Edge final Motivo (si pasó)
// configuración
// estado del bot
Bot activo
Modo real (no simulación)
Aprobación manual por apuesta
Notificar apuestas dry_run Si está apagado, Telegram solo recibe errores y apuestas reales (no las ~96 dry/día).
Bypass señal de noticias Apaga el análisis con IA en caliente. Útil si la API rotativa falla — el bot sigue operando sin esa señal (peso 0.30 del modelo).
// perfiles de riesgo (presets)
Ajusta automáticamente apuesta máxima, edge mínimo, Kelly fracción y spread máximo según tu tolerancia al riesgo.
● Activo:
// parámetros de apuesta
Apuesta máxima ($) Límite en USD por cada operación.
Apuesta mínima ($) Si Kelly sugiere menos que esto, no se apuesta.
Edge mínimo (%) Ventaja estadística requerida para entrar al mercado.
Kelly fracción (%) Porcentaje del Kelly ideal a usar (reduce la volatilidad).
Intervalo escaneo (min) Pausa entre cada ciclo de análisis de mercados.
Cooldown mercado (min) Tras apostar un mercado, espera N min antes de poder re-apostarlo. 0 = sin cooldown.
// filtros de mercado
Volumen mínimo ($) Filtro de liquidez básica del mercado.
Spread máximo (%) Máxima diferencia Bid-Ask aceptada para operar.
Spread absurdo (%) Mercados por encima de esto se ignoran silenciosamente.
Prob. mínima Probabilidad mínima del mercado para ser considerado (evita certezas absolutas).
Prob. máxima Probabilidad máxima del mercado para ser considerado (evita mercados decididos).
Límite por categoría Cantidad máxima de mercados a procesar por categoría en cada ciclo.
// gestión de riesgo
Exposición máxima (% bankroll) Porcentaje máximo del bankroll que puede estar en juego simultáneamente.
Exposición máx. por categoría (% bankroll) Límite de exposición total para una sola categoría de mercado.
Bankroll inicial ($) Capital base para cálculos de Kelly y métricas de rendimiento (solo referencia en modo real).
// glosa de parámetros
Parámetro Qué controla Efecto al subir
Apuesta máxima Tope en USD por operación Más capital en juego por apuesta
Apuesta mínima Piso para evitar micro-apuestas Menos apuestas se ejecutan
Edge mínimo Ventaja mínima sobre el mercado Más selectivo, menos operaciones
Kelly fracción % del Kelly óptimo a usar Apuestas más grandes, más volátil
Spread máximo Bid-Ask máximo aceptable Acepta mercados con menos liquidez
Spread absurdo Umbral de skip silencioso Ignora más mercados sin liquidez
Exposición máxima % bankroll máximo en juego Más riesgo simultáneo
Volumen mínimo Liquidez mínima del mercado Solo mercados más líquidos
// acciones
// aprobaciones pendientes
Sin apuestas pendientes. Activa el modo manual para que el bot pida confirmación.
ID Mercado Lado Monto Edge Creada Acción
// meta-modelo
// pesos de señales
Cargando...
// actividad del pipeline
Sin datos de decision_log
// calibración del modelo
Categoría Bucket N Mercados Prob Media Tasa Real Error Calib.
// ineficiencias detectadas
Categoría Rango N Prob Mercado Tasa Real Edge ROI p-valor Sig.
// logs del sistema
// fuente de logs
// cargando logs...
// comandos del bot
// control del bot
Estado actual: cargando...
// acerca de los comandos

Los scripts corren en background sin interrumpir el bot.
El output aparece en tiempo real en la terminal de abajo.
Solo un script puede correr a la vez.

// scripts disponibles
● CORRIENDO
📊
Backtest
Evalúa el modelo sobre histórico — ROI, win rate, max drawdown, Sharpe
~30 seg —
🔎
Analyzer
Descarga mercados resueltos y detecta ineficiencias de precio
~1-2 min —
🚀
Pipeline completo
Analyzer → Backtest en secuencia — actualización completa recomendada
~2-3 min —
🧹
Limpiar CSV
Sanea CSVs (descarta filas malformadas) sin borrar datos. Útil si pandas falla al leer.
~5 seg —
🗑
Reset Datos
DESTRUCTIVO: ELIMINA todas las operaciones, decision_log, rechazos y cooldowns. Reinicia exposición a $0.
~2 seg —
// output del script
// esperando — pulsa ▶ RUN en un script para comenzar...
// comandos info (output a la terminal)
📊
/status
Estado del bot, modo, capital y P&L
⚙️
/config
Volcado completo de config.json
📈
/stats
Estadísticas de rendimiento
🔍
/mercados
Top 10 mercados del último scan
📋
/historial
Últimas 10 apuestas con P&L
📐
/calibracion
Brier score del modelo
💰
/balance
Estado de la wallet (caché)
📥
/pendientes
Apuestas esperando aprobación manual
🩺
/diagnostico
Salud del bot (token, APIs, archivos)
// acciones extra
// referencia: comandos de Telegram
Comando Descripción Equivalente web
/statusEstado actual del botOverview
/pausaPausar el botComandos ▸ ⏸
/reanudarReactivar el botComandos ▸ ▶
/capital XApuesta máxima en USDConfig
/edge XEdge mínimo en %Config
/kelly XFracción de Kelly en %Config
/intervalo XMinutos entre escaneosConfig
/dryrunActivar simulaciónConfig (toggle)
/realActivar dinero real ⚠Config (toggle)
/modoAuto vs manualConfig (toggle)
/pendientesApuestas esperando aprobaciónConfig ▸ aprobaciones
/diagnosticoSalud del bot completaDiagnóstico
/backuptar.gz de data/ + configDiagnóstico ▸ 📦
/gensecretGenerar DASHBOARD_SECRETComandos ▸ 🔐
/historialÚltimas 5 apuestasApuestas
/statsEstadísticas completasOverview
/mercadosMercados activosMercados
/configVer configuración actualConfig
/balanceBalance de la walletOverview
/calibracionBrier Score del modeloModelo
/scriptsLista de scriptsComandos
/backtestBacktest completoComandos ▸ ▶
/analyzerHistórico + ineficienciasComandos ▸ ▶
/pipelineAnalyzer + BacktestComandos ▸ ▶
// diagnóstico
// estado de salud
Pulsa "correr ahora" para ejecutar los checks. Tarda ~5s.
Estado Check Detalle
// qué se chequea
  • Telegram token — valida con getMe
  • Webhook — detecta webhook activo (bloquea polling)
  • Conflicto polling — detecta otra instancia con el mismo token (causa #1 del bot mudo)
  • Chat ID — destinatario de notificaciones
  • DASHBOARD_SECRET — JWT secret en producción
  • Modo — activo / dry_run / aprobacion
  • PRIVATE_KEY — solo si dry_run=false
  • API keys opcionales — Anthropic (noticias), Odds (deportes)
  • APIs Polymarket — gamma + CLOB
  • Archivos de datos — ineficiencias.csv, operaciones.csv, etc.
  • Disco — espacio libre
  • Aprobaciones pendientes — items esperando confirmación manual