Durante el desarrollo de @insidersdotbot, mantuve extensas conversaciones con numerosos equipos de market making y arbitraje de alta frecuencia. La pregunta más recurrente era cómo diseñar estrategias de arbitraje eficaces.
Nuestros usuarios, amigos y socios exploran el complejo y multidimensional camino del arbitraje en @Polymarket. Si eres usuario activo de X, seguramente has visto publicaciones como: “Gané X cantidad en mercados de predicción usando la estrategia de arbitraje Y”.
Sin embargo, la mayoría de los artículos simplifican en exceso la lógica central del arbitraje, reduciéndola a “cualquiera puede hacerlo” o “solo usa Clawdbot”, sin ofrecer una explicación sistemática para construir tu propio sistema de arbitraje.
Si quieres entender cómo las herramientas de arbitraje en Polymarket realmente generan beneficios, te recomiendo este artículo de @RohOnChain, el análisis más completo que he visto hasta ahora.
Como en mi artículo anterior, dado que el texto original en inglés contiene secciones altamente técnicas que requieren estudio adicional, he reestructurado y complementado el contenido para que puedas captar todos los puntos clave sin tener que buscar información adicional.
Supón que ves un mercado en Polymarket:
Precio YES 0,62 $, precio NO 0,33 $.
Piensas: 0,62 + 0,33 = 0,95, menos de 1—¡hay una oportunidad de arbitraje! Compras YES y NO por 0,95 $, y sea cual sea el resultado, recuperas 1,00 $, obteniendo 0,05 $ de beneficio.
Eso es correcto.
Pero aquí está el problema: mientras sumas manualmente esos números, los sistemas cuantitativos realizan un proceso completamente diferente.
Escanean simultáneamente 17 218 condiciones a través de 2^63 posibles combinaciones de resultados, identificando todas las inconsistencias de precios en milisegundos. Cuando colocas tus órdenes, el spread ya ha desaparecido. El sistema ya ha detectado ineficiencias similares en decenas de mercados relacionados, calculado tamaños óptimos de posición teniendo en cuenta la profundidad del libro de órdenes y las tarifas, ejecutado todas las operaciones en paralelo y movido el capital a la siguiente oportunidad [1].
La diferencia no es solo la velocidad, sino la infraestructura matemática.
Considera un ejemplo sencillo.
Mercado A: “¿Ganará Trump en Pensilvania?”
Precio YES 0,48 $, precio NO 0,52 $. Totaliza exactamente 1,00 $.
Parece perfecto—sin arbitraje, ¿verdad?
Incorrecto.
Añade otro mercado y todo cambia.
Ahora, Mercado B: “¿Ganará el Partido Republicano en Pensilvania por más de 5 puntos porcentuales?”
Precio YES 0,32 $, precio NO 0,68 $. De nuevo, totaliza 1,00 $.
Cada mercado parece “normal”. Pero existe una dependencia lógica:
La elección presidencial de EE. UU. se decide estado por estado. Cada estado es un “campo de batalla” y quien obtiene más votos gana todos sus votos electorales (winner-takes-all). Trump es el candidato republicano. Así que “los republicanos ganan Pensilvania” y “Trump gana Pensilvania” son el mismo evento. Si los republicanos ganan por más de 5 puntos, Trump no solo gana Pensilvania, sino que lo hace de manera contundente.
En otras palabras, el YES del mercado B (victoria republicana aplastante) es un subconjunto del YES del mercado A (Trump gana)—una victoria aplastante siempre implica ganar, pero ganar no siempre implica una victoria aplastante.
Esta dependencia lógica genera oportunidades de arbitraje.
Es como apostar a “¿Lloverá mañana?” y “¿Habrá tormenta mañana?” Si hay tormenta, necesariamente está lloviendo (tormenta ⊆ lluvia). Así, el precio de “YES tormenta” nunca debería ser mayor que el de “YES lluvia”. Si el mercado valora mal esto, puedes comprar barato y vender caro simultáneamente para obtener beneficio sin riesgo. Eso es arbitraje.
En cualquier mercado con n condiciones, existen 2^n posibles combinaciones de precios.
¿Parece manejable? Veamos un ejemplo real.
Mercado del torneo NCAA 2010 [2]: 63 partidos, cada uno con resultado de victoria/derrota. Eso es 2^63 = 9 223 372 036 854 775 808 combinaciones posibles—más de 9 quintillones. El mercado tenía más de 5 000 libros de órdenes.
¿Qué tan grande es 2^63? Incluso revisando 1 000 millones de combinaciones por segundo tomaría unos 292 años para agotarlas todas. Por eso la búsqueda exhaustiva es totalmente impracticable.
¿Comprobar cada combinación individualmente? Computacionalmente imposible.
Ahora, observa las elecciones estadounidenses de 2024. Los investigadores encontraron 1 576 pares de mercados con posibles dependencias [2]. Si cada par tiene 10 condiciones, eso es 2^20 = 1 048 576 combinaciones por par. Multiplica por 1 576 pares. Cuando tu portátil termine, la elección ya habrá pasado.
Los sistemas cuantitativos no resuelven esto mediante “enumeración más rápida”, sino no enumerando en absoluto.
Utilizan programación entera [3] para describir “qué resultados son válidos”.
Un ejemplo real: mercado Duke vs. Cornell—cada equipo tiene 7 libros de órdenes (de 0 a 6 victorias), totalizando 14 condiciones, o 2^14 = 16 384 combinaciones posibles.
Pero hay una restricción: ambos equipos no pueden ganar más de 5 partidos, ya que se enfrentarían en semifinales (solo uno puede avanzar).
¿Cómo resuelve esto la programación entera? Solo tres restricciones:
Restricción 1: solo uno de los 7 libros de Duke es verdadero (Duke solo puede tener un número final de victorias).
Restricción 2: solo uno de los 7 libros de Cornell es verdadero.
Restricción 3: Duke gana 5 + Duke gana 6 + Cornell gana 5 + Cornell gana 6 ≤ 1 (no pueden ambos tener tantas victorias).
Tres restricciones lineales en lugar de 16 384 comprobaciones exhaustivas.
Búsqueda exhaustiva vs. programación entera
En otras palabras, la búsqueda exhaustiva es como leer cada palabra del diccionario para encontrar una. La programación entera es como ir directamente a la página correcta. No necesitas revisar todas las posibilidades—solo describir cómo son los “resultados válidos” y dejar que el algoritmo encuentre los precios incorrectos.
Datos reales: el 41 % de los mercados ofrecen arbitraje
El artículo original indica que el equipo de investigación analizó datos de abril de 2024 a abril de 2025 [2]:
• 17 218 condiciones comprobadas
• 7 051 condiciones tenían arbitraje en mercado único (41 %)
• Desviación mediana de precios: 0,60 $ (debería ser 1,00 $)
• 13 oportunidades confirmadas de arbitraje entre mercados
Una desviación mediana de 0,60 $ significa que el mercado suele desviarse un 40 %. Esto no es “casi eficiente”, es “ampliamente explotable”.
Detectar arbitraje es una cosa. Calcular la operación óptima es otra.
No puedes simplemente “promediar” o “ajustar precios”. Debes proyectar el estado actual del mercado sobre el espacio libre de arbitraje, preservando la estructura informativa de los precios.
La aproximación intuitiva es buscar el “precio válido más cercano” y operar la diferencia.
Matemáticamente, esto implica minimizar la distancia euclidiana: ||μ - θ||²
Pero esto trata todos los cambios de precio por igual.
Un movimiento de 0,50 $ a 0,60 $ y de 0,05 $ a 0,15 $ son ambos cambios de 0,10 $, pero su contenido informativo difiere radicalmente.
¿Por qué? Porque los precios representan probabilidades implícitas. Pasar del 50 % al 60 % es un ajuste moderado. Pasar del 5 % al 15 % es un cambio importante—un evento casi imposible pasa a ser “algo posible”.
Imagina pesarte: pasar de 70 kg a 80 kg es “ganar un poco”. Pero de 30 kg a 40 kg (para un adulto), es “de casi muerte a desnutrición grave”. El mismo cambio de 10 kg, pero significado completamente distinto. Los cambios de precio cerca de 0 o 1 llevan mucha más información.
El market maker de Polymarket utiliza LMSR (Logarithmic Market Scoring Rule) [4], donde los precios representan distribuciones de probabilidad.
Aquí, la métrica de distancia correcta no es la euclidiana, sino la divergencia de Bregman [5].
Para LMSR, la divergencia de Bregman se convierte en la divergencia KL (Kullback-Leibler) [6], una medida de “distancia informativa” entre dos distribuciones de probabilidad.
No necesitas memorizar la fórmula. Solo saber:
La divergencia KL da mayor peso a los cambios cerca de precios extremos. Un movimiento de 0,05 $ a 0,15 $ es “más lejano” bajo KL que de 0,50 $ a 0,60 $. Esto coincide con nuestra intuición: los cambios extremos de precio significan mayores shocks informativos.
Un buen ejemplo: en el mercado de predicción de @zachxbt, Axiom superó a Meteora en el último minuto, impulsado por un movimiento extremo de precios.
Proyección de Bregman vs. proyección euclidiana
Una conclusión central del artículo citado:
El beneficio máximo garantizado de cualquier operación equivale a la distancia de proyección de Bregman desde el estado actual del mercado al espacio libre de arbitraje.
En resumen: cuanto más se desvían los precios del mercado del “espacio válido”, más puedes ganar. La proyección de Bregman te indica:
- Qué comprar o vender (dirección de proyección = dirección de la operación)
- Cuánto comprar o vender (teniendo en cuenta la profundidad del libro de órdenes)
- Cuánto puedes ganar (distancia de proyección = beneficio máximo)
El mejor arbitrajista ganó 2 009 631,76 $ en un año [2]. Su estrategia consistía simplemente en resolver este problema de optimización más rápido y con mayor precisión que los demás.
Politopo marginal y arbitraje
Imagina que estás en una montaña, con un río (espacio libre de arbitraje) al pie. Tu posición actual (precios de mercado) está a cierta distancia del río.
La proyección de Bregman te ayuda a encontrar el “camino más corto desde tu posición al río”—no la distancia en línea recta, sino el camino más corto considerando el terreno (estructura del mercado). La longitud de este camino es tu beneficio máximo posible.
Ahora sabes: para calcular el arbitraje óptimo, necesitas una proyección de Bregman.
Pero aquí está el problema: calcular directamente la proyección de Bregman no es factible.
¿Por qué? Porque el espacio libre de arbitraje (el politopo marginal M) tiene exponencialmente muchos vértices. La optimización convexa estándar requiere acceso al conjunto completo de restricciones, es decir, enumerar todos los resultados válidos. Eso es imposible a gran escala.
La genialidad del algoritmo Frank-Wolfe [7] es que no intenta resolver todo de golpe, sino que converge paso a paso.
Así funciona:
Paso 1: comienza con un pequeño conjunto de resultados válidos conocidos.
Paso 2: optimiza sobre este conjunto para encontrar la mejor solución actual.
Paso 3: utiliza programación entera para encontrar un nuevo resultado válido y añadirlo al conjunto.
Paso 4: comprueba si estás lo suficientemente cerca del óptimo. Si no, vuelve al paso 2.
Cada iteración añade solo un vértice. Incluso después de 100 iteraciones, solo rastreas 100 vértices, no 2^63.
Iteración Frank-Wolfe
Imagina buscar una salida en un laberinto gigantesco.
El método exhaustivo es recorrer todos los caminos. El método Frank-Wolfe es elegir un camino al azar y, en cada bifurcación, preguntar a un “guía” (solucionador de programación entera): “Desde aquí, ¿qué dirección es más probable para llegar a la salida?” Luego das un paso en esa dirección. No necesitas explorar todo el laberinto, solo tomar la decisión correcta en cada punto clave.
Cada iteración Frank-Wolfe requiere resolver un problema de programación lineal entera. En teoría, esto es NP-hard (no existe algoritmo rápido general conocido).
Pero solucionadores modernos como Gurobi [8] pueden manejar eficientemente problemas bien estructurados.
Tiempos de resolución reales del equipo de investigación [2]:
• Primeras iteraciones (pocos partidos finalizados): menos de 1 segundo
• Fase intermedia (30–40 partidos finalizados): 10–30 segundos
• Fase final (más de 50 partidos finalizados): menos de 5 segundos
¿Por qué es más rápido al final? Porque a medida que se determinan más resultados, el espacio de soluciones factibles se reduce. Menos variables, restricciones más estrictas, resoluciones más rápidas.
Frank-Wolfe estándar tiene un problema técnico: cuando los precios se acercan a 0, el gradiente LMSR tiende a infinito negativo, causando inestabilidad.
La solución es Frank-Wolfe con barrera: optimiza no sobre el politopo M completo, sino sobre una versión “reducida” M’. El parámetro de reducción ε disminuye adaptativamente en cada iteración—empezando más lejos del borde (por estabilidad), luego acercándose gradualmente al borde real (por precisión).
La investigación muestra que en la práctica, bastan entre 50 y 150 iteraciones para converger [2].
El artículo revela un hallazgo clave [2]:
En los primeros 16 partidos del torneo NCAA, el market maker Frank-Wolfe (FWMM) y uno de restricciones lineales simples (LCMM) tuvieron un rendimiento similar—porque el solucionador de programación entera aún era demasiado lento.
Pero tras 45 partidos, se completó la primera proyección exitosa en 30 minutos.
A partir de entonces, FWMM superó a LCMM en precios por un 38 %.
El punto de inflexión: cuando el espacio de resultados se redujo lo suficiente para que la programación entera resolviera dentro de la ventana de trading.
FWMM es como un estudiante que calienta en la primera mitad del examen, pero una vez “en forma”, empieza a dominar. LCMM es el estudiante constante pero limitado. La diferencia clave: FWMM tiene un “arma” más potente (proyección de Bregman), pero necesita tiempo para “cargar” (esperar al solucionador).
Has detectado arbitraje. Has usado la proyección de Bregman para calcular la operación óptima.
Ahora toca ejecutar.
Aquí es donde la mayoría de las estrategias fallan.
Polymarket utiliza un CLOB (Central Limit Order Book) [9]. A diferencia de los exchanges descentralizados, en un CLOB las operaciones se ejecutan secuencialmente—no puedes garantizar que todas tus órdenes se ejecuten a la vez.
Tu plan de arbitraje:
Comprar YES a 0,30 $. Comprar NO a 0,30 $. Coste total: 0,60 $. Sea cual sea el resultado, recibes 1,00 $. Beneficio: 0,40 $.
Realidad:
Envías orden YES → ejecutada a 0,30 $ ✓
Tu orden mueve el precio del mercado.
Envías orden NO → ejecutada a 0,78 $ ✗
Coste total: 1,08 $. Pago: 1,00 $. Resultado real: pierdes 0,08 $.
Un lado se ejecuta, el otro no. Estás expuesto.
Por eso el artículo solo cuenta oportunidades con margen de beneficio superior a 0,05 $ [2]. Los spreads menores se eliminan por el riesgo de ejecución.
Riesgo de ejecución no atómica
No supongas que siempre puedes ejecutar al precio cotizado. Debes calcular el Precio Medio Ponderado por Volumen (VWAP) [10].
El método del equipo de investigación: para cada bloque en la cadena Polygon (aprox. cada 2 segundos), calculan el VWAP de todas las operaciones YES y todas las NO en ese bloque. Si |VWAP_yes + VWAP_no - 1,0| > 0,02, se registra como oportunidad de arbitraje [2].
VWAP es el “precio medio que realmente pagas”. Si quieres comprar 10 000 tokens pero el libro de órdenes tiene 0,30 $ para 2 000, 0,32 $ para 3 000, 0,35 $ para 5 000—tu VWAP es (2000×0,30 + 3000×0,32 + 5000×0,35) / 10 000 = 0,326 $. Eso es mucho más alto que el “mejor precio” de 0,30 $ que viste.
Aunque los precios estén desalineados, tu beneficio está limitado por la liquidez disponible.
Un ejemplo real [2]:
El mercado muestra arbitraje: los precios YES suman 0,85 $. Beneficio potencial: 0,15 $ por dólar. Pero la profundidad del libro a esos precios es solo 234 $. Beneficio máximo extraíble: 234 × 0,15 = 35,10 $.
Para arbitraje entre mercados, necesitas liquidez en todas las posiciones simultáneamente. La menor liquidez disponible fija tu techo.
Por eso, en las plataformas cuantitativas actuales, el impacto de los precios de las órdenes en el precio de ejecución es crítico.
Esta es la respuesta a este problema durante el periodo Beta público.
La teoría es limpia. La producción es caótica.
Así es un sistema real de arbitraje operativo [2].
Datos en tiempo real: conexión WebSocket a la API de Polymarket [9], recibiendo actualizaciones del libro de órdenes (cambios de precio/cantidad), notificaciones de operaciones y eventos de creación/liquidación de mercados.
Datos históricos: consulta de eventos de contrato vía Alchemy Polygon node API—OrderFilled (operación ejecutada), PositionSplit (nuevo token emitido), PositionsMerge (token quemado).
El equipo de investigación analizó 86 millones de operaciones [2]. Esta escala requiere infraestructura, no solo scripts.
P.D. Actualmente,
planeamos abrir una API de trading de alta velocidad. Si planeas usar un modelo similar y quieres acceso anticipado, envíame un mensaje.
Para 305 mercados electorales de EE. UU., existen 46 360 pares posibles a revisar. El análisis manual es imposible.
El equipo de investigación utilizó un enfoque ingenioso: aprovechar el modelo de lenguaje DeepSeek-R1-Distill-Qwen-32B para el cribado inicial [2].
Entrada: descripciones de condiciones de dos mercados. Salida: JSON de combinaciones válidas de resultados.
Luego, tres capas de validación: ¿cada mercado tiene exactamente una condición verdadera? ¿El número de combinaciones válidas es menor que n × m (indicando dependencia)? ¿El subconjunto dependiente cumple condiciones de arbitraje?
Resultado: 40 057 pares independientes (sin arbitraje) → 1 576 pares dependientes (arbitraje potencial) → 374 pares que cumplen criterios estrictos → 13 pares confirmados explotables por humanos [2].
La precisión del LLM en mercados complejos multiconición es del 81,45 %. Suficiente para el cribado inicial, pero se requiere verificación manual antes de ejecutar.
Capa 1: restricciones lineales simples (LCMM). Comprobaciones rápidas de reglas básicas—“la suma de probabilidades es 1”, “si A implica B, entonces P(A) no puede superar P(B)”. Completa en milisegundos, eliminando errores evidentes de precios.
Capa 2: proyección por programación entera (Frank-Wolfe + Gurobi). Esta es la clave. Parámetros: Alpha = 0,9 (extraer al menos el 90 % del arbitraje disponible), ε inicial = 0,1 (reducción del 10 %), umbral de convergencia = 1e-6, límite de tiempo = 30 minutos. Iteraciones típicas: 50–150. Tiempo por iteración: 1–30 segundos [2].
Capa 3: validación de ejecución. Antes de enviar órdenes, simula ejecuciones en el libro de órdenes actual. Comprobaciones: ¿hay suficiente liquidez? ¿Cuál es el deslizamiento esperado? ¿Cuál es el beneficio garantizado tras el deslizamiento? ¿El beneficio supera el umbral mínimo (0,05 $)? Solo si se cumplen todos los criterios se ejecuta.
La fórmula Kelly estándar [11] indica qué fracción de capital asignar a una operación. Para arbitraje, debes ajustar por riesgo de ejecución:
f = (b×p - q) / b × √p
Donde b es el porcentaje de beneficio de arbitraje, p es la probabilidad de ejecución completa (estimada por la profundidad del libro) y q = 1 - p.
Límite: 50 % de la profundidad del libro. Más allá de esto, tu orden mueve significativamente el mercado.
De abril de 2024 a abril de 2025, beneficio total extraído [2]:
Arbitraje de condición única: comprar ambos lados barato 5 899 287 $ + vender ambos lados caro 4 682 075 $ = 10 581 362 $
Rebalanceo de mercado: comprar todos los YES barato 11 092 286 $ + vender todos los YES caro 612 189 $ + comprar todos los NO 17 307 114 $ = 29 011 589 $
Arbitraje combinado entre mercados: 95 634 $
Total: 39 688 585 $
Los 10 mejores arbitrajistas obtuvieron 8 127 849 $ (20,5 % del total). Mejor arbitrajista: 2 009 632 $ en 4 049 operaciones, promedio de 496 $ por operación [2].
No es una lotería. No es suerte. Es ejecución sistemática y matemáticamente precisa.
Mientras los traders leen “10 consejos para mercados de predicción”, ¿qué hacen los sistemas cuantitativos?
Usan programación entera para detectar dependencias entre 17 218 condiciones. Usan proyección de Bregman para calcular operaciones óptimas de arbitraje. Ejecutan el algoritmo Frank-Wolfe para manejar explosiones de gradiente. Utilizan VWAP para estimar deslizamiento y ejecutar órdenes en paralelo. Extraen sistemáticamente 40 millones de dólares de beneficio garantizado.
La diferencia no es suerte. Es infraestructura matemática.
El artículo es público [1]. Los algoritmos son conocidos. Los beneficios son reales.
La verdadera pregunta: ¿puedes construirlo antes de que se extraigan los próximos 40 millones?
• Politopo marginal → el conjunto de todos los precios válidos. Los precios deben estar en esta región para que no haya arbitraje.
• Programación entera → describe resultados válidos con restricciones lineales, evitando la enumeración exhaustiva. Comprime 2^63 comprobaciones en unas pocas restricciones [3].
• Divergencia de Bregman / Divergencia KL → mide la “distancia” entre dos distribuciones de probabilidad, más apropiada que la distancia euclidiana para escenarios de precios/probabilidad. Da mayor peso a cambios cerca de extremos [5][6].
• LMSR (Logarithmic Market Scoring Rule) → mecanismo de precios usado por el market maker de Polymarket; los precios representan probabilidades implícitas [4].
• Algoritmo Frank-Wolfe → algoritmo de optimización iterativo que añade un nuevo vértice por iteración, evitando la enumeración de resultados válidos exponencialmente numerosos [7].
• Gurobi → solucionador líder de programación entera, el “guía” en cada iteración Frank-Wolfe [8].
• CLOB (Central Limit Order Book) → mecanismo de trading de Polymarket; las órdenes se ejecutan en secuencia, sin atomicidad [9].
• VWAP (Precio Medio Ponderado por Volumen) → precio medio que realmente pagas, teniendo en cuenta la profundidad del libro. Más realista que la “mejor cotización” [10].
• Fórmula Kelly → indica qué fracción de capital asignar a una operación, equilibrando retorno y riesgo [11].
• Ejecución no atómica → problema donde no se puede garantizar que varias órdenes se ejecuten simultáneamente. Un lado se ejecuta, el otro no—riesgo de exposición.
• DeepSeek → modelo de lenguaje grande usado para cribado de dependencias de mercado, 81,45 % de precisión.
[1] Publicación original: https://x.com/RohOnChain/status/2017314080395296995
[2] Artículo de investigación “Unravelling the Probabilistic Forest: Arbitrage in Prediction Markets”: https://arxiv.org/abs/2508.03474
[3] Base teórica “Arbitrage-Free Combinatorial Market Making via Integer Programming”: https://arxiv.org/abs/1606.02825
[4] Explicación LMSR: https://www.cultivatelabs.com/crowdsourced-forecasting-guide/how-does-logarithmic-market-scoring-rule-lmsr-work
[5] Introducción a divergencias de Bregman: https://mark.reid.name/blog/meet-the-bregman-divergences.html
[6] Divergencia KL - Wikipedia: https://es.wikipedia.org/wiki/Divergencia_de_Kullback-Leibler
[7] Algoritmo Frank-Wolfe - Wikipedia: https://es.wikipedia.org/wiki/Algoritmo_de_Frank-Wolfe
[8] Gurobi Optimizer: https://www.gurobi.com/
[9] Documentación API CLOB de Polymarket: https://docs.polymarket.com/
[10] Explicación VWAP - Investopedia: https://www.investopedia.com/terms/v/vwap.asp
[11] Fórmula Kelly - Investopedia: https://www.investopedia.com/articles/trading/04/091504.asp
[12] Artículo Decrypt “The $40 Million Free Money Glitch”: https://decrypt.co/339958/40-million-free-money-glitch-crypto-prediction-markets





