Mercados Up/Down de Polymarket: slugs, resolución y el precipicio del libro de órdenes
Los mercados cripto Up/Down de Polymarket son los instrumentos de mayor frecuencia de la plataforma y de los más incomprendidos. Así se decodifica un slug, esto es lo que determina la resolución y esto es exactamente lo que conserva Polymarket cuando un mercado cierra.
Los mercados cripto Up/Down de Polymarket se liquidan cada cinco minutos, funcionan las 24 horas y mueven un volumen serio: el mercado BTC de cinco minutos que usamos como ejemplo más abajo negoció $638,615. Son lo más parecido a un instrumento de alta frecuencia que tienen los mercados de predicción.
También son los mercados más difíciles de estudiar de la plataforma, por un motivo que no tiene nada que ver con su diseño y sí con lo que les pasa después de cerrar. Este artículo cubre las tres partes: leer los slugs, entender la resolución y qué sobrevive a ella.
Cómo decodificar el slug
Cada mercado Up/Down tiene un slug con un formato fijo y totalmente predecible:
{coin}-updown-{timeframe}-{unix_start}
btc-updown-5m-1775181000
│ │ │ └── Unix timestamp: window START, in UTC
│ │ └────── Timeframe: 5m | 15m | 1h | 4h | 24h
│ └───────────── Always "updown"
└───────────────── Coin: btc | eth | sol | xrp | doge | bnbEse entero final es la parte útil. Es la marca de tiempo Unix del momento en que se abre la ventana de negociación, en UTC. Decodifícalo y sabrás exactamente qué cinco minutos cubre el mercado:
from datetime import datetime, timezone
slug = "btc-updown-5m-1775181000"
coin, _, timeframe, ts = slug.split("-")
start = datetime.fromtimestamp(int(ts), tz=timezone.utc)
print(coin.upper(), timeframe, start)
# BTC 5m 2026-04-03 01:50:00+00:00
# The market's own title renders this in US Eastern:
# "Bitcoin Up or Down - April 2, 9:50PM-9:55PM ET"Como el formato es determinista, puedes construir los slugs en lugar de buscarlos. Cada mercado BTC de 5m empieza en un límite de cinco minutos, así que el slug de cualquier ventana es btc-updown-5m- más la marca de tiempo Unix de ese límite. Si tienes un slug y quieres saber su resultado, pégalo en la búsqueda de mercados.
No te fíes del campo startDate
Esto confunde a casi todo el que procesa estos mercados. El startDate de la API en btc-updown-5m-1775181000 es 2026-04-02T01:58:12Z, 24 horas antes de la ventana de negociación. Ese campo registra cuándo se creó el objeto del mercado, no cuándo se abre la ventana. La marca de tiempo del slug es el inicio real; endDate (2026-04-03T01:55:00Z) es el cierre real. Fíjate en que endDate es exactamente la marca de tiempo del slug más 300 segundos.
Cómo funciona la resolución
La mecánica es simple a propósito. El mercado pregunta si el precio de la moneda al cierre de la ventana es más alto que en la apertura. Dos resultados, Up y Down, y uno de ellos se liquida a $1.
| Campo | Valor para btc-updown-5m-1775181000 |
|---|---|
question | Bitcoin Up or Down - April 2, 9:50PM-9:55PM ET |
outcomes | ["Up", "Down"] |
outcomePrices | ["0", "1"]: ganó Down |
endDate | 2026-04-03T01:55:00Z |
volumeNum | 638,615 |
spread | 0.01 |
umaResolutionStatus | resolved |
outcomePrices es la forma de leer el ganador después de la liquidación.Algunas consecuencias de este diseño que importan a cualquiera que modele estos mercados:
- Los empates se resuelven Down. La pregunta es si el cierre es más alto que la apertura. No ser más alto, incluido ser exactamente igual, es Down. En una ventana de 5 minutos esto es raro pero no despreciable, e introduce una pequeña asimetría estructural que un modelo ingenuo de cara o cruz pasa por alto.
- La resolución usa un TWAP de Chainlink, no un snapshot. Desde el 7 de agosto de 2026, los mercados cripto Up/Down se liquidan con una media ponderada por tiempo en lugar de con un único precio al cierre, y desde el 14 de agosto todos los mercados de 5 minutos usan una ventana de 60 segundos (fue de 30 segundos la semana intermedia). Tanto el precio a batir como el de liquidación salen de ese TWAP. Esto cambia mucho el final: un pico en los últimos diez segundos apenas mueve una media de 60 segundos, así que las reversiones de última hora son mucho más débiles de lo que parecen en un gráfico del spot.
- La probabilidad se comprime con fuerza al acercarse el vencimiento. Con sesenta segundos por delante y la moneda plana, ambos lados convergen hacia 50¢ y el spread decide. Con diez segundos por delante tras un movimiento decisivo, un lado está clavado en 97–99¢ y casi no queda nada que negociar.
- El spread lo es todo. Un spread cotizado de 0.01 en un mercado que paga $1 es un coste de ida y vuelta del 1% sobre un resultado binario. La mayoría de las estrategias que parecen rentables con el precio medio no lo son después de cruzarlo; más abajo lo explicamos.
Si construiste algo antes de agosto, vuelve a revisarlo
Llegaron tres cambios de liquidación en cinco semanas: la resolución por TWAP el 7 de agosto (ventana de 30s para los mercados de 5m), el paso a una ventana de 60 segundos el 14 de agosto y el retraso del taker en los mercados cripto, que pasó de 250ms → 50ms el 17 de agosto y luego de 50ms → 150ms el 4 de septiembre. Cualquier modelo calibrado con el comportamiento anterior a agosto está calibrado con otro instrumento.
Por qué los mercados de 5m son estructuralmente distintos
En un mercado BTC de 24 horas, importan los fundamentales y el flujo. En un mercado de 5 minutos, negocias microestructura: el flujo de órdenes, el tick del feed de referencia y la forma del libro en los últimos segundos. Las estrategias no se trasladan entre intervalos, y probar con datos de 24h no te dice nada sobre el comportamiento de 5m. Trátalos como instrumentos distintos que casualmente comparten una convención de nombres.
Qué conserva Polymarket después de que un mercado se resuelve
Esto decide si puedes investigar estos mercados o no. Polymarket conserva el registro del mercado y una serie de precios escasa después de la resolución. No conserva el libro de órdenes. Revisamos seis mercados BTC de 5 minutos resueltos el 29 de septiembre de 2026, con antigüedades desde 4 días hasta unos seis meses.
Corrección, 29 de septiembre de 2026
Una versión anterior de este artículo decía que prices-history devuelve un array vacío después de la resolución. Eso era cierto para la única solicitud que hicimos (interval=max en un mercado de seis meses) y falso como afirmación general. Con un inicio y un fin explícitos, devuelve los puntos que conserva Polymarket. Lo dicho sobre el libro de órdenes no cambia y se cumplió en todos los mercados que probamos.
TOK=<token_id_of_a_resolved_market>
START=1790466900 # the number at the end of btc-updown-5m-1790466900
END=$((START + 300))
# 1. The order book: gone, at every age we tried.
curl -s "https://clob.polymarket.com/book?token_id=$TOK"
# {"error":"No orderbook exists for the requested token id"} HTTP 404
# 2. The price series: thin, but there if you give it a window.
curl -s "https://clob.polymarket.com/prices-history?market=$TOK&startTs=$START&endTs=$END&fidelity=1"
# {"history":[{"t":...,"p":0.365}, ...]} 6 points for this 5-minute market
# 3. The same call with interval=max: empty for the six-month-old market we tried.
curl -s "https://clob.polymarket.com/prices-history?market=$TOK&interval=max&fidelity=1"
# {"history":[]} HTTP 200Así que la serie de precios no ha desaparecido, pero es escasa. Para btc-updown-5m-1790466900, Polymarket devolvió seis puntos, entre 11 y 316 segundos después de abrirse la ventana, y al último minuto le tocó uno. PolyTest guarda 2,552 snapshots del mismo mercado, aproximadamente uno cada 0.12 segundos, cada uno con el libro de ambos lados. Un precio por minuto basta para ver quién ganó y, más o menos, cuándo se movió el precio. No puede decirte a qué precio se habría ejecutado una orden de 500 acciones, y apenas cubre el último minuto, que es donde se deciden estos mercados.
La Data API más reciente de Polymarket tiene una segunda ruta, GET /v2/prices-history, que devuelve agrupaciones de 60 segundos. En nuestra prueba tenía datos de mercados de hasta 8 días de antigüedad y nada para mercados de 15 días o más, así que no sustituye a un archivo.
| Lo que quieres | ¿Disponible después de la resolución? |
|---|---|
| Metadatos del mercado (pregunta, resultado, volumen) | Sí, mediante ?closed=true |
| Qué lado ganó | Sí, outcomePrices |
| Serie de precios durante la ventana | Sí, aproximadamente un punto por minuto, con un inicio y un fin explícitos |
| Profundidad del libro de órdenes en cualquier momento | No, 404 en todas las antigüedades que probamos |
| A qué precio se habría ejecutado tu orden | No |
Un precio por minuto no es un libro
Puedes saber que ganó Down y, más o menos, cómo se movió el precio minuto a minuto. No puedes saber qué había en reposo en cada lado del libro en ningún momento, y todas las preguntas sobre ejecución dependen de eso. Una serie de precios basta para las tasas base y un gráfico aproximado. No basta para hacer backtesting de una estrategia que paga un spread.
Por qué las tasas base no bastan
Un instinto habitual a estas alturas: si los resultados se pueden recuperar, ¿por qué no estudiar simplemente las frecuencias de resolución? Contar cuántas veces se resolvió Up el BTC de 5m en los últimos mil mercados, encontrar un sesgo y operarlo.
El problema es que cualquier sesgo así se incorpora a la cotización mucho antes de que lo veas. Si los mercados SOL de 5m se resolvieron Up el 52% de las veces el mes pasado, los creadores de mercado lo saben, y Up abre a 52¢. La tasa base no es una ventaja; ya está en el precio. Lo que necesitarías para encontrar una ventaja es justo lo que Polymarket no conserva: cómo estaba el libro cuando el precio era incorrecto.
Esta es la razón honesta por la que las estrategias Up/Down son difíciles de validar. No es que los mercados sean eficientes: es que la evidencia necesaria para comprobarlo en un sentido u otro no está en la API.
Grabar lo que Polymarket no conserva
La única forma de sortear un libro de órdenes que falta es haberlo grabado mientras el mercado estaba activo. Eso es lo que hace PolyTest: snapshots puntuales continuos de los mercados cripto Up/Down de Polymarket, capturados mientras están activos y conservados después de resolverse: 240M+ snapshots con 8 niveles de profundidad del libro por lado y marcas de tiempo por debajo del segundo.
| Moneda | Intervalos |
|---|---|
| BTC | 5m · 15m · 1h · 4h · 24h |
| ETH | 5m · 15m · 1h |
| SOL | 5m · 15m · 1h |
| XRP · DOGE · BNB | Recopilando ahora; muy pronto |
import os, requests
BASE = "https://api.polytest.io/api/v1"
H = {"X-API-Key": os.environ["POLYTEST_KEY"]}
# Resolved markets are still here — that is the whole point.
markets = requests.get(f"{BASE}/markets",
params={"coin": "sol", "market_type": "5m", "limit": 50},
headers=H).json()["markets"]
for m in markets:
snaps = requests.get(f"{BASE}/markets/{m['id']}/snapshots",
params={"include_orderbook": "true"},
headers=H).json()["snapshots"]
# The final minute is where 5m markets are actually decided.
endgame = snaps[-12:]
for s in endgame:
print(m["slug"], s["timestamp"], s["midPrice"], s["spread"])Tres cosas que vale la pena probar
- ¿Tu ventaja sobrevive al spread? Vuelve a ejecutar cualquier resultado prometedor con el ask real que habrías tomado en lugar del precio medio. Con un spread de 1¢ en un mercado de $1, esto convierte con frecuencia una estrategia ganadora en perdedora. Hazlo primero: descarta la mayoría de las ideas sin gastar mucho.
- ¿Cómo se comporta la profundidad en los últimos 60 segundos? Los mercados Up/Down se vacían de forma drástica cerca del vencimiento. Un tamaño que se ejecuta con 3 minutos por delante puede no ejecutarse a 30 segundos, y eso es invisible en cualquier serie de precio medio.
- ¿Algo se traslada entre monedas? Los mercados de 5m de BTC, ETH y SOL comparten diseño, pero no perfil de liquidez. Una estrategia ajustada con el libro de BTC a menudo se viene abajo con el de SOL, más fino, y eso conviene saberlo antes de financiarla, no después.
La guía de backtesting trata la simulación de ejecuciones con más detalle, y hay una prueba gratuita de 3 días si quieres revisar los datos antes de comprometerte con nada.
Preguntas frecuentes
- ¿Qué significa el formato de slug btc-updown-5m?
- Los slugs Up/Down de Polymarket siguen el patrón {coin}-updown-{timeframe}-{unix_start}. En btc-updown-5m-1775181000, btc es la moneda, 5m es la duración de la ventana y 1775181000 es la marca de tiempo Unix del momento en que se abre la ventana de negociación en UTC; en este caso, 2026-04-03 01:50:00 UTC, que aparece en el título del mercado como April 2, 9:50PM-9:55PM ET. El formato es determinista, así que los slugs se pueden construir en lugar de buscarlos.
- ¿Cómo se resuelven los mercados Up/Down de Polymarket?
- El mercado se resuelve Up si el precio de referencia de la moneda al cierre de la ventana es más alto que en la apertura, y Down en caso contrario. Como la condición es estrictamente más alto, un cierre exactamente plano se resuelve Down. Desde el 7 de agosto de 2026, los precios de apertura y cierre salen de una media ponderada por tiempo de Chainlink en lugar de un único precio, y desde el 14 de agosto los mercados de 5 minutos usan una ventana de 60 segundos. La diferencia entre tu propio feed de datos y esa media importa cerca del límite.
- ¿Por qué está mal el startDate de un mercado Up/Down de Polymarket?
- No está mal, pero no significa lo que la gente supone. El campo startDate registra cuándo se creó el objeto del mercado, lo que puede ser un día o más antes de que empiece la negociación. Para btc-updown-5m-1775181000, el startDate es 2026-04-02T01:58:12Z, mientras que la ventana se abre en realidad a las 2026-04-03T01:50:00Z. Usa la marca de tiempo Unix del slug para el inicio de la ventana y endDate para el cierre.
- ¿Puedo obtener datos históricos de mercados Up/Down de Polymarket ya resueltos?
- No desde la API de Polymarket. Solo en parte. Polymarket devuelve 404 para el libro de órdenes de un mercado resuelto. Conserva el registro del mercado (resultado y volumen, con closed=true) y una serie de precios de aproximadamente un punto por minuto, que se obtiene con un inicio y un fin explícitos; interval=max devuelve una lista vacía para los mercados más antiguos. No hay profundidad del libro, así que no puedes simular ejecuciones. Hacer backtesting de la ejecución requiere snapshots grabados mientras el mercado estaba activo.
- ¿Qué monedas tienen mercados Up/Down en Polymarket?
- BTC tiene la cobertura más completa, con ventanas de 5m, 15m, 1h, 4h y 24h. ETH y SOL funcionan en 5m, 15m y 1h. XRP, DOGE y BNB son incorporaciones más recientes con una cobertura más limitada. La liquidez varía mucho entre monedas, así que una estrategia calibrada con el libro de BTC a menudo no se traslada al de SOL, más fino.
Obtén los datos históricos que Polymarket no guarda
PolyTest registra los mercados cripto Up/Down de Polymarket mientras están activos: 240M+ snapshots con 8 niveles de profundidad del libro de órdenes, marcas de tiempo por debajo del segundo y mercados resueltos conservados. Empieza con una prueba gratuita de 3 días.
Sigue leyendo
La ventaja por retraso del spot en Polymarket es real. Y también tiene unos $100 de profundidad.
Compra el lado que el spot ya ha confirmado, antes de que Polymarket ajuste el precio. A diferencia de la mayoría de las estrategias que se anuncian, esta sobrevive al contacto con los datos, con un z-score de 15. El motivo por el que no ha hecho rico a todo el mundo está en el libro de órdenes.
Una tasa de acierto del 97.7% que pierde dinero: comprar favoritos, con backtest
Compra el lado que claramente va ganando, cobra el pago casi seguro y repite. Produce una tasa de acierto que luce extraordinaria en una captura de pantalla. En 17,002 operaciones con datos reales del libro de órdenes también pierde dinero, y el motivo es aritmético, no mala suerte.
Cómo crear un bot de trading para Polymarket
La mayoría de los tutoriales de bots para Polymarket se basan en SDK que ya no existen. Este es el camino actual de principio a fin: qué instalar en 2026, cómo funciona realmente la autenticación, dónde están los huecos de datos y los modos de fallo que matan a los bots en la primera semana.