Backtesting8 min de lectura
Cómo hacer backtesting de estrategias de Polymarket sobre el order book
Un último precio muestreado una vez por hora no te dice si tu orden se habría ejecutado. Aquí te mostramos cómo hacer backtesting de Polymarket contra el libro contra el que realmente habría operado.
Para realizar un backtest de una estrategia Polymarket, reproduzca sus libros de ofertas/ventas de profundidad completa registrados y dimensione los llenados hipotéticos contra la liquidez observada. Inspeccione las marcas de tiempo, la cadencia almacenada y las brechas; el archivo no puede establecer el libro exacto entre observaciones. Un último precio o un medio único también omiten el diferencial y la profundidad que encontraría una orden real.
Por qué los backtests con último precio mienten
La mayoría de los datos de Polymarket disponibles de forma gratuita son el último precio negociado, a menudo muestreado una vez por hora. Eso alcanza para dibujar un gráfico y nada más. Un backtest necesita responder una pregunta más difícil: si mi orden hubiera estado en reposo (o hubiera cruzado el spread) en ese momento, ¿se habría ejecutado, en qué tamaño y a qué precio?
Responder eso requiere el order book —cada bid y ask en reposo con su tamaño—, no un solo número. Una estrategia probada contra el mid asume que siempre se ejecutó al mid con cero slippage, lo cual nunca es cierto. En los mercados cripto de corto plazo, donde los spreads se ensanchan cerca de la liquidación, esa suposición puede convertir una estrategia perdedora en una aparente ganadora.
Paso 1 — Consigue datos de order book con profundidad completa
Comience con libros de órdenes con profundidad completa registrados en ambos lados. DepthFeed ingiere actualizaciones de Polymarket CLOB, pero las observaciones almacenadas siguen la cadencia de captura documentada y pueden tener brechas. Inspeccione las marcas de tiempo disponibles para su mercado en lugar de asumir que se retuvo cada evento upstream.
Obtén los mercados que quieras a través de la API REST: descúbrelos con GET /v3/{coin}/markets y luego trae la profundidad desde /v3/{coin}/markets/{id}/snapshots. Cada snapshot lleva arreglos de precio y tamaño de bid/ask más timestamps de exchange y de recepción en epoch-millis.
Paso 2 — Reconstruye el libro en cada momento
Reproduzca las observaciones registradas en orden de marca de tiempo. Cada una describe el libro almacenado en esa observación, incluyendo la mejor precio de compra, el mejor precio de venta, la profundidad y el diferencial. No infiera un estado de libro exacto ni llenados garantizados entre observaciones; haga explícita cualquier suposición de interpolación o persistencia en el backtest.
Paso 3 — Modela los fills contra la profundidad real
Ahora simula la ejecución con honestidad. Una orden marketable recorre el libro: se ejecuta primero contra el mejor nivel, luego contra el siguiente, hasta agotar su tamaño —así que su precio promedio es peor que el touch siempre que consuma más que el nivel superior. Una orden en reposo se une a la cola y solo se ejecuta si el mercado opera a través de su precio con suficiente tamaño detrás.
Dimensionar los fills contra la escalera registrada es justamente el punto: te da un slippage y una probabilidad de fill realistas en lugar de la ficción de que siempre operaste al mid.
Paso 4 — Une el precio del subyacente
Los mercados cripto up/down de Polymarket están impulsados por el movimiento spot del activo subyacente. Cada snapshot de DepthFeed se une a un precio de referencia de Binance de alta frecuencia por timestamp en epoch-millis, así que puedes alinear el estado del libro con el movimiento spot que repreció el contrato —esencial para cualquier estrategia que opere la relación entre el precio cripto y la probabilidad implícita del mercado.
Paso 5 — Validar el adaptador de datos en vivo
Las respuestas históricas de REST y los mensajes en vivo de WebSocket utilizan contratos documentados distintos. Valide un adaptador para sus identificadores, marcas de tiempo y campos antes de alimentar ambos a la lógica de estrategia compartida. Realice un backtest con observaciones almacenadas, luego pruebe el adaptador en vivo con paper trading.
Errores comunes
- Usar datos de último precio: oculta el spread y el slippage; infla los retornos del backtest.
- Snapshots de intervalo fijo: un muestreo horario o por minuto se pierde la mayor parte de la vida de un mercado de 5 minutos.
- Ignorar la posición en la cola: asumir que las órdenes en reposo siempre se ejecutan sobrestima las estrategias pasivas.
- Sesgo de anticipación (look-ahead): reacciona solo a datos con un timestamp de recepción igual o anterior al momento de tu decisión.
- Saltarse el subyacente: el edge cripto up/down suele vivir en la relación spot-a-probabilidad.
Puntos clave
- 01Haz backtesting contra el order book, no contra el último precio —la profundidad es lo que determina los fills.
- 02Usa datos orientados a eventos: los muestreos de intervalo fijo se pierden la vida de los mercados de corto plazo.
- 03Modela las órdenes marketable recorriendo el libro y las órdenes en reposo esperando en la cola.
- 04Une el precio cripto subyacente para capturar la relación spot-a-probabilidad.
- 05Elige datos cuya historia y feed en vivo compartan un mismo formato, para que operes el código que probaste.
Un último precio muestreado una vez por hora no te dice si tu orden se habría ejecutado. Aquí te mostramos cómo hacer backtesting de Polymarket contra el libro contra el que realmente habría operado.
Empieza gratis