איך מחשבים את יחס ה-put/call: מדריך שלב אחר שלב
למדו כיצד מחושב יחס ה-put/call באמצעות נוסחאות נפח מסחר ועניין פתוח. המדריך מסביר מדוע מדדים מציגים נתונים גבוהים ומה נחשב לקריאה תקינה בשוק בשנת 2026.
מהו יחס ה-put/call
יחס ה-put/call מחושב על ידי חלוקת מספר חוזי ה-put שנסחרו במספר חוזי ה-call שנסחרו באותו טווח זמן. אם במהלך יום מסחר החליפו ידיים מאתיים וחמישים אלף חוזי put וחמש מאות אלף חוזי call, היחס הוא 0.50. כל ויכוח בנוגע למדד זה, בין אם מדובר בנפח מסחר מול עניין פתוח (open interest) או במניות מול מדדים, חוזר בסופו של דבר לשאלה מה נספר בכל צד של פעולת החילוק הזו. להגדרה הפשוטה, התחילו ב-מהו יחס ה-put/call. דף זה מציג את החישוב האריתמטי.
הנוסחה לחישוב יחס Put/Call, שלב אחר שלב
הנוסחה כוללת שני נתונים ופעולה אחת: ספירת אופציות ה-Put שנסחרו, ספירת אופציות ה-Call שנסחרו, וחילוק הראשונה בשנייה. אופציית Put היא חוזה המעניק לבעליו את הזכות למכור מאה מניות של נכס הבסיס במחיר מימוש קבוע במועד הפקיעה או לפניו. אופציית Call מעניקה את הזכות לרכוש במחיר מימוש קבוע. נתון הווליום סופר את החוזים שהחליפו ידיים במהלך יום המסחר, והוא מתאפס עם פתיחת המסחר ביום הבא.
הספירה אינה משוקללת. חוזה בודד (one lot) באופציה שבועית רחוקה מאוד מהכסף (out of the money) נספר בדיוק כמו חוזה בודד במחיר המימוש הפעיל ביותר בלוח האופציות, ואף אחד מהם אינו מותאם לפי סכום הכסף שבסיכון. היחס הוא ספירה של חוזים בלבד.
הבחירה שמשנה את התוצאה היא אילו חוזים נכללים בספירה. הלוח להלן מציג את אותה פעולה חשבונית על שמונה מניות סחירות לאורך חודש מלא אחד.
ה-SQL המדויק מאחורי כל מספר
SELECT
underlying_symbol AS symbol,
sumIf(volume, right_letter = 'P') AS put_volume,
sumIf(volume, right_letter = 'C') AS call_volume,
round(toFloat64(sumIf(volume, right_letter = 'P'))
/ toFloat64(sumIf(volume, right_letter = 'C')), 2) AS put_call_ratio
FROM
(
SELECT
underlying_symbol,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2026-07-01'
AND date < '2026-08-01'
AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY symbol
HAVING call_volume > 0 AND put_volume > 0
ORDER BY put_call_ratio DESCבמהלך יולי 2026, IWM רשמה את היחס הגבוה ביותר מבין השמונה, עם 3.11 אופציות Put לכל אופציית Call, ואילו MSFT רשמה את היחס הנמוך ביותר, עם 0.38. נוסחה אחת, חודש אחד, ופער בין המניה המובילה למניה בתחתית הרשימה הרחב בהרבה מהתנודתיות היומית שמרבים לכתוב עליה. יחס המצוטט ללא ציון הקטגוריה שלו אינו נושא כמעט שום מידע.
מבוסס נפח מסחר או מבוסס עניין פתוח
שני נתונים שונים יכולים לשמש כמונה וכמכנה.
גרסת נפח המסחר (Volume) סופרת את החוזים שנסחרו בפרק הזמן הנתון. זהו מדד זרם המתאפס בכל יום מסחר ומתאר את הפעילות שבוצעה באותו יום. כל יחס המופיע בכותרות בסיקור השוק מבוסס על נתון זה.
גרסת העניין הפתוח (Open Interest) מחלקת את מספר אופציות ה-Put הפתוחות במספר אופציות ה-Call הפתוחות, כאשר עניין פתוח הוא מספר החוזים שנפתחו וטרם נסגרו, מומשו או פקעו. זהו מדד מצבה, המייצג את הפוזיציה המצטברת ולא את הפעילות היומית, והוא משתנה באיטיות. יום מסחר שבו מחליפים ידיים שלושים אלף חוזי Put בין שני מחזיקים קיימים מוסיף שלושים אלף לנפח המסחר ומותיר את העניין הפתוח ללא שינוי. נפח מסחר באופציות לעומת עניין פתוח מסביר את הרישום החשבונאי.
ניקח נכס היפותטי שסיים את יום שלישי עם ארבעים אלף חוזי Put וחמישים אלף חוזי Call פתוחים, יחס עניין פתוח של 0.80. ביום רביעי נסחרו שלושים אלף חוזי Put ועשרת אלפים חוזי Call: יחס נפח מסחר של 3.00. שני המספרים מתארים את אותה שרשרת אופציות באותו יום, הם נבדלים ביניהם כמעט פי ארבעה, ושניהם נכונים. יחסי עניין פתוח משמשים גם בבסיס חישוב ה-max pain, המשקלל מחירי מימוש לפי חוזים פתוחים ולא לפי חוזים שנסחרו.
מדדי זרם הם תנודתיים. להלן יחס נפח המסחר היומי עבור ETF אחד ומניה אחת לאורך אותו חודש.
ה-SQL המדויק מאחורי כל מספר
SELECT
toString(d) AS session_date,
concat(formatDateTime(d, '%b '), toString(toDayOfMonth(d))) AS day_label,
round(toFloat64(sumIf(volume, sym = 'SPY' AND right_letter = 'P'))
/ toFloat64(sumIf(volume, sym = 'SPY' AND right_letter = 'C')), 2) AS spy_put_call_ratio,
round(toFloat64(sumIf(volume, sym = 'AAPL' AND right_letter = 'P'))
/ toFloat64(sumIf(volume, sym = 'AAPL' AND right_letter = 'C')), 2) AS aapl_put_call_ratio
FROM
(
SELECT
date AS d,
underlying_symbol AS sym,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2026-07-01'
AND date < '2026-08-01'
AND underlying_symbol IN ('SPY', 'AAPL')
AND volume > 0
)
GROUP BY d
HAVING countIf(sym = 'SPY' AND right_letter = 'C') > 0
AND countIf(sym = 'AAPL' AND right_letter = 'C') > 0
ORDER BY dב-Jul 1, ה-SPY רשם 1.1 לעומת 0.49 עבור AAPL. עד Jul 31 הקריאה של הצמד הייתה 2 ו-0.55. לאורך 22 ימי מסחר, הנתונים היומיים קופצים, ושתי הסדרות נמצאות ברמות שונות על הגרף. הפער ברמות הוא העובדה השימושית יותר מבין השתיים.
מניות, מדדים, ETP וסך הכל: ארבעת היחסים של Cboe
המספר המצוטט כ-"put/call ratio" מגיע מנתוני השוק היומיים של Cboe, המפרסמת כמה סוגים של יחסים כאלו. הקטגוריות, כפי שהן מוגדרות על ידי Cboe:
- Equity put/call ratio: אופציות על מניות בודדות.
- Index put/call ratio: אופציות על מדדים, כולל SPX ו-VIX.
- Exchange traded products put/call ratio: אופציות על קרנות סל (ETF), שם נמצאות SPY, QQQ ו-IWM.
- Total put/call ratio: כל הקטגוריות יחד.
כל אחד מהם מחושב באותה דרך, סך אופציות ה-Put חלקי סך אופציות ה-Call בתוך הקטגוריה, כך שהקריאות נבדלות רק לפי התוכן שנמצא ב"סל". הסלים אינם ניתנים להחלפה.
אופציות על מדדים הן המכשיר הסטנדרטי לגידור תיק השקעות שלם בעסקה אחת. קרן המחזיקה תיק מניות רחב רוכשת אופציות Put על המדד כנגדו, ואין לה סיבה מקבילה לרכוש אופציות Call על המדד. ביקוש זה מגיע באופן חד-צדדי, והוא נרשם במלואו במונה של קטגוריית המדדים. זרם הפעילות במניות בודדות נושא נטייה הפוכה, שכן רכישת אופציות Call על מניות ספציפיות מהווה חלק גדול וקבוע מהווליום. שתי הקטגוריות נמצאות ברמות שונות מעצם המבנה שלהן, וקריאה מאחת הנמדדת מול אמת מידה של השנייה היא הטעות הנפוצה ביותר בשימוש במדד זה.
קרנות סל רחבות שוק ממלאות את אותו תפקיד גידור כמו אופציות על מדדים, בעודן נספרות בקטגוריית ה-exchange traded products. הלוח להלן עוקב אחר חציון חודשי עבור שני הצדדים של פיצול זה.
ה-SQL המדויק מאחורי כל מספר
WITH
daily AS
(
SELECT
d,
toFloat64(sumIf(volume, right_letter = 'P' AND sym IN ('SPY', 'QQQ', 'IWM')))
/ toFloat64(sumIf(volume, right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM'))) AS etf_ratio,
toFloat64(sumIf(volume, right_letter = 'P' AND sym NOT IN ('SPY', 'QQQ', 'IWM')))
/ toFloat64(sumIf(volume, right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM'))) AS stock_ratio
FROM
(
SELECT
date AS d,
underlying_symbol AS sym,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2025-08-01'
AND date < '2026-08-01'
AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY d
HAVING countIf(right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM')) > 0
AND countIf(right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM')) > 0
)
SELECT
toString(toStartOfMonth(d)) AS month,
formatDateTime(toStartOfMonth(d), '%b %Y') AS month_label,
round(quantileExact(0.5)(etf_ratio), 2) AS etf_median_ratio,
round(quantileExact(0.5)(stock_ratio), 2) AS stock_median_ratio
FROM daily
GROUP BY month, month_label
ORDER BY monthהלוח משתרע מ-Aug 2025 ועד Jul 2026. בשני הקצוות, יחס החציון היומי של סל ה-ETF עמד קרוב ל-1.0 או מעליו, 1.52 בחודש הראשון ו-1.49 באחרון. סל המניות הבודדות נשאר מתחת ל-1.0 בשני הקצוות, 0.6 ו-0.56, לאורך כל 12 החודשים שבתרשים. הפער הקבוע הזה הוא הסיבה לכך שאמת מידה חייבת לציין את הקטגוריה שלה לפני שיש לה משמעות כלשהי.
מה נחשב ליחס Put/Call תקין
"תקין" הוא טווח, והטווח שייך לקטגוריה מסוימת ולא לאינדיקטור עצמו. הלוח להלן מציג את כל ימי המסחר ב-12 החודשים האחרונים ומדווח על החציון היומי של היחס עבור כל סל, לצד גבולות האחוזון ה-10 וה-90.
ה-SQL המדויק מאחורי כל מספר
WITH
daily AS
(
SELECT
d,
toFloat64(sumIf(volume, right_letter = 'P' AND sym IN ('SPY', 'QQQ', 'IWM')))
/ toFloat64(sumIf(volume, right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM'))) AS etf_ratio,
toFloat64(sumIf(volume, right_letter = 'P' AND sym NOT IN ('SPY', 'QQQ', 'IWM')))
/ toFloat64(sumIf(volume, right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM'))) AS stock_ratio,
toFloat64(sumIf(volume, right_letter = 'P'))
/ toFloat64(sumIf(volume, right_letter = 'C')) AS all_ratio
FROM
(
SELECT
date AS d,
underlying_symbol AS sym,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2025-08-01'
AND date < '2026-08-01'
AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY d
HAVING countIf(right_letter = 'C' AND sym IN ('SPY', 'QQQ', 'IWM')) > 0
AND countIf(right_letter = 'C' AND sym NOT IN ('SPY', 'QQQ', 'IWM')) > 0
)
SELECT
p.2 AS category,
round(quantileExact(0.1)(p.3), 2) AS p10_ratio,
round(quantileExact(0.5)(p.3), 2) AS median_ratio,
round(quantileExact(0.9)(p.3), 2) AS p90_ratio
FROM
(
SELECT arrayJoin([
tuple(1, 'Broad market ETFs', etf_ratio),
tuple(2, 'Single stocks', stock_ratio),
tuple(3, 'All eight names', all_ratio)
]) AS p
FROM daily
)
GROUP BY p.1, p.2
ORDER BY p.1עבור סל המניות הבודדות, החציון היומי עמד על 0.58, כאשר האחוזון ה-10 היה 0.45 והאחוזון ה-90 היה 0.76. סל ה-ETF של השוק הרחב הציג רמות גבוהות יותר לאורך ההתפלגות: חציון של 1.54 בין גבולות של 1.25 ו-1.86.
האם 1.20 נחשב גבוה? ביחס לסל המניות הבודדות, הדפסה של 1.20 נמצאת מעבר לאחוזון ה-90 של 0.76, מה שהופך אותה לבלתי שגרתית. ביחס לסל ה-ETF, מדובר בנתון קרוב לשגרה. ביחס לקטגוריית המדדים, שבה מתרכזת זרימת הגידור שתוארה לעיל, יש לשפוט את אותו נתון מול מערכת רמות שונה. מספר אחד, והקטגוריה קובעת את פסק הדין עוד לפני שמתחילה הפרשנות.
טווחים אלו גם נודדים. אחוזונים המחושבים על פני 12 החודשים האחרונים מתארים את 12 החודשים האחרונים, וטווח ייחוס שהועתק ממאמר שנכתב לפני עשור מתאר שוק עם תמהיל חוזים שונה וכמעט ללא מסחר באופציות יומיות (0DTE). חישוב מחדש של האחוזונים על פני חלון זמן עדכני הוא הדרך ההוגנת היחידה לקבוע אם קריאה היא גבוהה או נמוכה.
פרשנות היא עבודה נפרדת מחישוב. קריאה גבוהה מתפרשת על ידי חלק מהמשקיעים כפוזיציית שורט, ועל ידי משקיעי קונטרה כגידור צפוף, והמאמר האם יחס Put/Call גבוה הוא סימן שורי מפרק את הטיעון הזה כראוי.
מדוע ממוצע נע של 21 ימים
יחס של יום מסחר בודד הוא מדגם קטן מסדרה רועשת, ולכן הגרסה המפורסמת היא בדרך כלל מוחלקת. המוסכמה המקובלת היא ממוצע נע של 21 ימי מסחר, המהווים בקירוב חודש מסחר אחד: מחברים את 21 היחסים היומיים האחרונים, מחלקים ב-21, ומקדמים את חלון הזמן ביום מסחר אחד בכל פעם. קיימות גם גרסאות של עשרה וחמישים ימי מסחר, ואורך התקופה שנבחר קובע כמה מ"קפיצה" ביום בודד תישמר בממוצע.
שני פרטים ראויים לציון. מיצוע של 21 יחסים יומיים אינו זהה מבחינה חשבונית לחלוקת סך נפח ה-put של חודש בסך נפח ה-call של חודש; השיטה הראשונה מעניקה משקל שווה לכל יום מסחר, בעוד השנייה מעניקה משקל רב יותר לימים עתירי פעילות. כמו כן, קריאה מוחלקת בנקודת קיצון נבנתה לאורך חודש של ימי מסחר, ולכן היא גם יוצאת מנקודת הקיצון הזו באיטיות.
ה-SQL המדויק מאחורי כל מספר
WITH
daily AS
(
SELECT
d,
toFloat64(sumIf(volume, right_letter = 'P'))
/ toFloat64(sumIf(volume, right_letter = 'C')) AS raw_ratio
FROM
(
SELECT
date AS d,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2026-01-02'
AND date < '2026-08-01'
AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY d
HAVING countIf(right_letter = 'C') > 0
)
SELECT
session_date,
day_label,
daily_ratio,
ma21_ratio
FROM
(
SELECT
d,
toString(d) AS session_date,
concat(formatDateTime(d, '%b '), toString(toDayOfMonth(d))) AS day_label,
round(raw_ratio, 2) AS daily_ratio,
round(avg(raw_ratio) OVER (ORDER BY d ROWS BETWEEN 20 PRECEDING AND CURRENT ROW), 2) AS ma21_ratio
FROM daily
)
WHERE d >= '2026-04-01'
ORDER BY dהקו המשונן מייצג את היחס היומי עבור סל המניות הבודדות, והקו החלק מייצג את הממוצע הנע ל-21 ימים. ביום המסחר הראשון המוצג, Apr 1, הנתון היומי עמד על 1.04 לעומת ממוצע מוחלק של 0.81. ב-Jul 31 עמדו הערכים על 0.56 ו-0.58 בהתאמה. לאורך 84 ימי מסחר, הממוצע עובר רק חלק קטן מהמרחק שמכסה הסדרה הגולמית, וזוהי בדיוק המטרה בפרסום הנתון המוחלק.
כיצד מחושבים הפאנלים הללו
סוג החוזה נגזר מסימול האופציה עצמו: האות המופיעה לפני קוד המימוש בן שמונה הספרות היא C עבור call ו-P עבור put. רק חוזים שדווח בהם נפח מסחר באותו יום נכללים בספירה, כך שמחיר מימוש שלא נסחר אינו מוסיף דבר לאף צד. הפאנל הראשון מחלק את סך נפח ה-put החודשי בסך נפח ה-call החודשי עבור כל שם. הפאנלים הנותרים מחשבים תחילה יחס אחד לכל יום מסחר, ולאחר מכן מסכמים את ימי המסחר הללו, בהתאם לאופן שבו נבנה ממוצע נע מפורסם. סלים: SPY, QQQ ו-IWM בצד השוק הרחב, עם AAPL, MSFT, NVDA, TSLA ו-KO בצד המניות הבודדות. כל פאנל מכיל את שאילתת ה-SQL המדויקת שהפיקה אותו.
שאלות נפוצות
כיצד מחושב יחס ה-put/call?
מחלקים את מספר חוזי ה-put במספר חוזי ה-call באותו טווח זמן. רוב הגרסאות המפורסמות משתמשות בנפח המסחר (volume) היומי, כך שקריאה של 0.65 משמעותה 65 חוזי put שנסחרו עבור כל 100 חוזי call. הגרסה המבוססת על עניין פתוח (open interest) משתמשת בחוזים שטרם נסגרו במקום בחוזים שנסחרו, והיא עונה על שאלה שונה.
האם יחס put/call הגבוה מ-1 נחשב גבוה?
זה תלוי בקטגוריה. עבור סל המניות הבודדות בלוחות שלעיל, האחוזון ה-90 של הקריאות היומיות עומד על 0.76, ולכן ביצועי מסחר (prints) מעל רמה זו אינם שכיחים. עבור קרנות סל (ETF) רחבות ואופציות על מדדים, שבהן גידור תיקים מתרכז בצד ה-put, קריאות סביב 1 ומעלה הן עניין שבשגרה.
מה ההבדל בין יחס ה-put/call המבוסס על נפח מסחר לבין זה המבוסס על עניין פתוח?
נפח המסחר סופר חוזים שנסחרו במהלך יום המסחר ומתאפס בכל בוקר. עניין פתוח סופר חוזים שנותרו פתוחים ועוברים מיום ליום. גרסת נפח המסחר יכולה להכפיל את עצמה בתוך יום מסחר אחד, בעוד שגרסת העניין הפתוח משתנה באחוזים בודדים; לכן, השתיים מצביעות לעיתים קרובות לכיוונים שונים באותו יום.
באיזה יחס put/call משתמשת העיתונות הכלכלית?
בדרך כלל ביחס ה-put/call של מניות בבורסת Cboe או ביחס ה-put/call הכולל, ולרוב כממוצע נע של 21 ימי מסחר ולא כנתון יומי גולמי. ארבע הקטגוריות של Cboe נסחרות ברמות שונות, ולכן לא ניתן להשוות נתון מצוטט ללא קטגוריה מוגדרת מול שום מדד ייחוס (benchmark).
כל לוח בדף זה מלווה ב-SQL שיצר אותו, כך שניתן לבדוק כל חישוב שורה אחר שורה. כדי להריץ את אותה אריתמטיקה על שם אחר או על טווח זמן ארוך יותר, יש לבקש זאת בשפה פשוטה בטרמינל של Strasmore.