Цена событийного контракта как вероятность исхода
Событийный контракт приносит один доллар или ноль, поэтому его цена отражает вероятность. Узнайте, почему сумма цен контрактов Да и Нет превышает один доллар и как убрать спред.
Цена контрактного события представляет собой вероятность с учетом спреда. Контракт приносит один доллар при наступлении указанного исхода и ноль долларов в противном случае; именно эта фиксированная выплата определяет математику процесса: тридцать центов за контракт с выплатой в один доллар означают, что рынок оценивает вероятность события примерно в тридцать процентов. +6% vs spot Для корректной интерпретации этого показателя требуется внести одну поправку на спред и одну — на механику расчетов.
О чём говорит цена событийного контракта с точки зрения вероятности
Всё определяется выплатой. Вы покупаете контракт «Да» по цене p и получаете один доллар, если событие происходит, и ничего, если оно не происходит. При многократном повторении средняя выплата равна истинной вероятности исхода «Да». Если вы платите ровно эту вероятность, вы выходите в безубыток. Уплаченная цена и есть вероятность безубыточности, поэтому одно число выполняет обе функции.
Четыре термина, определённые один раз:
- Контракт «Да»: выплачивает один доллар при наступлении события и ноль долларов в противном случае.
- Контракт «Нет»: выплачивает один доллар, если событие не наступает. «Да» и «Нет» — это две стороны одной медали.
- Расчёт: момент, когда контракт исполняется и одна из сторон получает доллар.
- Источник данных для расчёта: указанный отчёт или лента, на основе которых происходит расчёт по контракту. Выплата производится на основании данных этого источника, а не фактического положения дел.
Котировки событийных контрактов не входят в набор данных на этой странице. Каждая панель ниже измеряет идентичную арифметику там, где её можно измерить напрямую — в листинговых опционах на акции США. Дельта call-опциона варьируется от нуля до единицы и аппроксимирует рыночные шансы на то, что контракт истечёт «в деньгах». Это тот же бинарный вопрос, который задаёт событийный контракт: окажется ли цена выше уровня исполнения на дату расчёта или нет. Дельта является аппроксимацией этой вероятности, причём риск-нейтральной, а не прогнозной. Оба предела представлены на панелях. Руководство по дельта опциона описывает этот показатель.
Почему сумма Yes и No превышает один доллар?
Контракты Yes и соответствующий им No покрывают всё пространство возможных исходов, при этом выплату получает ровно один из них. В цепочке опционов эта пара представляет собой call и put с одной ценой исполнения и одной датой экспирации: call оказывается в деньгах выше страйка, а put — ниже него. Сумма их вероятностей должна составлять сто процентов. Ниже представлена такая пара для одной цепочки SPY за один день, сгруппированная в двухпроцентные диапазоны вокруг текущей спотовой цены.
Точный SQL-код для каждого числа
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На уровне -8% vs spot сторона call котируется как 91.6%, а сторона put — как 7.8%, что в сумме дает 99.5%. На дальнем конце лестницы, +6% vs spot, значения составляют 3.6% и 82.5%, в сумме 86.2%. Все 8 диапазонов укладываются в сто процентов с учетом округления. Эта ровная линия на графике — ограничение, в рамках которого существует любой бинарный рынок. Совокупное позиционирование по обеим сторонам — это то, что учитывает put call ratio.
Модельные значения ведут себя предсказуемо. Котировки — нет. Допустим, контракт котируется по 62 на покупку и 66 на продажу, а его сторона No — по 36 на покупку и 40 на продажу. Купив Yes по 66 и No по 40, вы платите один доллар и шесть центов за позицию, которая гарантированно принесет один доллар. Продав оба контракта по ценам спроса, вы получаете девяносто восемь центов при обязательстве в один доллар. Разрыв в шесть центов между двумя ценами предложения — это оверраунд, величина, которую игроки на ставках называют «виг» (маржа), и именно за это площадка и маркет-мейкер получают вознаграждение за поддержание ликвидности. Страница bid ask spread объясняет, почему этот разрыв вообще существует.
Арифметика устранения маржи (de-vig), шаг за шагом
На входе — две котировки. На выходе — две справедливые вероятности, сумма которых равна единице.
- Возьмите среднее значение для каждой стороны. Среднее для «Да» составляет шестьдесят четыре цента, среднее для «Нет» — тридцать восемь центов.
- Сложите их. Итоговая сумма по книге составляет сто два цента.
- Разделите каждое среднее значение на эту сумму. Шестьдесят четыре, деленное на сто два, дает шестьдесят две целых и семь десятых процента. Тридцать восемь, деленное на сто два, дает тридцать семь целых и три десятых процента.
- Проверьте сумму. Теперь пара составляет сто процентов.
Это масштабирование и есть то, что означает устранение маржи (de-vig), и это та же нормализация, которую игрок применяет к десятичным коэффициентам.
Теперь применим это к более узкому рынку. Котировка по тому же контракту: шестьдесят три на покупку (bid) и шестьдесят четыре на продажу (ask), при этом «Нет» — тридцать шесть на покупку и тридцать семь на продажу. Средние значения составляют шестьдесят три с половиной и тридцать шесть с половиной, сумма по книге составляет ровно сто центов, а вероятность после устранения маржи равна шестидесяти трем с половиной процентам. Два результата — шестьдесят две целых и семь десятых процента на широком рынке и шестьдесят три с половиной процента на узком — различаются менее чем на один процентный пункт. Однако диапазон достоверности вокруг них — нет. Любая вероятность между ценой покупки в шестьдесят два цента и ценой продажи в шестьдесят шесть центов согласуется с широкой котировкой, поэтому рынок с четырехцентовым спредом фиксирует шансы с точностью лишь около четырех пунктов, не более. Запись «шестьдесят две целых и семь десятых процента» для четырехцентового рынка указывает три значащие цифры точности, которых рынок не содержит. Ширина спреда и есть точность. +6% vs spot
Означает ли цена в тридцать процентов, что событие происходит в тридцати процентах случаев?
Калибровка — это проверка: мы собираем все инструменты, которые рынок оценил близко к тридцати процентам, а затем подсчитываем, как часто они исполнялись. Мы взяли каждый call-опцион на SPY из архива с января две тысячи двадцать второго года, зафиксировали данные примерно за тридцать дней до экспирации, распределили их по корзинам подразумеваемой вероятности и сопоставили с тем, закрылся ли SPY выше страйка в день экспирации.
Точный SQL-код для каждого числа
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Столбец подразумеваемой вероятности растет по мере продвижения вверх по шкале в силу самой конструкции модели. Столбец реализованной вероятности — это то, чего никто не знал заранее. В нижней части корзина 2-10% имела среднее значение 4.7% при 4276 контрактах и закрывалась выше страйка в 4.9% случаев. В верхней части 90-98% имела среднее значение 94.3% и результат 97.8%. Реализованная доля в нижней части шкалы значительно ниже, чем в верхней, что и является признаком того, что калибровка работает корректно.
К любой подобной таблице прилагаются два предостережения. Важен временной интервал: выборка, охватывающая преимущественно растущий рынок, завышает реализованные показатели для всех call-опционов, а другой период изменит эти значения. Кроме того, дельта отвечает на вопрос, какая вероятность делает ценообразование внутренне непротиворечивым, а не на то, во что верит прогнозист. Одна и та же цепочка опционов оценивает целое распределение, а не один порог (ожидаемое движение).
Сузим выборку до контрактов, которые рынок оценил как «подбрасывание монеты» (около пятидесяти центов на доллар) для шести известных компаний:
Точный SQL-код для каждого числа
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Подразумеваемая вероятность в каждой строке близка к пятидесяти процентам в силу конструкции. Реализованные показатели различаются: SPY закрывался выше страйка в 68.4% случаев при 4785 контрактах, по сравнению с 49.9% для XOM. 6 наименований, одна общая подразумеваемая вероятность и широкий разброс фактических результатов. Цена около пятидесяти центов отражает рыночные шансы. При этом любой отдельный контракт в итоге всегда оценивается либо в один доллар, либо в ноль.
Какова точка безубыточности для контракта стоимостью 0,70 доллара?
Контракт, купленный за 70 центов, приносит 1,00 доллар при исходе «Да» и ничего при исходе «Нет». Прибыль составляет 30 центов, убыток — 70 центов, а вероятность безубыточности в точности равна цене контракта. При реальной вероятности в семьдесят процентов позиция превращается в подбрасывание монеты с дополнительными условиями. Выше семидесяти процентов арифметика работает в пользу покупателя, ниже — против него, и это без учета издержек.
Издержки неравномерно смещают эту границу. Добавьте один цент комиссии за полный цикл сделки к контракту стоимостью 70 центов, и точка безубыточности сместится с 70% примерно до 71%, что является погрешностью округления для данной позиции. Добавьте тот же цент к контракту стоимостью 5 центов, и точка безубыточности сдвинется с 5% до 6%, поглотив пятую часть теоретического преимущества. Фиксированные комиссии наносят наибольший ущерб самым дешевым ставкам на маловероятные события, где комиссия составляет значительную долю от уплаченной цены. Тип ордера работает аналогичным образом: исполнение по рынку (crossing the spread) означает покупку по полной цене предложения (ask), в то время как отложенный лимитный ордер ожидает исполнения по указанной вами цене и может вовсе не сработать (рыночный ордер против лимитного ордера).
Почему почти гарантированный результат торгуется по 0,97 доллара?
Результат, который никто не оспаривает, редко торгуется по 1,00 доллару. В этих трех центах разницы кроются четыре фактора:
- Временная стоимость денег. Доллар поступит на счет только в момент исполнения контракта. Выплата 97 центов сегодня за 1,00 доллар через три месяца — это доход на капитал, а эти средства можно использовать иначе (размещение свободных денежных средств).
- Риск источника данных. Контракт исполняется на основе данных указанного источника и по его графику. Пересмотры, задержки и неоднозначные формулировки остаются актуальными рисками даже при очевидном исходе.
- Сам спред. Если котировка составляет 96 на покупку и 98 на продажу, средняя цена равна 97 центам, но сделок по 97 центам нет. В процентном выражении стакан часто наиболее разрежен именно на краях диапазона.
- «Хвост» вероятностей. Слово «гарантированный» люди используют неточно. Контракты исполняются согласно определениям в правилах.
Сходимость цен поддается измерению. Возьмем call-опционы на SPY, которые за месяц до экспирации оценивались как равновероятные события, разделим их по фактическому результату и проследим среднюю подразумеваемую вероятность в шести контрольных точках.
Точный SQL-код для каждого числа
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В точке 30 days out контракты, которые в итоге закрылись выше цены исполнения, имели среднюю подразумеваемую вероятность 52.6% против 47.8% для тех, что закрылись ниже. К моменту 1 day out показатели для этих двух групп составили 79.8% и 14.4%. Это разделение проведено ретроспективно. Никто, анализируя опционную цепочку в первой контрольной точке, не мог отличить одну группу от другой — именно в таком состоянии всегда находится активный контракт на событие. Уверенность наступает в дату исполнения, а цена движется к ней постепенно. Правила исполнения фиксируют точный момент: опционы с утренним и вечерним расчетом показывают, насколько важна эта деталь, а подразумеваемая волатильность — это ответ той же цепочки на вопрос о масштабе движения, а не о его направлении.
Примечания к данным и ограничения
Дельта является суррогатом цены «Да», а не идентичным показателем. Она аппроксимирует риск-нейтральные шансы на экспирацию в деньгах и незначительно отличается от модельной вероятности того же события. Результаты здесь сравнивают цену закрытия основной сессии в день экспирации с ценой исполнения, что приближенно отражает расчет, а не воспроизводит официальную цену исполнения. Каждая опционная панель фильтруется по сходимости подразумеваемой волатильности и ненулевому объему торгов по контракту в эту дату, поэтому неликвидные контракты исключаются из выборки. Каждый контракт попадает в калибровочные панели один раз, по состоянию на момент, максимально близкий к тридцати дням до экспирации.
Часто задаваемые вопросы о ценообразовании событийных контрактов
Является ли цена событийного контракта вероятностью?
Это вероятность, скорректированная двумя факторами. Котировка включает спред, взимаемый торговой площадкой и маркет-мейкерами, а также дисконтирование доллара, который будет получен при расчёте, а не сегодня. Если исключить эти составляющие, останется рыночная оценка вероятности наступления события.
Что даёт очистка от маржи (de-vigging) в двустороннем рынке?
Она пересчитывает две средние цены так, чтобы их сумма составляла сто процентов. Сложите среднюю цену «Да» и среднюю цену «Нет», а затем разделите каждую на полученную сумму. Если цена «Да» составляет шестьдесят четыре цента, а «Нет» — тридцать восемь центов, в сумме получается сто два цента. После очистки пара составит шестьдесят две целых и семь десятых процента и тридцать семь целых и три десятых процента.
Почему цены «Да» и «Нет» в сумме дают больше доллара?
Один из двух вариантов обязательно принесёт один доллар, поэтому пара без учёта издержек должна стоить ровно один доллар. Лишние центы на стороне аска — это оверраунд, то есть доход от спреда, заложенный в двусторонний рынок. Продажа обеих сторон, напротив, даст сумму меньше доллара, зеркально отражая тот же разрыв.
Означает ли цена контракта в девяносто центов, что он не срабатывает один раз из десяти?
Примерно так, если рынок хорошо откалиброван на множестве схожих контрактов. В панели SPY выше корзина 90-98% имела среднюю подразумеваемую вероятность 94.3% и закрылась выше страйка в 97.8% случаев. Отдельный контракт всё равно исполняется либо по цене в один доллар, либо по нулю.
Насколько широкий спред меняет подразумеваемую вероятность?
Примерно на величину спреда. Рынок с одноцентовым спредом фиксирует вероятность с точностью до одного пункта. Рынок с четырёхцентовым спредом оставляет диапазон в четыре пункта, и любая вероятность внутри этого диапазона соответствует котировке.
Каждое число выше получено из сохранённого запроса по данным листинговых контрактов; SQL-код для каждой панели доступен по одному клику. Выполните те же вычисления по очистке от маржи для актуальной цепочки контрактов в терминале Strasmore.