2
Seguir
399
Seguidores

Arbitraje de cobertura binaria en Polymarket: un análisis completo desde el concepto hasta la aplicación práctica

Creado el: 2026-02-28 11:35:57, Actualizado el: 2026-03-03 14:35:13
comments   1
hits   37

[TOC]

Arbitraje de cobertura binaria en Polymarket: un análisis completo desde el concepto hasta la aplicación práctica

I. La estructura dual del mercado de Polymarket

Polymarket es un mercado de predicciones donde cada pregunta tiene solo dos resultados: sí o no, subida o bajada, victoria o derrota. Tomando como ejemplo el contrato de cambio de precio de 15 minutos de BTC, cada ronda tiene…Up y DownDos contratos que apuestan a si el precio de cierre de BTC será mayor o menor que su precio de apertura en los próximos 15 minutos. Una apuesta correcta paga $1; una incorrecta, cero.

Arbitraje de cobertura binaria en Polymarket: un análisis completo desde el concepto hasta la aplicación práctica

Este mercado tiene una característica muy especial:La probabilidad de los dos resultados combinados es del 100%, por lo que el precio de Subir más el precio de Bajar deberían teóricamente ser exactamente iguales a 1.

[ \text{Precio_de_subida} + \text{Precio_de_bajada} = 1 \quad \text{(Valor teórico)} ]

Esta propiedad no existe en los mercados contractuales ordinarios, lo que nos proporciona un ancla natural de certeza.


II. La lógica central del arbitraje: encontrar certeza en la incertidumbre.

El trading cuantitativo siempre ha tenido como objetivo una sola cosa: encontrar oportunidades relativamente ciertas en un mercado lleno de incertidumbre.

La estructura binaria de Polymarket proporciona dicho ancla:Independientemente de si BTC sube o baja en estos 15 minutos, tanto Up como Down pagarán inevitablemente $1.Utilizando este punto de anclaje, no necesitamos determinar la dirección; sólo necesitamos encontrar una oportunidad donde el costo total de comprar Arriba y Abajo sea menor a 1, y la ganancia esté garantizada.

El problema es que, la mayoría de las veces, la suma de ambos precios es cercana a 1, lo que dificulta encontrar oportunidades de arbitraje directo. Entonces, ¿dónde están exactamente las oportunidades?


III. Ventana de oportunidad: Desequilibrios de precios durante la reacción exagerada del mercado

La oportunidad viene deDesequilibrios de precios debido a la reacción exagerada del mercado

Imagine este escenario: En un período de 15 minutos, BTC cae rápidamente, provocando pánico en el mercado y una venta masiva de contratos Up, con el precio cayendo de 0,5 a 0,35. En teoría, por mucho que Up baje, Down debería subir en la misma cantidad, y la suma de ambos siempre será 1. Sin embargo, el mercado reacciona a diferentes velocidades. Up ya ha sido impulsado rápidamente a la baja, mientras que Down aún se mueve de 0,5 a 0,65 y es posible que no haya alcanzado el nivel completo.

En este momento crucial de transición, la suma de Arriba y Abajo podría ser solo 0,93, lo que resultaría en un breve desequilibrio de precios.

[ \text{Up}(0.35) + \text{Down}(0.58) = 0.93 < 1 ]

Esta es la ventana de arbitraje: una combinación que cuesta \(0,93 comprar e inevitablemente pagará \)1, con la ganancia determinada en el momento de la compra.


IV. Idea original: Versión serial de cuatro parámetros

La idea original surgió del usuario de Twitter @the_smart_ape, y es muy concisa, con solo cuatro parámetros:

parámetro significado
SHARES Compra de acciones por pierna
SUM_TARGET Precio objetivo para ambas piernas combinadas (límite superior)
MOVE_PCT La magnitud de la caída
WINDOW_MIN Monitoreo del tiempo de la ventana

La lógica de ejecución es la siguiente: dentro de la ventana de monitoreo al inicio de cada ronda, los precios se monitorean continuamente. Cuando una dirección experimenta una caída brusca que supera el umbral de activación, se compra esa dirección como primer tramo. Luego, se espera a que el precio en la dirección opuesta baje. Cuando el precio combinado de los dos tramos es inferior al precio objetivo, se compra el segundo tramo y se cierra el arbitraje. La liquidación y el reembolso se completan en 15 minutos.

Este enfoque es claro y sencillo, pero si se aplica directamente al trading en vivo, se encontrará con varios problemas obvios.


V. Nuestras mejoras: Bloqueo proactivo de oportunidades de arbitraje

La idea original eraEspera pasivaCompre la primera pierna y observe cuándo el precio en la dirección opuesta baja. Compre la segunda pierna solo cuando el precio combinado de las dos piernas sea inferior al precio objetivo.

Nuestros enfoques para mejorar son diferentes.En el momento de una caída brusca, es muy probable que los indicadores de subida y bajada se muevan a distintas velocidades. Actuamos simultáneamente durante este período de asincronía:

  • Primer paso: colocar una orden limitada para comprar al precio posterior a la fuerte caída, más el deslizamiento.
  • Partido de vuelta: conSUM_TARGET - 第一腿价格Al aplicar un límite de precio inverso, podemos fijar el precio antes de que la tendencia opuesta alcance su pico.

Cuando ambas órdenes se envían simultáneamente, la oportunidad de arbitraje se bloquea en el momento de la colocación. En lugar de esperar pasivamente a que el mercado cumpla las condiciones, dejamos que el mercado nos ayude.

La implementación del código principal es la siguiente:

function executeBothLegs(symbols, dumpSide, dumpAsk) {
    var leg1Symbol = (dumpSide === "Up") ? symbols.up   : symbols.down
    var leg2Symbol = (dumpSide === "Up") ? symbols.down : symbols.up

    leg1Price = _N(dumpAsk + SLIPPAGE, 4)
    // 第二腿限价:SUM_TARGET - leg1Price,确保两腿合计 <= SUM_TARGET 即有利润
    leg2Price = _N(SUM_TARGET - leg1Price, 4)

    // 并发提交两个限价单
    var goLeg1 = exchange.Go("CreateOrder", leg1Symbol, "buy", leg1Price, SHARES)
    var goLeg2 = exchange.Go("CreateOrder", leg2Symbol, "buy", leg2Price, SHARES)

    var id1 = goLeg1.wait()
    var id2 = goLeg2.wait()

    leg1OrderId = id1
    leg2OrderId = id2
    state = STATE.BOTH_PENDING
}

VI. Pregunta 1: Después de comprar la primera pierna, el precio aún no se ha recuperado.

La idea original era que la segunda pierna se completaría rápidamente, pero en realidad, a menudo sucede que después de que la pierna ascendente se empuja hacia abajo, el precio de la pierna descendente no vuelve a caer, el sentimiento del mercado sigue siendo pesimista y el precio combinado de ambas piernas nunca alcanza el objetivo.

Durante este período, si mantiene una posición unilateral hacia arriba, el precio puede seguir cayendo hasta establecerse en cero.Se debe colocar una orden de stop loss.

Parche 1: Precio mínimo garantizado + toma de ganancias anticipada

Agregamos dos parámetros:

  • FLOOR_PRICE(Precio Mínimo)Establezca un mínimo absoluto (p. ej., 0,05). Si el precio de mantenimiento cae a este nivel, indica que el mercado ha determinado que es probable que se pierda esta dirección, por lo que debe detener la pérdida y salir del mercado.
  • EARLY_TAKE_PROFIT(Ratio preliminar de toma de beneficios)Después de comprar la primera etapa del contrato, si el precio sube hasta el objetivo de ganancia, véndalo directamente para obtener la ganancia, sin esperar la segunda etapa.
function handleLeg1OnlyRisk(symbols, upBid, downBid, isLastMin) {
    var holdBid    = (leg1Side === "Up") ? upBid : downBid
    var profitLine = leg1EntryAsk * (1 + EARLY_TAKE_PROFIT)
    var stopLine   = leg1EntryAsk * (1 - LAST_MIN_STOP_LOSS)

    var needClose = false
    var reason    = ""

    if (holdBid <= FLOOR_PRICE) {
        needClose = true; reason = "止损(保底)"
    } else if (!isLastMin && holdBid >= profitLine) {
        needClose = true; reason = "前期止盈"
    } else if (isLastMin && holdBid <= stopLine) {
        needClose = true; reason = "末段止损"
    }

    if (needClose) {
        // 先撤对侧挂单,再平仓
        cancelAndConfirmUntilClear(leg2OrderId)
        closePosition(holdSymbol, holdBid, reason)
    }
}

Uno garantiza el límite inferior y el otro fija el límite superior, poniendo así un límite a la posición unilateral originalmente ilimitada.


VII. Pregunta 2: Es necesario gestionarla por separado para las fechas cercanas a la liquidación.

El enfoque original no distinguía la dimensión temporal, pero es completamente diferente cuando se acerca la fase de liquidación: la liquidación se aproxima y no hay tiempo para esperar, incluso si el precio no ha retrocedido. Además, cuanto más se acerca la liquidación, más drásticas tienden a ser las fluctuaciones del precio.

Parche 2: Lógica de segmentación para el período final

Hemos añadidoLAST_MIN_S(El umbral de tiempo final se puede ajustar). Lógica de conmutación después de ingresar a la etapa final:

  • Ya no intento construir una segunda pierna
  • MásLAST_MIN_STOP_LOSS(Porcentaje de stop-loss al final de la sesión de negociación), salida al precio de mercado si el precio de la posición cae por debajo de la línea de stop-loss.
  • Si no se cae, simplemente agárrelo y espere a que se asiente.
var isLastMin = (remaining <= LAST_MIN_S)

// BOTH_PENDING 状态下
if (isLastMin) {
    Log("⏰ 最后1分钟,撤销未成交挂单")
    cancelAllPending("最后1分钟")
}

En las primeras etapas, espere a que los precios se recuperen; en las últimas, evite que caigan a cero. Estas dos lógicas no interfieren entre sí.


8. Pregunta 3: Gestión de retrasos en la cadena de Polymarket

Polymarket es un mercado en cadena, y la información sobre el estado y la posición de las órdenes puede ser a veces lenta; la confirmación puede tardar varios segundos tras realizar una orden. Por lo tanto, la estrategia incorpora un mecanismo de detección de tiempo de espera y reintento de órdenes:

function placeOrderAndConfirm(symbol, side, price, amount) {
    var orderId = exchange.CreateOrder(symbol, side, orderPrice, amount)

    var deadline = Date.now() + ORDER_TIMEOUT_S * 1000
    while (Date.now() < deadline) {
        var order = exchange.GetOrder(orderId)
        if (order && order.Status === 1) {
            return { orderId: orderId, avgPrice: order.AvgPrice }  // 成交
        }
        if (order && (order.Status === 2 || order.Status === 4)) {
            return { orderId: orderId, avgPrice: null }  // 已撤销
        }
        Sleep(1000)
    }
    // 超时后执行撤单
    exchange.CancelOrder(orderId)
    // ... 继续轮询确认最终状态
}

Al mismo tiempo se añadióSLIPPAGEEl parámetro de deslizamiento aumenta la probabilidad de ejecución de una orden de compra. El precio real de la orden de compra es igual al precio objetivo más el deslizamiento.


IX. Redención de Liquidación Automática

Polymarket tiene un mecanismo único: el importe pagado no se devuelve automáticamente al saldo después de la liquidación del contrato.Los fondos solo se pueden liberar llamando activamente a la API de canje.Si se omite este paso, el dinero de la cuenta quedará bloqueado en las posiciones ya liquidadas.

La estrategia inicia automáticamente el canje en lotes durante cada cambio para garantizar la devolución oportuna de los fondos.

function doRedeem() {
    var positions = exchange.GetPositions()
    for (var i = 0; i < positions.length; i++) {
        var pos = positions[i]
        if (pos.Info && pos.Info.redeemable) {
            var result = exchange.IO("redeem", pos.Symbol, true)
            Log("Redeem 结果:", result)
        }
    }
}

// 每轮结算前(840s 后)自动触发
if (!redeemDone && elapsed >= 840) {
    doRedeem()
    redeemDone = true
}

10. Panel de monitoreo en tiempo real

Arbitraje de cobertura binaria en Polymarket: un análisis completo desde el concepto hasta la aplicación práctica

La estrategia incluye un panel de control en tiempo real que muestra el saldo de la cuenta, el estado actual, la monitorización de precios y las ganancias/pérdidas de la posición en formato de tabla, lo que permite seguir fácilmente el progreso de la estrategia durante las operaciones en vivo. El panel de control contiene cuatro tablas:

  1. Fondos de la cuentaPatrimonio inicial, patrimonio actual, saldo disponible, beneficio/pérdida total
  2. Estado políticoEtapa actual de la máquina de estado, órdenes pendientes/precios de transacción, niveles de stop-loss y take-profit, y bloqueo de ganancias.
  3. Monitoreo de preciosArriba/Abajo: Precio actual, porcentaje de caída y si se ha activado una señal.
  4. Detalles del puesto: Contratos abiertos, acciones, precio de entrada promedio, ganancias y pérdidas flotantes

XI. Demostración de trading en vivo y defectos de la estrategia

Arbitraje de cobertura binaria en Polymarket: un análisis completo desde el concepto hasta la aplicación práctica

Ejemplo de trading en vivo:

Comienza una nueva ronda y la estrategia está bajo seguimiento. Se detectó una caída del 18,60 % en el contrato de bajada, de 0,43 a 0,35, lo que activó una señal. Simultáneamente, se colocaron dos órdenes límite: la primera, de bajada, a 0,37 y la segunda, de subida, a 0,60, totalizando 0,97, por debajo del precio objetivo. Ambas órdenes se enviaron simultáneamente y se ejecutaron posteriormente. Precio de ejecución promedio real: primer tramo: 0,34; segundo tramo: 0,60 (costo total real).0.94El beneficio fue superior al esperado, estando por debajo del umbral preestablecido de 0,97.

Esta estrategia es relativamente sólida en su concepto y puede generar buenos rendimientos cuando las condiciones del mercado son favorables. Sin embargo, existen tres deficiencias que deben reconocerse abiertamente:

Defecto 1: Es difícil encontrar oportunidades para abrir posiciones cuando el mercado está estable.Las oportunidades de arbitraje dependen de la reacción exagerada del mercado; cuando el mercado se mantiene estable, la probabilidad de una caída brusca es muy baja, y la estrategia solo puede operar de forma aislada. Ampliar el rango de activación puede aumentar las oportunidades, pero la calidad de las entradas disminuirá.

Defecto 2: Los riesgos de mantener una única posición son difíciles de evitar por completo.Tras completarse el primer tramo, si el precio continúa bajando en lugar de recuperarse, el segundo tramo nunca se completará y seguirá bajando hasta alcanzar la línea de stop loss y activarse. Establecer el límite de stop loss es un dilema: si es demasiado estricto, se activará fácilmente por fluctuaciones normales; si es demasiado flexible, la pérdida será demasiado grande si el precio se desploma.

Defecto 3: El umbral para el precio objetivo combinado de ambas patas es un equilibrio.Establecer un umbral demasiado alto aumenta las oportunidades, pero genera menores ganancias cada vez; establecerlo demasiado bajo aumenta las ganancias cada vez, pero puede resultar en una larga espera para una oportunidad significativa. Esto depende de la estrategia: acumulación frecuente a pequeña escala o mantener un umbral bajo y esperar una gran oportunidad ocasional.


XII. Futuras direcciones de optimización

Esta estrategia es un marco y hay tres direcciones que vale la pena explorar en profundidad:

Opción 1: Introducir datos externos de precios de BTC.Esta estrategia es más adecuada para mercados con rangos definidos; en mercados con tendencia, las órdenes de stop loss se activan con frecuencia. Se puede integrar con los precios de BTC en tiempo real de los exchanges, lo que permite pausar la apertura de posiciones cuando surge una tendencia clara, reduciendo así pérdidas innecesarias.

Dirección 2: Modelado Matemático.Subir y Bajar son esencialmente dos opciones binarias. Existen numerosos modelos de precios consolidados en el sector de las opciones, que teóricamente pueden modelar la probabilidad de ventanas de arbitraje y el punto de entrada óptimo con mayor precisión, en lugar de basarse en umbrales fijos para tomar decisiones arbitrarias.

Opción 3: Ajuste dinámico de parámetros.Actualmente, todos los parámetros son fijos, pero la volatilidad del mercado varía. Usar el mismo conjunto de parámetros durante períodos de alta y baja volatilidad es claramente inapropiado. Ajustar automáticamente los parámetros según las condiciones del mercado en tiempo real mejora considerablemente la adaptabilidad de la estrategia.


La lógica central de esta estrategia —detectar momentos de desequilibrio de precios en mercados binarios— no se limita a los contratos BTC de Polymarket. Cualquier mercado con una estructura binaria y discrepancias de precios a corto plazo puede utilizarse para descubrir oportunidades mediante un enfoque similar. Simplemente hemos transformado esta idea en un marco de trabajo; lo realmente interesante está por venir.

Código fuente de la estrategia: Robot de arbitraje de cobertura de dos patas de Polymarket BTC de 15 minutos (versión de cobertura bidireccional)