מחירי חוזי אירוע כהסתברויות
חוזה אירוע משלם $1 או $0, ולכן המחיר משקף הסתברות. גלו מדוע Yes ו-No עולים יחד יותר מ-$1 וכיצד לנכות את ה-spread כדי לקבל אומדן מדויק יותר.
מחירו של חוזה אירוע משקף הסתברות, בתוספת spread. החוזה משלם $1.00 אם התוצאה המצוינת מתרחשת, ו-$0.00 אם לא. התשלום הקבוע הוא שמאפשר את החישוב: מחיר של 30 סנט עבור חוזה שמשלם דולר משקף בקירוב הסתברות של 30%, כפי שהשוק מתמחר אותה. כדי לפרש את המספר באופן מדויק, יש להביא בחשבון התאמה אחת עבור ה-spread והתאמה נוספת עבור המנגנון העומד בבסיס הסליקה.
מה שמחירו של חוזה אירוע אומר על ההסתברות
הכול נובע מהתשלום. רוכשים חוזה Yes במחיר p ומקבלים $1.00 אם התוצאה נקבעת כ-Yes, ושום דבר אם היא נקבעת כ-No. לאחר חזרות רבות, התשלום הממוצע שווה להסתברות האמיתית ל-Yes. אם משלמים בדיוק את ההסתברות הזו, מגיעים לאיזון. המחיר ששולם הוא הסתברות האיזון, ולכן אותו מספר משמש לשני התפקידים.
ארבעה מונחים, המוגדרים פעם אחת:
- חוזה Yes: משלם $1.00 אם האירוע מתרחש, ו-$0.00 אחרת.
- חוזה No: משלם $1.00 אם האירוע אינו מתרחש. Yes ו-No הם שני צדדים של אותו מטבע.
- סילוק: הרגע שבו החוזה מוכרע ואחד הצדדים מקבל את הדולר.
- מקור ההכרעה: הדוח או פיד הנתונים הנקוב, שעל פיו החוזה מסולק. התשלום נקבע לפי מה שמקור זה מציין, ולא לפי מה שאירע בפועל.
ציטוטי המחירים של חוזי אירוע אינם חלק ממערך הנתונים שעליו מבוסס עמוד זה. כל אחד מהלוחות שלהלן מודד את אותו חישוב בדיוק, במקום שבו ניתן למדוד אותו ישירות: באופציות מניות סחירות בארה״ב. ה-delta של אופציית Call נע בין 0 ל-1 ומקרב את הסתברות השוק לכך שהחוזה יפקע בתוך הכסף — אותה שאלה בינארית שחוזה אירוע מציג: האם הנכס יהיה מעל הקו במועד הסילוק, או לא. Delta הוא קירוב להסתברות הזו, והוא הסתברות ניטרלית לסיכון ולא תחזית. שני המגבלות הללו באות לידי ביטוי בלוחות. המדריך בנושא delta של אופציות מסביר את המדד עצמו.
מדוע ההימור על Yes וההימור על No מסתכמים ביותר מ־$1?
Yes וה־No התואמים לו מכסים את כל מרחב התוצאות, ורק אחד מהם משלם. בשרשרת אופציות, אותו זוג הוא אופציית Call ואופציית Put באותו מחיר מימוש ובאותו מועד פקיעה: ה־Call מסיים בתוך הכסף מעל מחיר המימוש, וה־Put מסיים בתוך הכסף מתחתיו. ההסתברויות שלהם חייבות להסתכם ב־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 צד ה־Call מציג 91.6% וצד ה־Put מציג 7.8%, כך שסך הזוג הוא 99.5%. בקצה הרחוק של הסולם, +6% vs spot, שני הצדדים מציגים 3.6% ו־82.5%, ובסך הכול 86.2%. כל 8 הטווחים נמצאים, לאחר עיגול, סביב 100. הקו האופקי לאורך התרשים הוא האילוץ שכל שוק בינארי כפוף לו. הפוזיציות המצרפיות בשני הצדדים הן הנתון שיחס ה־Put Call מונה.
ערכי מודל מתנהגים כמצופה. הציטוטים אינם. נניח שחוזה מצוטט ב־62 בצד ה־bid וב־66 בצד ה־ask, ובצד ה־No שלו יש 36 ב־bid ו־40 ב־ask. אם קונים Yes ב־66 ו־No ב־40, משלמים $1.06 עבור פוזיציה שמובטח כי תחזיר $1.00. אם מוכרים את שניהם במחירי ה־bid, מקבלים 98 סנט מול התחייבות של $1.00. הפער של 6 סנט בין שני מחירי ה־ask הוא ה־overround, הסכום שמהמרי ספורט מכנים vig, והוא התשלום של הזירה ושל עושה השוק עבור הנכונות להעמיד מחירים. העמוד על מרווח ה־bid-ask מסביר מדוע הפער הזה קיים מלכתחילה.
חישוב הסרת המרווח, שלב אחר שלב
מזינים שתי הצעות מחיר ומקבלים שתי הסתברויות הוגנות שסכומן אחד.
- לוקחים את אמצע המרווח בכל צד. אמצע ה-Yes הוא 64 סנט, ואמצע ה-No הוא 38 סנט.
- מחברים ביניהם. הספר מסתכם ב-102 סנט.
- מחלקים כל אמצע בסכום הכולל. 64 / 102 הם 62.7%. 38 / 102 הם 37.3%.
- בודקים את הסכום. הצמד מסתכם כעת ב-100%.
זה כל משמעותו של de-vigging, וזהו אותו נרמול שסוחר מחיל על יחסי זכייה עשרוניים.
כעת ניישם זאת על שוק עם מרווח צר יותר. הצעת המחיר לאותו חוזה היא 63 סנט ב-bid ו-64 סנט ב-ask, ואילו ה-No מוצע ב-36 סנט ב-bid וב-37 סנט ב-ask. מחירי האמצע הם 63.5 ו-36.5, הספר מסתכם בדיוק ב-100 סנט, וההסתברות לאחר de-vigging היא 63.5%. שתי התשובות — 62.7% בשוק הרחב ו-63.5% בשוק הצר — נבדלות בפחות מנקודת אחוז. הטווח הסביר סביבן אינו צר באותה מידה. כל הסתברות בין ה-bid של 62 סנט לבין ה-ask של 66 סנט עולה בקנה אחד עם הציטוט הרחב. לכן שוק של 4 סנט מגביל את הסיכויים לדיוק של כ-4 נקודות, ולא מעבר לכך. כתיבת "62.7%" על סמך שוק של 4 סנט מציגה שלוש ספרות של דיוק שהשוק אינו מספק. רוחב המרווח קובע את רמת הדיוק.
האם מחיר של 30% משמעו שזה קורה ב-30% מהמקרים?
כיול הוא המבחן: אוספים את כל המקרים שבהם השוק תימחר הסתברות של כ-30%, ואז סופרים באיזו תדירות האירוע אכן התרחש. נכלל כאן כל חוזה Call על SPY שנמצא ברשומות החל מינואר 2022, ונבחן כ-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% הציגה הסתברות גלומה ממוצעת של 4.7% על פני 4276 חוזים, וסיימה מעל מחיר המימוש שלה ב-4.9% מהמקרים. בראש הסולם, קבוצת 90-98% הציגה ממוצע של 94.3% וסיימה מעל מחיר המימוש ב-97.8% מהמקרים. שיעור התוצאות בפועל בתחתית הסולם נמוך בהרבה מהשיעור בראשו. כך נראה כיול כאשר הוא מתקיים בקירוב.
שתי הסתייגויות מלוות כל טבלה מסוג זה. תקופת הבדיקה חשובה: מדגם שמכסה בעיקר עליות מחירים מעלה את עמודת התוצאות בפועל בכל קבוצות ה-Call, ותקופה אחרת משנה את אותה מדידה. נוסף על כך, delta משקף את ההסתברות שהופכת את התמחור לעקבי מבחינה פנימית, ולא את ההסתברות שכל חזאי מסוים מאמין בה. אותה שרשרת אופציות מתמחרת התפלגות שלמה, ולא סף יחיד (התנועה הצפויה).
אם מצמצמים את המדגם לחוזים שהשוק תימחר כהטלת מטבע, כלומר קרוב ל-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% בכל שורה מעצם הבנייה. עמודת התוצאות בפועל מתפזרת: SPY סיימה מעל מחיר המימוש שלה ב-68.4% מהמקרים, על פני 4785 חוזים, לעומת 49.9% עבור XOM. 6 שמות, הסתברות גלומה משותפת אחת, וטווח רחב של תוצאות בפועל. מחיר הקרוב ל-50 סנט מתאר את הסתברות השוק. כל חוזה יחיד עדיין נסגר על $1.00 או על $0.00.
מהי נקודת האיזון בחוזה שמחירו $0.70?
חוזה שנרכש במחיר של 70 סנט משלם $1.00 במקרה של Yes, ואינו משלם דבר במקרה של No. הרווח הוא 30 סנט, ההפסד הוא 70 סנט, וההסתברות בנקודת האיזון שווה בדיוק למחיר. בהסתברות אמיתית של 70%, הפוזיציה שקולה להטלת מטבע, רק עם שלבים נוספים. מעל 70% החשבון פועל לטובת הקונה, ומתחת לכך — לרעתו, והכול לפני עלויות.
העלויות מזיזות את הקו הזה באופן לא אחיד. הוספת סנט אחד לעלות הלוך-ושוב של חוזה שמחירו 70 סנט משנה את נקודת האיזון מ-70% לכ-71% — שגיאת עיגול ביחס לפוזיציה. הוספת אותו סנט לחוזה שמחירו 5 סנט משנה את נקודת האיזון מ-5% ל-6%, ובכך גוזלת חמישית מהיתרון התאורטי. עמלות קבועות פוגעות במיוחד בהימורים ארוכי-טווח הזולים ביותר, שבהם העמלה מהווה את החלק הגדול ביותר מהמחיר ששולם. סוג ההוראה פועל באותו אופן: חציית ה-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%. החלוקה נעשית בדיעבד. איש שקרא את שרשרת האופציות בנקודת הבדיקה הראשונה לא יכול היה להבחין בין שתי הקבוצות, וזהו המצב שבו נמצא תמיד חוזה אירוע פעיל. הוודאות מגיעה במועד הסילוק, והמחיר מתקדם אליה בהדרגה. כללי הסילוק קובעים את הרגע המדויק: אופציות שמסולקות לפי AM לעומת PM מראה עד כמה פרט התזמון הזה עשוי להיות חשוב, ואילו תנודתיות גלומה היא התשובה של אותה שרשרת לשאלת הגודל, ולא לשאלת הכיוון.
הערות ומגבלות הנתונים
Delta משמשת תחליף למחיר Yes, אך אינה אותו אובייקט. היא מקרבת את ההסתברות אדישת־הסיכון לפקיעה בתוך הכסף, ונבדלת מעט מההסתברות המודלית לאותו אירוע. התוצאות כאן משוות את מחיר הסגירה של המסחר הרגיל ביום הפקיעה למחיר המימוש. השוואה זו מקרבת את הסילוק, אך אינה משחזרת ערך סילוק רשמי. כל חלונית אופציות מסננת לפי תנודתיות גלומה שהתכנסה ולפי נפח שאינו אפס עבור אותו חוזה באותו יום, ולכן חוזים דלי־מסחר אינם נכללים במדגם. כל חוזה נכנס ללוחות הכיול פעם אחת, בנקודת התצפית הקרובה ביותר ל־30 ימים לפקיעה.
שאלות נפוצות על תמחור חוזי אירועים
האם מחירו של חוזה אירועים זהה להסתברות?
זהו אומדן הסתברות הכולל שתי התאמות. הציטוט כולל את ה-spread שגובים זירת המסחר וה-market makers, וכן מתמחר דולר שיתקבל במועד הסליקה ולא היום. לאחר שמנטרלים את שתי ההתאמות, מתקבל אומדן השוק להסתברות, כפי שנקבעה בשיווי משקל.
מה עושה נטרול ה-vig בשוק דו-צדדי?
הוא מתאים מחדש את שני מחירי האמצע כך שסכומם יהיה 100%. מחברים את מחיר האמצע של Yes למחיר האמצע של No, ואז מחלקים כל אחד מהם בסכום הכולל. מחיר Yes של 64 סנט לצד מחיר No של 38 סנט נותנים יחד 102 סנט, ולאחר נטרול ה-vig מתקבלת זוג הסתברויות של 62.7% ו-37.3%.
מדוע מחירי Yes ו-No מסתכמים ביותר מדולר?
אחד משני החוזים ישלם בוודאות $1.00, ולכן צמד חוזים ללא חיכוכים היה עולה יחד בדיוק $1.00. הסנטים הנוספים בצד ה-ask הם ה-overround — ההכנסה מה-spread המובנית בשוק דו-צדדי. מכירה של שני הצדדים תניב, לעומת זאת, פחות מדולר, בפער המשקף את אותה סטייה בכיוון ההפוך.
האם חוזה שמחירו 90 סנט נכשל פעם אחת מכל עשר?
בקירוב, אם השוק מכויל היטב על פני חוזים רבים ודומים. בפאנל של SPY לעיל, הסל 90-98% כלל הסתברות משתמעת ממוצעת של 94.3%, והחוזה נסגר מעל מחיר המימוש שלו ב-97.8% מהמקרים. חוזה יחיד עדיין ייסגר בתשלום של דולר אחד או של אפס.
עד כמה spread רחב משנה את ההסתברות המשתמעת?
בערך במלוא רוחבו של ה-spread. שוק עם spread של סנט אחד מצמצם את טווח ההסתברויות לנקודת אחוז אחת. שוק עם spread של 4 סנטים מותיר טווח של 4 נקודות אחוז, וכל הסתברות בתוך הטווח הזה עולה בקנה אחד עם הציטוט.
כל המספרים לעיל נלקחו משאילתה שמורה על נתוני חוזים נסחרים, וה-SQL שמאחורי כל פאנל זמין בלחיצה אחת. הפעילו את אותו חישוב לנטרול ה-vig מול שרשרת חוזים חיה במסוף Strasmore.