Strasmore Research
Educación Matt ConnorPor Matt Connor

Precio de contratos de eventos como probabilidad

Un contrato de eventos paga $1 o $0, por lo que su precio refleja una probabilidad. Conoce por qué Yes más No supera $1 y cómo eliminar el spread.

El precio de un contrato de eventos refleja una probabilidad con un spread incorporado. El contrato paga $1.00 si ocurre el resultado especificado y $0.00 si no ocurre. Ese pago fijo es lo que hace funcionar el cálculo: 30 centavos en un contrato que paga un dólar significa que el mercado está cotizando una probabilidad aproximada del 30%. Para interpretar correctamente el número, hay que hacer un ajuste por el spread y otro por los mecanismos que intervienen en la liquidación.

Lo que indica el precio de un contrato de eventos sobre la probabilidad

Todo se deriva del pago. Compra un contrato Yes a un precio p y cobras $1.00 si el resultado se resuelve como Yes, y nada si se resuelve como No. Tras muchas repeticiones, el pago promedio equivale a la probabilidad real de que el resultado sea Yes. Si pagas exactamente esa probabilidad, alcanzas el punto de equilibrio. El precio pagado es la probabilidad de equilibrio. Por eso una misma cifra cumple ambas funciones.

Cuatro términos, definidos una sola vez:

  • Contrato Yes: paga $1.00 si ocurre el resultado y $0.00 en caso contrario.
  • Contrato No: paga $1.00 si no ocurre el resultado. Yes y No son las dos caras de una misma moneda.
  • Liquidación: el momento en que el contrato se resuelve y una de las partes cobra el dólar.
  • Fuente de resolución: el informe o feed especificado contra el que se liquida el contrato. El pago depende de lo que indique esa fuente, no de lo que haya ocurrido.

Las cotizaciones de contratos de eventos no forman parte del conjunto de datos utilizado en esta página. Cada panel mide la misma aritmética cuando puede medirse directamente, en opciones sobre acciones estadounidenses listadas. La delta de una opción call va de 0 a 1 y aproxima la probabilidad que asigna el mercado a que el contrato expire in the money. Es la misma pregunta binaria que plantea un contrato de eventos: ¿estará por encima del nivel de referencia en la fecha de liquidación o no? La delta es una aproximación de esa probabilidad y, además, es una probabilidad neutral al riesgo, no un pronóstico. Ambos límites aparecen en los paneles. La guía sobre delta de opciones explica la medida en sí.

¿Por qué Yes y No suman más de $1?

Un Yes y su No correspondiente cubren todo el espacio de resultados, y exactamente uno de ellos paga. En una cadena de opciones, el mismo par es una call y una put con el mismo strike y vencimiento: la call termina in the money por encima del strike, y la put termina in the money por debajo. Sus probabilidades deben sumar 100%. Este es ese par en una cadena de SPY de un día, agrupado en bandas de 2% alrededor del precio spot.

ConsultaProbabilidades de Sí y No en una cadena de SPY: calls, puts y total del par
El SQL exacto detrás de cada cifra
WITH chain AS (
    SELECT strike_price,
           toFloat64(any(underlying_close)) AS spot,
           avgIf(delta, delta > 0) AS call_delta,
           avgIf(-delta, delta < 0) AS put_delta_abs,
           countIf(delta > 0) AS calls,
           countIf(delta < 0) AS puts
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date = toDate('2026-06-30')
      AND expiration_date = toDate('2026-07-31')
      AND iv_converged = 1
      AND volume > 0
    GROUP BY strike_price
    HAVING calls > 0 AND puts > 0
),
banded AS (
    SELECT toInt32(round(100 * (toFloat64(strike_price) / spot - 1) / 2) * 2) AS band,
           call_delta,
           put_delta_abs
    FROM chain
)
SELECT concat(if(band > 0, '+', ''), toString(band), '% vs spot') AS strike_vs_spot,
       round(100 * avg(call_delta), 1) AS yes_prob_pct,
       round(100 * avg(put_delta_abs), 1) AS no_prob_pct,
       round(100 * avg(call_delta + put_delta_abs), 1) AS pair_total_pct,
       count() AS strikes
FROM banded
WHERE abs(band) <= 8
GROUP BY band
ORDER BY band
Run this yourself

En -8% vs spot, el lado de la call muestra 91.6% y el lado de la put 7.8%, con un total para el par de 99.5%. En el extremo opuesto de la escalera, +6% vs spot, ambas muestran 3.6% y 82.5%, para un total de 86.2%. Todas las bandas de 8 quedan dentro del redondeo de 100. Esa línea plana en el gráfico es la restricción que rige todo mercado binario. La posición agregada en ambos lados es lo que mide el ratio put call.

Los valores de los modelos se comportan como deberían. Las cotizaciones, no. Supongamos que un contrato cotiza con una demanda de 62 centavos y una oferta de 66 centavos, mientras que su lado No tiene una demanda de 36 centavos y una oferta de 40 centavos. Si compras Yes a 66 centavos y No a 40 centavos, pagas $1.06 por una posición cuyo retorno está garantizado en $1.00. Si vendes ambos al precio de compra, cobras 98 centavos frente a una obligación de $1.00. La brecha de 6 centavos entre las dos ofertas es el overround, la cantidad que un apostador deportivo llama vig, y es la remuneración del mercado y del market maker por proveer liquidez. La página sobre spread bid ask explica por qué existe esa brecha.

La aritmética para eliminar el margen, paso a paso

Entran dos precios cotizados. Salen dos probabilidades razonables que suman uno.

  1. Toma el punto medio de cada lado. El punto medio de Yes es 64 centavos y el de No, 38 centavos.
  2. Súmalos. El libro totaliza 102 centavos.
  3. Divide cada punto medio entre ese total. 64 / 102 equivale a 62.7%. 38 / 102 equivale a 37.3%.
  4. Comprueba la suma. Ahora el par suma 100%.

Eso es todo lo que significa eliminar el margen. Es la misma normalización que aplica un apostador a las cuotas decimales.

Ahora aplícalo a un mercado más líquido. Cotiza el mismo contrato con una bid de 63 y una ask de 64, y No con una bid de 36 y una ask de 37. Los puntos medios son 63.5 y 36.5. El libro totaliza exactamente 100 centavos y la probabilidad sin margen es 63.5%. Las dos respuestas —62.7% en el mercado amplio y 63.5% en el mercado más estrecho— están separadas por menos de un punto. La banda razonable a su alrededor no lo está. Cualquier probabilidad entre la bid de 62 centavos y la ask de 66 centavos es compatible con la cotización amplia. Por tanto, un mercado con un spread de 4 centavos fija las probabilidades con una precisión de aproximadamente 4 puntos, y no mayor. Escribir “62.7%” a partir de un mercado con un spread de 4 centavos expresa tres dígitos de precisión que el mercado no contiene. El ancho del spread determina la precisión.

¿Un precio de 30% significa que ocurre el 30% de las veces?

La calibración es la prueba: reunir todo lo que el mercado valoró cerca de 30% y luego contar con qué frecuencia ocurrió. Incluye cada contrato de call de SPY registrado desde enero de 2022, tomado aproximadamente 30 días antes del vencimiento, clasificado en rangos de probabilidad implícita y comparado con el hecho de que SPY cerrara por encima de ese strike en la fecha de vencimiento.

ConsultaProbabilidad implícita vs. resultado observado: calls de SPY a 30 días del vencimiento, 2022 a junio de 2026
El SQL exacto detrás de cada cifra
WITH px AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2022-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session
),
snap AS (
    SELECT ticker AS contract,
           argMin(delta, abs(days_to_expiry - 30)) AS implied_prob,
           toFloat64(any(strike_price)) AS strike,
           any(expiration_date) AS expiry
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date >= toDate('2022-01-01')
      AND expiration_date <= toDate('2026-06-30')
      AND days_to_expiry BETWEEN 25 AND 35
      AND iv_converged = 1
      AND volume > 0
      AND delta > 0.02
      AND delta < 0.98
    GROUP BY contract
)
SELECT multiIf(implied_prob < 0.10, '2-10%',
               implied_prob < 0.20, '10-20%',
               implied_prob < 0.30, '20-30%',
               implied_prob < 0.40, '30-40%',
               implied_prob < 0.50, '40-50%',
               implied_prob < 0.60, '50-60%',
               implied_prob < 0.70, '60-70%',
               implied_prob < 0.80, '70-80%',
               implied_prob < 0.90, '80-90%',
                                    '90-98%') AS implied_bucket,
       count() AS contracts,
       round(100 * avg(implied_prob), 1) AS implied_prob_pct,
       round(100 * avg(close_px > strike), 1) AS finished_above_pct
FROM snap
INNER JOIN px ON px.session = snap.expiry
GROUP BY implied_bucket
ORDER BY implied_prob_pct
Run this yourself

La columna implícita sube a lo largo de la escala por construcción. La columna realizada es la parte que nadie conocía de antemano. En la parte inferior, el rango 2-10% promedió 4.7% de probabilidad implícita en 4276 contratos y terminó por encima de su strike 4.9% de las veces. En la parte superior, 90-98% promedió 94.3% y terminó por encima del strike 97.8%. La proporción realizada en la parte inferior de la escala se sitúa muy por debajo de la proporción realizada en la parte superior. Eso es lo que parece una calibración cuando se cumple de forma aproximada.

Hay dos salvedades que acompañan a cualquier tabla de este tipo. El periodo importa: una muestra compuesta principalmente por precios al alza eleva la columna realizada en todos los rangos de calls, mientras que otro periodo cambia la misma medición. Además, el delta responde qué probabilidad hace que los precios sean internamente consistentes, no qué cree ningún pronosticador. La misma cadena valora toda una distribución, no un solo umbral (el movimiento esperado).

Si nos limitamos a los contratos que el mercado consideró un lanzamiento de moneda, cerca de 50 centavos por dólar, en seis nombres conocidos:

ConsultaContratos con precio cercano a 50/50: resultado implícito vs. realizado por ticker, 2023 a junio de 2026
El SQL exacto detrás de cada cifra
WITH px AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'XOM')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2023-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session
),
snap AS (
    SELECT underlying_symbol AS symbol,
           ticker AS contract,
           argMin(delta, abs(days_to_expiry - 30)) AS implied_prob,
           toFloat64(any(strike_price)) AS strike,
           any(expiration_date) AS expiry
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'XOM')
      AND date >= toDate('2023-01-01')
      AND expiration_date <= toDate('2026-06-30')
      AND days_to_expiry BETWEEN 25 AND 35
      AND iv_converged = 1
      AND volume > 0
      AND delta BETWEEN 0.40 AND 0.60
    GROUP BY symbol, contract
)
SELECT snap.symbol AS symbol,
       count() AS contracts,
       round(100 * avg(implied_prob), 1) AS implied_prob_pct,
       round(100 * avg(close_px > strike), 1) AS finished_above_pct
FROM snap
INNER JOIN px ON px.ticker = snap.symbol AND px.session = snap.expiry
GROUP BY symbol
ORDER BY finished_above_pct DESC
Run this yourself

La probabilidad implícita se sitúa cerca de 50% en todas las filas por construcción. La columna realizada se dispersa: SPY terminó por encima de su strike 68.4% de las veces en 4785 contratos, frente a 49.9% en XOM. 6 nombres, una misma probabilidad implícita y un amplio rango de resultados efectivos. Un precio cercano a 50 centavos describe las probabilidades del mercado. Cada contrato individual aún liquida a $1.00 o $0.00.

¿Cuál es el punto de equilibrio de un contrato de $0.70?

Un contrato comprado a 70 centavos paga $1.00 si ocurre el resultado Yes y nada si ocurre No. La ganancia es de 30 centavos, la pérdida es de 70 centavos y la probabilidad de equilibrio coincide exactamente con el precio. Con una probabilidad real de 70%, la posición queda en un volado con pasos adicionales. Por encima de 70%, la aritmética favorece al comprador; por debajo, lo perjudica, todo antes de costos.

Los costos desplazan ese umbral de forma desigual. Si se agrega un centavo de costo total de ida y vuelta a un contrato de 70 centavos, el punto de equilibrio pasa de 70% a aproximadamente 71%, un error de redondeo para la posición. Si se agrega el mismo centavo a un contrato de 5 centavos, el punto de equilibrio sube de 5% a 6%, y con ello desaparece una quinta parte de la ventaja teórica. Las comisiones fijas afectan más a las apuestas de baja probabilidad más baratas, donde la comisión representa la mayor proporción del precio pagado. El tipo de orden funciona de la misma manera: cruzar el spread implica pagar el ask completo, mientras que una orden limitada resting se coloca al precio que usted indica y puede no ejecutarse nunca (orden de mercado vs. orden limitada).

¿Por qué un resultado casi seguro cotiza a $0.97?

Un resultado que nadie discute rara vez cotiza a $1.00. Esos últimos 3 centavos reflejan cuatro factores:

  • Valor temporal del dinero. El dólar se recibe en la liquidación. Pagar hoy 97 centavos por $1.00 dentro de tres meses implica un rendimiento sobre el capital, y ese efectivo tiene otros usos (mantener efectivo ocioso).
  • Riesgo de la fuente de resolución. El contrato se liquida según lo que informe la fuente designada y conforme al calendario que esa fuente mantenga. Las revisiones, los retrasos y las redacciones ambiguas siguen siendo relevantes incluso cuando el resultado está acordado.
  • El spread en sí. Un mercado cotizado con 96 de bid y 98 de ask tiene un punto medio de 97 centavos, pero no registra operaciones a 97. En términos porcentuales, el libro suele mostrar el spread más amplio justo en los extremos.
  • La cola de riesgo. La gente usa la palabra «seguro» con demasiada libertad. Los contratos se liquidan según la definición del reglamento.

La convergencia se puede medir. Tomemos calls de SPY con precios cercanos a una probabilidad de 50% un mes antes del vencimiento, dividámoslas según lo que finalmente ocurrió y observemos la probabilidad implícita promedio en seis puntos de control.

ConsultaCómo se resuelve un evento cercano a 50/50: probabilidad implícita promedio por punto de control, desglosada por resultado
El SQL exacto detrás de cada cifra
WITH px AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(toFloat64(close), window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-06-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session
),
coin_flips AS (
    SELECT ticker AS contract
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date >= toDate('2025-06-01')
      AND expiration_date <= toDate('2026-06-30')
      AND days_to_expiry BETWEEN 28 AND 32
      AND iv_converged = 1
      AND volume > 0
      AND delta > 0
    GROUP BY contract
    HAVING avg(delta) BETWEEN 0.35 AND 0.65
),
obs AS (
    SELECT g.days_to_expiry AS dte,
           g.delta AS implied_prob,
           if(px.close_px > toFloat64(g.strike_price), 1, 0) AS finished_above
    FROM global_markets.options_greeks AS g
    INNER JOIN coin_flips AS c ON g.ticker = c.contract
    INNER JOIN px ON px.session = g.expiration_date
    WHERE g.underlying_symbol = 'SPY'
      AND g.date >= toDate('2025-06-01')
      AND g.expiration_date <= toDate('2026-06-30')
      AND g.iv_converged = 1
      AND g.volume > 0
      AND g.delta > 0
      AND (g.days_to_expiry BETWEEN 28 AND 32
        OR g.days_to_expiry BETWEEN 19 AND 23
        OR g.days_to_expiry BETWEEN 12 AND 16
        OR g.days_to_expiry BETWEEN 6 AND 8
        OR g.days_to_expiry BETWEEN 3 AND 4
        OR g.days_to_expiry <= 1)
)
SELECT multiIf(dte >= 28, '30 days out',
               dte >= 19, '21 days out',
               dte >= 12, '14 days out',
               dte >= 6, '7 days out',
               dte >= 3, '3 days out',
                         '1 day out') AS checkpoint,
       round(100 * avgIf(implied_prob, finished_above = 1), 1) AS eventual_yes_pct,
       round(100 * avgIf(implied_prob, finished_above = 0), 1) AS eventual_no_pct,
       count() AS contract_days
FROM obs
GROUP BY checkpoint
HAVING countIf(finished_above = 1) > 0 AND countIf(finished_above = 0) > 0
ORDER BY avg(dte) DESC
Run this yourself

En 30 days out, los contratos que finalmente terminaron por encima de su strike mostraban una probabilidad implícita promedio de 52.6%, frente a 47.8% en los que no lo hicieron. Para 1 day out, los mismos dos grupos mostraban 79.8% y 14.4%. La separación se establece con información conocida después de los hechos. Nadie que leyera la cadena en el primer punto de control podía distinguir los dos grupos. Esa es precisamente la situación en la que siempre se encuentra un contrato de eventos activo. La certeza llega en la fecha de liquidación y el precio avanza hacia ella de forma gradual. Las reglas de liquidación fijan el momento exacto: opciones liquidadas en AM frente a PM muestra cuánto puede importar ese detalle temporal, mientras que volatilidad implícita es la respuesta de esa misma cadena a la magnitud del movimiento, no a su dirección.

Notas y limitaciones de los datos

La delta es un sustituto del precio de Yes, no el mismo objeto. Aproxima la probabilidad neutral al riesgo de vencer in the money y difiere ligeramente de la probabilidad del modelo para el mismo evento. En este análisis, los resultados comparan el precio de cierre de la sesión regular en la fecha de vencimiento con el strike. Esto aproxima la liquidación, pero no reproduce un valor oficial de liquidación. Cada panel de opciones filtra por volatilidad implícita convergente y volumen distinto de cero para ese contrato en esa fecha, por lo que los contratos poco negociados quedan fuera de la muestra. Cada contrato entra una vez en los paneles de calibración, en la observación más cercana a 30 días del vencimiento.

Preguntas frecuentes sobre la fijación de precios de contratos de eventos

¿El precio de un contrato de eventos equivale a una probabilidad?

Es una probabilidad con dos ajustes. La cotización incluye el spread que cobran la plataforma y los market makers. También refleja que el dólar se recibe al momento de la liquidación y no hoy. Si se eliminan ambos factores, lo que queda es la estimación de mercado de las probabilidades de ocurrencia.

¿Qué hace eliminar el vig de un mercado de dos lados?

Reescala los dos puntos medios para que sumen 100%. Suma el mid de Yes y el mid de No, y después divide cada uno por ese total. Un Yes a 64 centavos junto a un No a 38 centavos suma 102 centavos; el par sin vig queda en 62.7% y 37.3%.

¿Por qué los precios de Yes y No suman más de un dólar?

Uno de los dos necesariamente pagará $1.00, por lo que un par sin fricciones costaría exactamente $1.00 en conjunto. Los centavos adicionales del lado ask son el overround, es decir, los ingresos por spread incorporados en un mercado de dos lados. Vender ambos lados, en cambio, deja al operador por debajo de un dólar, con la misma brecha reflejada en sentido inverso.

¿Un contrato con precio de 90 centavos falla una vez de cada diez?

Aproximadamente, si el mercado está bien calibrado para muchos contratos similares. En el panel de SPY anterior, el segmento 90-98% tenía una probabilidad implícita promedio de 94.3% y terminó por encima de su strike 97.8% de las veces. Un contrato individual todavía se liquida en un dólar o en cero.

¿Cuánto cambia un spread amplio la probabilidad implícita?

Aproximadamente, en la medida del spread. Un mercado con un spread de 1 centavo acota las probabilidades dentro de un punto porcentual. Un mercado de 4 centavos deja una banda de 4 puntos, y cualquier probabilidad dentro de esa banda es consistente con la cotización.


Todas las cifras anteriores provienen de una consulta almacenada sobre datos de contratos listados. El SQL detrás de cada panel está disponible con un solo clic. Ejecute el mismo cálculo sin vig contra una cadena en vivo en la terminal de Strasmore.

#prediction markets#event contracts#probability#market mechanics#options