이벤트 계약 가격은 확률인가
이벤트 계약은 1달러 또는 0달러로 결제되므로 가격이 확률을 나타냅니다. Yes와 No의 합이 1달러를 넘는 이유와 스프레드를 제거하는 방법을 설명합니다.
이벤트 계약 가격은 스프레드가 반영된 확률이다. 계약에 명시된 결과가 발생하면 $1.00를 지급하고, 발생하지 않으면 $0.00를 지급한다. 이처럼 지급액이 고정되어 있어 계산이 성립한다. 1달러를 지급하는 계약의 가격이 30센트라면 시장은 해당 결과가 발생할 확률을 대략 30%로 제시하는 셈이다. 이 수치를 정확히 해석하려면 스프레드와 결제 방식이라는 두 가지 요소를 조정해야 한다.
이벤트 계약 가격이 확률에 대해 말해주는 것
모든 것은 지급 구조에서 출발한다. 가격이 p인 Yes 계약을 매수하면 결과가 Yes로 확정될 경우 $1.00를 받고, No로 확정되면 아무것도 받지 못한다. 같은 거래를 여러 번 반복하면 평균 지급액은 Yes가 될 실제 확률과 같다. 그 확률만큼 정확히 지불하면 손익분기점에 도달한다. 지불한 가격 자체가 손익분기 확률이므로, 하나의 숫자가 두 역할을 함께 한다.
네 가지 용어를 한 번만 정의한다.
- Yes 계약: 결과가 발생하면 $1.00를 지급하고, 그렇지 않으면 $0.00를 지급하는 계약이다.
- No 계약: 결과가 발생하지 않으면 $1.00를 지급하는 계약이다. Yes와 No는 하나의 동전을 이루는 양면과 같다.
- 결제: 계약이 확정되고 한쪽이 1달러를 받는 시점이다.
- 확정 기준 출처: 계약의 결제 기준이 되는 명시된 보고서 또는 피드다. 실제로 무슨 일이 일어났는지가 아니라 해당 출처가 밝힌 내용에 따라 지급한다.
이벤트 계약 호가는 이 페이지의 데이터 세트에 포함되지 않는다. 아래의 모든 패널은 직접 측정할 수 있는 경우 동일한 산술을 상장 미국 주식 옵션으로 측정한다. 콜옵션의 델타는 0에서 1 사이이며, 해당 계약이 내가격으로 만기될 시장의 확률을 근사한다. 이는 이벤트 계약이 묻는 이진 질문과 같다. 결제일에 기준선 위에 있는가, 아니면 그렇지 않은가. 델타는 해당 확률의 근사치이며, 예측치가 아니라 위험중립 확률이다. 두 가지 한계는 모두 패널에 나타난다. 옵션 델타 가이드에서 이 측정치 자체를 설명한다.
Yes와 No의 합이 $1를 초과하는 이유
Yes와 이에 대응하는 No는 가능한 결과 전체를 포괄하며, 둘 중 정확히 하나만 지급된다. 옵션 체인에서는 같은 조합이 하나의 행사가격과 하나의 만기를 기준으로 한 콜옵션과 풋옵션이다. 주가가 행사가격을 웃돌면 콜옵션이 내가격이 되고, 밑돌면 풋옵션이 내가격이 된다. 두 옵션의 확률 합은 100%가 되어야 한다. 다음은 어느 하루의 SPY 옵션 체인에서 현물 가격을 중심으로 2% 구간으로 나눈 해당 조합이다.
모든 수치 뒤에 숨겨진 정확한 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에서 콜 측은 91.6%, 풋 측은 7.8%로 표시되며, 두 값의 합은 99.5%이다. 사다리의 가장 먼 구간인 +6% vs spot에서는 두 값이 각각 3.6%와 82.5%으로, 합계는 86.2%이다. 전체 8개 구간의 합은 반올림 오차 범위 안에서 100이 된다. 차트 전체에 나타나는 이 평평한 선이 모든 바이너리 시장이 따라야 하는 제약이다. 양쪽의 총 포지션은 풋콜 비율이 집계한다.
모델 값은 정상적으로 움직인다. 호가는 그렇지 않다. 어떤 계약의 호가가 매수 Q, 매도 Q이고, No 측 호가가 매수 Q, 매도 Q라고 하자. Yes를 Q에 매수하고 No를 Q에 매수하면, 확정적으로 $1.00를 돌려받는 포지션에 $1.06를 지불한 셈이다. 두 계약을 매수 호가에 매도하면 $1.00의 지급 의무에 대해 98센트를 받게 된다. 두 매도 호가 사이의 6센트 차이가 오버라운드다. 스포츠 베터가 비그라고 부르는 금액이며, 거래소와 시장조성자가 해당 시장에 유동성을 제공하는 대가로 받는다. 매수 매도 스프레드 페이지에서 이 차이가 발생하는 이유를 설명한다.
디빅 산술, 단계별 계산
양쪽 호가를 입력하면 합계가 1이 되는 두 개의 공정확률이 나온다.
- 양쪽 호가의 중간값을 구한다. Yes의 중간값은 64센트이고 No의 중간값은 38센트다.
- 두 값을 더한다. 해당 시장의 합계는 102센트다.
- 각 중간값을 합계로 나눈다. 64 / 102는 62.7%이고 38 / 102는 37.3%다.
- 합계를 확인한다. 두 확률의 합은 이제 100%다.
이러한 재조정이 디빅(de-vigging)의 전부다. 베터가 소수 배당률에 적용하는 정규화와 같은 방식이다.
이제 스프레드가 더 좁은 시장에 적용해 보자. 같은 계약의 Yes 호가가 매수 63센트, 매도 64센트이고 No 호가가 매수 36센트, 매도 37센트라고 하자. 중간값은 각각 63.5센트와 36.5센트다. 시장 합계는 정확히 100센트이고, 디빅 후 확률은 63.5%다. 넓은 시장에서 계산한 62.7%와 좁은 시장에서 계산한 63.5%는 1%포인트도 차이 나지 않는다. 그러나 두 값 주변의 합리적인 범위는 그렇지 않다. 넓은 호가에서는 62센트 매수호가부터 66센트 매도호가까지의 모든 확률이 일관될 수 있다. 따라서 4센트 스프레드는 확률을 약 4%포인트 범위로만 좁힐 뿐, 그 이상으로 정밀하게 제시하지는 못한다. 4센트 스프레드의 시장에서 “62.7%”라고 쓰는 것은 시장에 없는 세 자리 정밀도를 부여하는 것이다. 스프레드 폭이 곧 정밀도다.
가격이 30%라는 것은 실제로 30%의 확률로 발생한다는 뜻인가?
검증이 기준이다. 시장이 약 30%로 가격에 반영한 모든 사례를 모은 뒤, 실제로 얼마나 자주 발생했는지 집계한다. 2022년 1월 이후 기록된 모든 SPY 콜옵션 계약을 대상으로 했다. 각 계약은 만기 약 30일 전에 시점을 고정하고, 내재확률 구간별로 분류했다. 이후 만기일에 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% 구간은 4276개 계약에서 내재확률 평균이 4.7%였고, 실제로 4.9%의 비율로 행사가격을 웃돌았다. 상단의 90-98% 구간은 내재확률 평균이 94.3%였으며, 실제 도달 비율은 97.8%였다. 구간 하단의 실현 비율이 상단보다 크게 낮게 나타난다. 내재확률이 대체로 실제 결과와 부합할 때 나타나는 보정 양상이다.
이와 같은 표에는 두 가지 유의사항이 따른다. 우선 분석 기간이 중요하다. 주로 가격이 상승한 기간을 표본으로 삼으면 모든 콜옵션 구간에서 실현확률이 높아진다. 다른 기간을 사용하면 같은 측정값도 달라진다. 또한 델타는 가격결정이 내부적으로 일관성을 갖추려면 어떤 확률이 필요한지를 보여줄 뿐, 어떤 예측자가 믿는 확률을 나타내지는 않는다. 동일한 옵션 체인은 하나의 기준선이 아니라 전체 분포를 가격에 반영한다(예상 변동폭).
시장 가격이 동전 던지기와 비슷한 결과를 가리킨 계약, 즉 달러당 약 50센트 수준의 계약으로 범위를 좁혀 6개 대표 종목을 비교했다.
모든 수치 뒤에 숨겨진 정확한 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내재확률은 구조적으로 모든 행에서 약 50%에 머문다. 실현확률 열은 크게 벌어진다. SPY은 4785개 계약에서 68.4%의 비율로 행사가격을 웃돌았다. 반면 49.9%의 비율을 기록한 종목은 XOM였다. 6개 종목이 동일한 내재확률을 공유했지만, 실제 결과의 범위는 넓게 나타났다. 약 50센트의 가격은 시장이 반영한 승산을 설명한다. 그러나 개별 계약은 여전히 $1.00 또는 $0.00으로 결제된다.
0.70달러 계약의 손익분기점은 얼마인가?
70센트에 매수한 계약은 Yes에 1.00달러를 지급하고 No에는 아무것도 지급하지 않는다. 수익은 30센트, 손실은 70센트이며 손익분기 확률은 정확히 가격과 같다. 실제 확률이 70%라면 이 포지션은 여러 절차를 거친 동전 던지기와 같다. 70%를 웃돌면 매수자에게 유리하고, 밑돌면 불리하다. 이는 비용을 반영하기 전 기준이다.
비용은 이 기준선을 균등하게 움직이지 않는다. 70센트 계약에 왕복 비용 1센트를 더하면 손익분기점은 70%에서 약 71%로 이동한다. 포지션 전체에서는 반올림 오차에 가깝다. 같은 1센트를 5센트 계약에 더하면 손익분기점은 5%에서 6%로 올라간다. 이론상 기대수익의 5분의 1이 사라지는 셈이다. 고정 수수료는 가장 저렴한 고확률 외 계약에 가장 큰 타격을 준다. 수수료가 지불 가격에서 차지하는 비중이 가장 크기 때문이다. 주문 유형도 같은 방식으로 작용한다. 스프레드를 넘어서 체결되는 시장가 주문은 매도호가 전액을 지불한다. 반면 대기 중인 지정가 주문은 투자자가 정한 가격에 머물며, 끝내 체결되지 않을 수도 있다([ [market-order-vs-limit-order|시장가 주문과 지정가 주문] ]).
거의 확실한 결과가 왜 $0.97에 거래되는가?
아무도 이견을 제기하지 않는 결과도 $1.00에 거래되는 경우는 드물다. 마지막 3센트에는 네 가지 요소가 반영되어 있다.
- 화폐의 시간가치. 1달러는 결제일에 들어온다. 지금 97센트를 내고 3개월 뒤 $1.00를 받는 것은 자본 수익이며, 해당 현금에는 다른 용도(유휴 현금 운용)도 있다.
- 결과 확인 출처 위험. 계약은 지정된 출처가 보고하는 내용과 해당 출처의 일정에 따라 결제된다. 합의된 결과라 하더라도 수정, 지연, 모호한 표현의 위험은 남는다.
- 스프레드 자체. 매수호가가 96센트, 매도호가가 98센트인 시장은 중간값이 97센트일 뿐, 97센트에 체결된 거래가 없을 수 있다. 백분율 기준으로 호가창의 스프레드는 양 끝 구간에서 가장 넓은 경우가 많다.
- 꼬리위험. 사람들은 ‘확실하다’는 말을 느슨하게 사용한다. 계약은 규정집에 명시된 정의에 따라 결제된다.
수렴 과정은 측정할 수 있다. 만기 한 달 전 동전 던지기와 비슷한 확률로 가격이 형성된 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) DESC30 days out 시점에 최종적으로 행사가격을 웃돈 계약의 평균 내재확률은 52.6%였다. 반면 그렇지 않은 계약은 47.8%였다. 1 day out 시점에는 같은 두 그룹의 수치가 각각 79.8%과 14.4%로 나타났다. 이 구분은 사후적으로 그어진 것이다. 첫 번째 시점에 옵션 체인을 읽는 사람은 두 그룹을 구별할 수 없었다. 실제 이벤트 계약도 언제나 같은 상태에 있다. 확실성은 결제일에 도달하고, 가격은 그때까지 점진적으로 수렴한다. 결제 규정은 정확한 시점을 정한다. AM 결제 옵션과 PM 결제 옵션은 이러한 시간 차이가 얼마나 중요한지 보여준다. 내재변동성은 방향이 아니라 규모에 대한 같은 옵션 체인의 답이다.
데이터 참고사항 및 한계
Delta는 Yes 가격의 대용치일 뿐, 같은 대상은 아니다. Delta는 만기 시 내가격으로 끝날 위험중립 확률을 근사하며, 같은 사건에 대한 모형 확률과는 약간 다르다. 여기서 결과는 만기일 정규장 종가와 행사가격을 비교한 것이다. 따라서 공식 결제값을 그대로 재현하지는 않지만 결제 결과를 근사한다. 모든 옵션 패널은 해당 날짜에 해당 계약의 수렴된 내재변동성과 0이 아닌 거래량을 기준으로 필터링한다. 따라서 거래가 뜸한 계약은 표본에서 제외된다. 각 계약은 만기까지 남은 기간이 30일에 가장 가까운 스냅샷에서 한 번만 보정 패널에 포함된다.
이벤트 계약 가격 FAQ
이벤트 계약 가격은 확률과 같은가?
확률에 두 가지 조정이 반영된 값이다. 호가에는 거래소와 market maker(시장조성자)가 부과하는 스프레드가 포함되며, 현재 받는 1달러가 아니라 결제 시점에 받는 1달러를 기준으로 가격이 산정된다. 두 요소를 모두 제거하면 시장이 산출한 당첨 확률 추정치가 남는다.
양방향 시장에서 디비깅(de-vigging)은 무엇을 하는가?
두 중간 호가를 재조정해 합계가 100%가 되도록 한다. Yes 중간 호가와 No 중간 호가를 더한 뒤, 각각을 그 합계로 나눈다. Yes가 64센트이고 No가 38센트라면 합계는 102센트이며, 디비깅한 값은 각각 62.7%와 37.3%다.
Yes와 No 가격의 합계가 1달러를 초과하는 이유는 무엇인가?
두 계약 중 하나는 반드시 1.00달러를 지급하므로, 마찰이 없는 시장에서는 두 계약의 가격을 합한 금액이 정확히 1.00달러가 되어야 한다. 매도 측에 붙은 추가 센트가 오버라운드(overround)이며, 양방향 시장에 내재된 스프레드 수익이다. 반대로 양쪽 계약을 모두 매도하면 같은 격차가 반영돼 합계가 1달러에 못 미친다.
90센트에 거래되는 계약은 열 번 중 한 번 실패하는가?
비슷한 계약이 다수 거래되고 시장이 충분히 보정돼 있다면 대체로 그렇다. 위 SPY 패널에서 90-98% 구간의 평균 내재확률은 94.3%였고, 실제로 97.8%의 비율로 행사가를 상회하며 종료됐다. 다만 개별 계약은 여전히 1달러 또는 0달러로 결제된다.
스프레드가 넓으면 내재확률은 얼마나 달라지는가?
대체로 스프레드 폭만큼 달라진다. 스프레드가 1센트인 시장에서는 확률이 1%포인트 범위로 좁혀진다. 스프레드가 4센트인 시장에서는 4%포인트 구간이 남으며, 해당 구간 안의 모든 확률이 그 호가와 양립할 수 있다.
위에 제시한 모든 수치는 상장 계약 데이터를 대상으로 저장된 쿼리에서 산출됐으며, 각 패널의 SQL도 한 번의 클릭으로 확인할 수 있다. Strasmore terminal(터미널)에서 실시간 체인에 동일한 디비깅 산식을 적용해 보라.