イベント契約価格を確率として読む方法
イベント契約は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は一つのコインの二つの面です。
- Settlement:コントラクトの結果が確定し、いずれか一方が1ドルを受け取る時点。
- Resolution source:コントラクトの決済基準となる、指定された報告書またはデータフィード。実際に起きたことではなく、その情報源が公表した内容に基づいて支払います。
イベント・コントラクトの気配値は、このページのデータセットには含まれていません。以下のすべてのパネルは、直接測定できる範囲で、米国上場株式オプションにおける同一の算術を示しています。コールオプションのデルタは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%に収まります。チャート全体のこの水平線が、すべてのバイナリー市場に課される制約です。両サイドの集計ポジションを示すのが、プット・コール・レシオです。
モデル価格は整合します。しかし、気配値はそうとは限りません。あるコントラクトが買い気配62、売り気配66で、No側が買い気配36、売り気配40だとします。Yesを66、Noを40で買うと、確実に1.00ドルを受け取れるポジションに1.06ドルを支払うことになります。両方を買い気配で売れば、1.00ドルの支払い義務に対して98セントを受け取ります。両方の売り気配の間にある6セントの差がオーバーラウンドです。スポーツベッターが「vig」と呼ぶもので、会場とマーケットメーカーが流動性を提供する対価として受け取ります。ビッド・アスク・スプレッドのページでは、この差がそもそも生じる理由を解説しています。
デビグ計算を段階的に見る
提示された二つの価格から、合計が一になる二つの公正確率を算出します。
- 各サイドのミッドを取ります。Yesのミッドは64セント、Noのミッドは38セントです。
- それらを足します。ブックの合計は102セントです。
- 各ミッドをその合計で割ります。64 / 102は62.7%、38 / 102は37.3%です。
- 合計を確認します。二つを合わせると100%になります。
この再スケーリングがデビグのすべてです。ブックメーカーの10進オッズに対して賭け手が行う正規化と同じです。
次に、よりスプレッドの狭い市場で計算します。同じコントラクトが買い気配63、売り気配64で、Noは買い気配36、売り気配37だとします。ミッドは63.5と36.5で、ブックの合計はちょうど100セントです。デビグ後の確率は63.5%になります。広い市場から得た62.7%と、狭い市場から得た63.5%という二つの答えは、1ポイント未満の差に収まります。しかし、その周辺にある妥当な確率の幅は同じではありません。広い気配値と整合するのは、62セントの買い気配から66セントの売り気配までの任意の確率です。したがって、4セントの市場が示すオッズの精度は約4ポイント以内にとどまり、それ以上ではありません。4セントの市場から「62.7%」と書くのは、市場に含まれていない3桁の精度を示すことになります。スプレッドの広さが精度を決めます。
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%に達した。区分の最下段と最上段では実現割合に大きな差がある。これは、キャリブレーションがおおむね機能している場合の姿である。
このような表には、二つの注意点がある。まず、対象期間が重要だ。主に株価が上昇した期間を対象にすると、すべてのコール区分で実現確率が押し上げられる。別の期間では同じ指標も変わる。次に、デルタが示すのは、価格付けを内部的に整合させる確率であり、予測者が信じる確率ではない。同じオプションチェーンは、一つの閾値ではなく、分布全体を価格に織り込んでいる(期待変動幅)。
市場が五分五分と判断した契約、つまり1ドル当たり約50セントの契約に絞り、代表的な六銘柄を比較する。
各数値の背後にある正確な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%前後となる。一方、実現確率の列にはばらつきがある。4785契約を対象に、SPYは68.4%の割合で行使価格を上回って終了した。これに対し、XOMは49.9%だった。6銘柄で、インプライド確率は共通しているが、実際の結果には大きな幅がある。50セント前後の価格が示すのは、市場が織り込んだ確率だ。個々の契約は、最終的に1.00ドルまたは0.00ドルで決済される。
0.70ドルのコントラクトの損益分岐点はどこか
70セントで購入したコントラクトは、Yesなら1.00ドルを支払い、Noなら何も支払わない。利益は30セント、損失は70セントで、損益分岐確率は価格と正確に一致する。実際の確率が70%なら、このポジションは手順が増えたコイントスにすぎない。70%を上回れば買い手に有利に働き、下回れば不利になる。いずれもコスト控除前の計算である。
コストを加えると、この境界は一様には動かない。70セントのコントラクトに往復コストを1セント加えると、損益分岐点は70%から約71%へ移る。ポジション全体では丸め誤差に近い。一方、5セントのコントラクトに同じ1セントを加えると、損益分岐点は5%から6%へ移る。理論上の優位性の5分の1が失われる。固定手数料は、最も安いロングショットに最大の打撃を与える。支払価格に占める手数料の割合が最も大きくなるためだ。注文の種類も同様である。スプレッドを越えて執行する場合は売り気配値を全額支払う。一方、指値注文を板に置けば、自分で指定した価格で待機できるが、約定しない可能性もある(成行注文と指値注文の違い)。
ほぼ確実な結果が0.97ドルで取引されるのはなぜか
誰も異論を唱えない結果でも、1.00ドルで取引されることはほとんどない。最後の3セントには、次の四つの要因が含まれている。
- 貨幣の時間価値。 1ドルを受け取るのは決済時点である。3カ月後に1.00ドルを受け取る権利に今日97セントを支払うことは、資本に対するリターンであり、その現金には他の使い道もある(遊休資金の置き場)。
- 決済情報源のリスク。 契約は、指定された情報源が公表する内容と、その情報源が定めるスケジュールに基づいて決済される。合意された結果であっても、修正、遅延、曖昧な文言が残る。
- スプレッドそのもの。 96セントの買い気配と98セントの売り気配が提示された市場では、ミッドは97セントだが、97セントでの約定はない。パーセンテージで見ると、板のスプレッドは両端で最も広くなりやすい。
- テールリスク。 「確実」という言葉は曖昧に使われる。契約はルールブックの定義に基づいて決済される。
収束は測定できる。満期の1カ月前に、表裏が出る確率に近い価格で取引されていた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決済のオプションでは、そのタイミングの違いがどれほど重要になり得るかを示している。また、インプライド・ボラティリティは、方向ではなく規模に対する同じチェーンの答えである。
データに関する注記と限界
デルタはYes価格の代替指標であり、同じものではない。イン・ザ・マネーで満期を迎えるリスク中立確率を近似するが、同じ事象に対するモデル上の確率とはわずかに異なる。ここでの結果は、満期日の通常取引時間終了時の終値と行使価格を比較したものだ。これは決済を近似するが、公式の決済値をそのまま再現するものではない。各オプションのパネルでは、その契約について当該日にインプライド・ボラティリティが収束しており、かつ出来高がゼロではないものに限定している。そのため、取引が少ない契約はサンプルから除外される。各契約がキャリブレーション用のパネルに入るのは、満期まで約30日に最も近いスナップショットの一度だけである。
イベント契約の価格に関するFAQ
イベント契約の価格は確率と同じですか?
確率に二つの調整を加えたものです。気配値には、取引所とマーケットメーカーが請求するスプレッドが含まれます。また、現在受け取る1ドルではなく、決済時に受け取る1ドルを価格に織り込んでいます。これらを除けば、残るのは市場が形成した成立確率の推計値です。
両サイド市場のデビギングでは何をしますか?
YesとNoのミッド価格を、合計が100%になるように再調整します。Yesのミッド価格とNoのミッド価格を足し、その合計でそれぞれを割ります。Yesが64セント、Noが38セントなら合計は102セントで、デビギング後は62.7%と37.3%になります。
YesとNoの価格を合計すると、なぜ1ドルを超えるのですか?
二つのうち一方は必ず1.00ドルを支払うため、摩擦のない組み合わせなら合計価格はちょうど1.00ドルになります。買い気配側に上乗せされた数セントがオーバーラウンドです。これは両サイド市場に組み込まれたスプレッド収入に当たります。両サイドを売却すると、同じ差額を裏返した形で、1ドル未満の受取額になります。
90セントで価格付けされた契約は、10回に1回は外れますか?
多くの類似契約を対象に市場が十分に較正されているなら、おおむねその通りです。上記のSPYパネルでは、90-98%の区分の平均的なインプライド確率は94.3%で、97.8%の割合で権利行使価格を上回って終了しました。ただし、個別の契約は1ドルまたはゼロで決済されます。
スプレッドが広いと、インプライド確率はどの程度変わりますか?
おおむねスプレッドの幅と同じだけ変わります。1セントの市場では、確率は1ポイント以内に絞られます。4セントの市場では4ポイントの範囲が残り、その範囲内のすべての確率が気配値と整合します。
上記の数値はすべて、上場契約データに対する保存済みクエリから取得しています。各パネルの背後にあるSQLにはワンクリックでアクセスできます。Strasmore terminalのリアルタイムのチェーンに対して、同じデビギング計算を実行してください。