Strasmore Research
למידה Matt Connorמאת Matt Connor

מה זה כאב מירבי באופציות? המתמטיקה האמיתית

כאב מירבי הוא השביתה שבה מחזיקי אופציות מפסידים הכי הרבה בפקיעה. החישוב על שרשרת SPY אמיתית מראה כמה קרוב הפשרה נוחתת בפועל, עם דוגמה מפקיעות 2026.

כאב מירבי הוא מחיר המימוש שבו הערך הדולרי הגדול ביותר של אופציות פתוחות יפוג ללא ערך. הוא שייך לנכס בסיס אחד ולתאריך פקיעה אחד, והוא נובע מחיפוש על פני עניין פתוח: בודקים כל מחיר מימוש רשום כמחיר פשרה היפותטי, מסכמים מה כל אופציית רכש ומכר פתוחה הייתה משלמת למחזיק שלה במחיר זה, ושומרים את המחיר שבו הסכום הכולל הוא הקטן ביותר. השם מתאר את הצד של מחזיקי האופציות בספר החשבונות. דף זה עובר על החישוב האריתמטי בשרשרת SPY אמיתית, ולאחר מכן מודד עד כמה פשרה נחתה בפועל על פני פקיעות החודשיות הסטנדרטיות של 2026.

כיצד מחושב כאב מקסימלי?

כאב מקסימלי הוא חיפוש ולא נוסחה. חמישה שלבים:

  1. אספו עניין פתוח, כלומר מספר החוזים שעדיין פתוחים, בכל שביתה בתאריך הפקיעה, תוך הפרדה בין אופציות רכש (קול) לאופציות מכר (פוט).
  2. בחרו מחיר פשרה מועמד. השביתות הרשומות עצמן הן קבוצת המועמדים הרגילה.
  3. העריכו כל אופציית רכש לפי מחיר המועמד פחות השביתה שלה, כשהוא מקורקע לאפס, וכל אופציית מכר לפי השביתה שלה פחות מחיר המועמד, כשהוא מקורקע לאפס.
  4. הכפילו כל ערך בעניין הפתוח של אותה שביתה ובמכפיל החוזה של 100 מניות, ואז חברו את כל השרשרת לנתון דולרי אחד.
  5. חזרו על התהליך עבור כל מועמד ושמרו על הסכום הכולל הקטן ביותר. מועמד זה הוא שביתת הכאב המקסימלי.

דוגמה היפותטית מבהירה את המכניקה. נניח ש-1,000 אופציות רכש פתוחות בשביתה של 95 דולר, ומחיר הפשרה נקבע על 100 דולר. כל חוזה משלם למחזיק בו 5 דולר למניה, כך שהבלוק משלם 500,000 דולר על פני 1,000 חוזים של 100 מניות. הזיזו את מחיר הפשרה מטה ל-95 דולר, והבלוק הזה לא משלם דבר, בעוד שכל אופציית מכר מעל 95 דולר מתחילה לשלם במקום זאת. הליכה עם מחיר המועמד מעלה ומטה בסולם משרטטת עקומה עם תחתית, והתחתית הזו היא המספר שאנשים מצטטים.

שתי תכונות נובעות ישירות מההגדרה. המינימום נמצא היכן שערך אופציות הרכש וערך אופציות המכר מתאזנים בערך במונחים דולריים, מה שממקם אותו ליד השביתות הנושאות את העניין הפתוח הכבד ביותר. והנתון מתאר שרשרת ברגע נתון: חשבו אותו מחדש לאחר סשן מסחר נוסף, והתשובה משתנה.

היכן שהחוזים יושבים על סולם השביתות

האינטרס הפתוח מתפרסם פעם אחת בכל סשן מנתוני הסליקה לאחר הסגירה. הפנלים כאן משתמשים בנפח החוזים שנסחרו במהלך חיי פקיעה אחת כתחליף גלוי לקובץ זה, ולאובייקט יש אותה צורה: ערימה של חוזים הנערמת בטווח של כמה דולרים ממחיר הנכס הבסיסי. כל חוזה בשרשרת SPY שפג תוקפו ביום שישי, 17 ביולי 2026, מקובץ לפי שביתה:

שאילתהחוזי SPY לפי מחיר מימוש, פקיעה 17 ביולי 2026
ה-SQL המדויק מאחורי כל מספר
SELECT toString(strike_usd) AS strike,
       round(sumIf(contracts, opt_type = 'C') / 1e3, 1) AS call_contracts_k,
       round(sumIf(contracts, opt_type = 'P') / 1e3, 1) AS put_contracts_k
FROM (
    SELECT intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) AS strike_usd,
           substring(ticker, length(ticker) - 8, 1)                              AS opt_type,
           sum(toFloat64(volume))                                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-06-18 08:00:00')
      AND window_start <  toDateTime('2026-07-18 04:00:00')
      AND startsWith(ticker, 'O:SPY260717')
      AND intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) BETWEEN 736 AND 757
    GROUP BY strike_usd, opt_type
)
GROUP BY strike_usd, strike
ORDER BY strike_usd
Run this yourself

הסולם נוטה כשהוא חוצה את הכסף. בשביתה של 736 דולר, האופציות PUT עלו על האופציות CALL ב-113.2 אלף לעומת 8 אלף. בשביתה של 757 דולר הנטייה הפוכה, 131.7 אלף אופציות CALL לעומת 8.1 אלף אופציות PUT. אופציות PUT נערמות מתחת למחיר הנכס הבסיסי ואופציות CALL נערמות מעליו, ושני הצדדים נפגשים אי שם באמצע. אזור ההצטלבות הזה הוא המקום שבו נתון הכאב המרבי ינחת לפני כל חישוב, וזה הדבר הראשון שכדאי לדעת על הסטטיסטיקה הזו. חוזים שנסחרו וחוזים פתוחים הם ספירות שונות, ו-נפח אופציות לעומת אינטרס פתוח מפריד בין השניים.

עקומת התשלום והשפל שלה

הרצת שלבים 3 עד 5 על פני מחירי הסדר מועמדים מ-730$ עד 765$ משרטטת את הצורה שהחישוב מחפש:

שאילתהתשלום כולל למחזיקי אופציות בכל מחיר פקיעה מועמד, SPY 17 ביולי 2026
ה-SQL המדויק מאחורי כל מספר
WITH chain AS (
    SELECT intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) AS strike,
           substring(ticker, length(ticker) - 8, 1)                              AS opt_type,
           sum(toFloat64(volume))                                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-06-18 08:00:00')
      AND window_start <  toDateTime('2026-07-18 04:00:00')
      AND startsWith(ticker, 'O:SPY260717')
    GROUP BY strike, opt_type
),
candidates AS (
    SELECT DISTINCT strike AS settle FROM chain WHERE strike BETWEEN 730 AND 765
)
SELECT candidates.settle AS settle_price,
       round(sum(multiIf(chain.opt_type = 'C' AND chain.strike < candidates.settle,
                         chain.contracts * (candidates.settle - chain.strike),
                         chain.opt_type = 'P' AND chain.strike > candidates.settle,
                         chain.contracts * (chain.strike - candidates.settle),
                         0)) * 100 / 1e6, 1) AS holder_payout_usd_mm
FROM candidates CROSS JOIN chain
GROUP BY settle_price
ORDER BY settle_price
Run this yourself

הסדר של 730$ ישלם למחזיקים 11149.2 מיליון דולר בשרשרת זו, כמעט כולו למחזיקי פוט. הסדר של 765$ ישלם 11083.9 מיליון דולר, כמעט כולו למחזיקי קול. בין הקצוות העקומה צונחת לאגן רדוד. דירוג אותם סכומים הכוללים מהקטן לגדול מזהה את השביתה:

שאילתהששת מחירי המימוש עם התשלום הנמוך ביותר, פקיעת SPY 17 ביולי 2026
ה-SQL המדויק מאחורי כל מספר
WITH chain AS (
    SELECT intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) AS strike,
           substring(ticker, length(ticker) - 8, 1)                              AS opt_type,
           sum(toFloat64(volume))                                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-06-18 08:00:00')
      AND window_start <  toDateTime('2026-07-18 04:00:00')
      AND startsWith(ticker, 'O:SPY260717')
    GROUP BY strike, opt_type
),
candidates AS (
    SELECT DISTINCT strike AS settle FROM chain WHERE strike BETWEEN 730 AND 765
)
SELECT concat('$', toString(candidates.settle)) AS candidate_strike,
       round(sum(multiIf(chain.opt_type = 'C' AND chain.strike < candidates.settle,
                         chain.contracts * (candidates.settle - chain.strike),
                         chain.opt_type = 'P' AND chain.strike > candidates.settle,
                         chain.contracts * (chain.strike - candidates.settle),
                         0)) * 100 / 1e6, 1) AS holder_payout_usd_mm
FROM candidates CROSS JOIN chain
GROUP BY candidate_strike
ORDER BY holder_payout_usd_mm ASC
LIMIT 6
Run this yourself

המינימום נמצא ב-$746, בסכום של 1898.2 מיליון דולר. שימו לב עד כמה האגן שטוח, ולא רק היכן הוא מגיע לשפל. המקום השני, $747, מגיע ב-1940.2 מיליון דולר, והמועמד השישי $749 ב-2272.8 מיליון דולר. שישה מחירי מועמדים המשתרעים על פני קומץ דולרים על מכשיר שמחירו מעל 700$ קרובים זה לזה, כך שתיקון מתון בשרשרת מזיז את השביתה המודפסת בעוד ששום דבר בשוק לא השתנה.

מה שהתאוריה טוענת

הגרסה הפופולרית אומרת שנכס בסיס נמשך לעבר סטרייק הכאב המקסימלי שלו עד לפקיעה, כשמוכרי אופציות דוחפים אותו לשם. שני טיעונים נפרדים מוערמים במשפט הזה. הראשון הוא סטטיסטי: מחירי הסילוק מתקבצים ליד סטרייק הכאב המקסימלי. השני הוא מכני: מישהו הוא זה שעושה את הדחיפה.

הטיעון השני הוא החלש יותר. נתון כאב מקסימלי מצרף עניין פתוח ללא מידע על איזה צד נגדי הוא לונג ואיזה שורט בכל סטרייק, כך שהמוכרים בסיפור הם הנחה ולא תצפית. משתתף שמסוגל להזיז תעודת סל רחבת שוק לסטרייק נבחר יזדקק להיקף העולה על זרמי הגידור שכל השרשרת מייצרת. במקום שבו תואר מנגנון גידור אמיתי, הוא מנגנון הגמא: ספר דילר הנושא גמא חיובי משנה את גודל הגידור שלו על ידי מכירה בעליות וקנייה בירידות, חוק פעולה שמתרגלים מכנים שיכוך או הצמדה ליד סטרייקים שנסחרים בכבדות. הסבר הwhat-is-gamma-exposure-gex|חשיפה לגמא שלנו מפרט את האומדן הזה ואת ההנחות שמתחתיו.

הטיעון הראשון מחזיק מעמד טוב יותר, עם הסתייגות גדולה המכוסה בסעיף הבא. עבודה אקדמית על הצמדה לפקיעה מתעדת את האפקט בצורה הברורה ביותר במניות בודדות שהעניין הפתוח באופציות שלהן גדול יחסית למניות הסחירות שלהן, ומודדת אותו באגורות ולא בדולרים.

כמה קרוב באמת נוחת השביתה?

שישה מועדי פקיעה חודשיים סטנדרטיים רצו על SPY בין פברואר ליולי 2026. עבור כל אחד מהם, הפאנל מחשב את שביתת המינימום מאותו שבוע פקיעה, מציג את מחיר הסגירה בפועל במועד הפקיעה, ומציב לצדו בקרה פשוטה: הסגירה של SPY עצמה שבוע קודם לכן, הנמדדת מול אותו מחיר סילוק.

שאילתהמחיר מימוש ממזער לעומת מחיר סגירה בפקיעה: פקיעות חודשיות של SPY, פברואר עד יולי 2026
ה-SQL המדויק מאחורי כל מספר
WITH expiries AS (
    SELECT arrayJoin([toDate('2026-02-20'), toDate('2026-03-20'), toDate('2026-04-17'),
                      toDate('2026-05-15'), toDate('2026-06-18'), toDate('2026-07-17')]) AS expiry
),
chain AS (
    SELECT toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))  AS expiry,
           intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) AS strike,
           substring(ticker, length(ticker) - 8, 1)                              AS opt_type,
           sum(toFloat64(volume))                                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE ((window_start >= toDateTime('2026-02-16 08:00:00') AND window_start < toDateTime('2026-02-21 04:00:00'))
        OR (window_start >= toDateTime('2026-03-16 08:00:00') AND window_start < toDateTime('2026-03-21 04:00:00'))
        OR (window_start >= toDateTime('2026-04-13 08:00:00') AND window_start < toDateTime('2026-04-18 04:00:00'))
        OR (window_start >= toDateTime('2026-05-11 08:00:00') AND window_start < toDateTime('2026-05-16 04:00:00'))
        OR (window_start >= toDateTime('2026-06-15 08:00:00') AND window_start < toDateTime('2026-06-19 04:00:00'))
        OR (window_start >= toDateTime('2026-07-13 08:00:00') AND window_start < toDateTime('2026-07-18 04:00:00')))
      AND startsWith(ticker, 'O:SPY26')
      AND toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) IN (SELECT expiry FROM expiries)
    GROUP BY expiry, strike, opt_type
),
curve AS (
    SELECT c1.expiry AS expiry,
           c1.strike AS settle,
           sum(multiIf(c2.opt_type = 'C' AND c2.strike < c1.strike, c2.contracts * (c1.strike - c2.strike),
                       c2.opt_type = 'P' AND c2.strike > c1.strike, c2.contracts * (c2.strike - c1.strike),
                       0)) AS payout
    FROM chain AS c1 INNER JOIN chain AS c2 ON c1.expiry = c2.expiry
    GROUP BY c1.expiry, c1.strike
),
pain AS (
    SELECT expiry, argMin(settle, payout) AS pain_strike FROM curve GROUP BY expiry
),
px AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(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('2026-02-05')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-17')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
),
prior AS (
    SELECT expiries.expiry AS expiry, argMax(px.close_px, px.d) AS week_earlier_px
    FROM expiries CROSS JOIN px
    WHERE px.d <= expiries.expiry - 7
    GROUP BY expiries.expiry
)
SELECT formatDateTime(pain.expiry, '%b %e')                                   AS expiry_label,
       pain.pain_strike                                                       AS min_payout_strike,
       round(px.close_px, 2)                                                  AS settlement_close,
       round(abs(px.close_px - pain.pain_strike) / px.close_px * 100, 2)      AS max_pain_miss_pct,
       round(abs(px.close_px - prior.week_earlier_px) / px.close_px * 100, 2) AS week_earlier_miss_pct
FROM pain
INNER JOIN px ON pain.expiry = px.d
INNER JOIN prior ON pain.expiry = prior.expiry
ORDER BY pain.expiry
Run this yourself

הפער בין שביתת המינימום לסגירה נע בין 0.07% בפקיעה של Jun 18 ל-0.53% בפקיעה של Mar 20, ונשאר מתחת לשישה עשיריות האחוז בכל חודש. כשהוא מוצג לבדו, זה נראה כמו שיעור פגיעה גבוה. שני מאפיינים של המדידה מצמצמים אותו.

סולם המועמדים ממורכז סביב מחיר הנכס הבסיסי מעצם בנייתו. שביתות רשומות סביב הכסף, והחוזים המזינים את הסכום מתרכזים שם גם כן, כך שהחישוב מתחיל בתוך רצועה צרה סביב הספוט ואינו יכול להחזיר תשובה הרחק מחוצה לה. המאפיין השני הוא תזמון: החוזים המזינים כל שורה כאן נסחרו עד וכולל מועד הפקיעה, לצד הסגירה שאיתה נעשית ההשוואה. נתון המחושב מאותו חלון שנמדד מולו מתאר את החלון הזה, ואינו צופה אותו מראש.

העמודה האחרונה היא הבקרה ששווה לקרוא. הסגירה של SPY שבוע לפני Apr 17 החטיאה את מחיר הסילוק ב-4.32%, לעומת 0.42% עבור שביתת המינימום. ב-May 15 השניים התקרבו זה לזה בשבריר, 0.21% לעומת 0.12%. סטטיסטיקה המחושבת ביום הפקיעה אמורה לנצח בפער ניכר מחיר בן שבוע. המבחן הכנה, שהפאנל הזה אינו מבצע, קופא את השרשרת שבוע מראש ושואל אם אותה שביתה מנבאת את הסגירה טוב יותר מהמחיר שיושב על המסך באותו יום.

קריאת מספר מקסימום כאב מפורסם

  • שאלו אילו חוזים נכללו בחישוב. מפרסמים שונים נבדלים בסדרות שבועיות לעומת חודשיות, ובשרשורי מדד לעומת שרשורי תעודת סל העוקבים אחר אותו מדד.
  • שאלו מתי נשלף העניין הפתוח. קובץ הסליקה מתעדכן פעם אחת בכל סשן, ולכן נתון תוך-יומי שזז מחושב מחדש ממשהו אחר.
  • שאלו איך נראית כל העקומה, לא רק היכן נמצאת התחתית. אגן שטוח פירושו שהסטרייט המודפס הוא אחד מכמה תשובות כמעט שוות.
  • השוו לחלופה נאיבית לפני שתפרשו קרבה כמיומנות.

מכניקת פקיעה קובעת אילו חוזים עדיין בסכום בכל יום נתון, ו-מתי אופציות פוקעות מכסה את לוח השנה הזה. עבור סטטיסטיקת מיצוב שנייה הבנויה מאותו שרשרת, יחס הפוט-קול מודד ישירות את התמהיל של פוטים וקולים.

שאלות נפוצות על מקס פיין

מה המשמעות של מקס פיין במסחר באופציות?

מקס פיין הוא מחיר המימוש שבו התשלום הכולל לבעלי האופציות הפתוחות לפקיעה אחת יהיה הנמוך ביותר. הוא מחושב מתוך העניין הפתוח על ידי בדיקת כל מחיר מימוש רשום כמחיר פשרה היפותטי ושמירה על הזול ביותר. המספר מתאר את הצורה של שרשרת האופציות ואינו מכיל תחזית.

האם מניות תמיד נסגרות במחיר המימוש של מקס פיין?

לא. בשש הפקיעות החודשיות של SPY שנמדדו לעיל, מחיר המימוש הממזער היה בטווח 0.53% מהסגירה ברוחבו המרבי, מה שנשמע הדוק עד שמשווים את הנתון מול מדד בסיסי נאיבי ומול העובדה שמחירי המימוש המועמדים מתקבצים סביב המחיר ממילא. קרבה על סולם שממורכז במחיר הספוט היא מבחן חלש.

באיזו תדירות משתנה מספר מקס פיין?

העניין הפתוח מתפרסם פעם אחת בכל סשן מסחר מנתוני הסליקה לאחר הסגירה, ולכן רוב נתוני מקס פיין המפורסמים משתנים לכל היותר פעם ביום. לוח מחוונים שמספרו משתנה במהלך הסשן מחשב מחדש מנפח מסחר או מתמונת מצב תוך-יומית של השרשרת במקום מעניין פתוח מסולק.

האם מקס פיין זהה לחשיפת גמא?

לא. שניהם קוראים את אותה שרשרת אופציות ועונים על שאלות שונות. מקס פיין נוקב במחיר, תוך שימוש בעניין פתוח בלבד ללא מודל תמחור. חשיפת גמא מכמתת תזרים גידור בדולרים לכל תנועה של אחוז אחד, והיא זקוקה למשטח תנודתיות מרומזת בתוספת הנחה לגבי הצד של כל חוזה שהסוחרים מחזיקים בו.

האם מקס פיין עובד על מניות בודדות?

החשבון רץ על כל שרשרת רשומה. הפלט שלו נעשה רועש בשרשראות דלילות שבהן קומץ מחירי מימוש נושאים כמעט את כל העניין הפתוח, ומחקרי ההצמדה התומכים בכל חלק מהתיאוריה מתרכזים בשמות שהעניין הפתוח באופציות שלהם גדול ביחס למניות הזמינות למסחר.


כל פאנל לעיל הוא שאילתה שמורה עם ה-SQL שלה במרחק קליק אחד. הריצו את אותו הליך מחיר-מימוש אחר מחיר-מימוש על כל שרשרת בטרמינל של סטרסמור.