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

איך להשיג נתונים היסטוריים של סטיית תקן גלומה

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

נתונים היסטוריים של סטיית תקן גלומה (Implied Volatility) הם נתונים מחושבים ולא נתונים שנרשמו בזמן אמת, ועובדה זו מסבירה מדוע קשה יותר להשיג אותם מאשר היסטוריית מחירים. ה-IV הוא המספר שמתקבל כאשר מריצים את מחיר השוק של אופציה לאחור דרך מודל תמחור, עד שהערך שהמודל מפיק תואם למחיר שעל המסך. אף בורסה אינה מדפיסה נתון זה על גבי ה-tape, ולכן כל היסטוריית IV מפורסמת טומנת בחובה בחירות הנוגעות למודל, לציטוט, לבחירת החוזה ולאינטרפולציה; בחירות אלו הן ההבדל המלא בין שתי סדרות נתונים הטוענות למדוד את אותו הדבר.

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

מדוע קשה יותר להשיג נתוני תנודתיות גלומה היסטוריים מאשר נתוני מחיר?

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

  • המודל: פתרון Black-Scholes אירופי, עץ בינומי אמריקאי עם דיבידנדים בדידים, או גרסה של ספק הנתונים הכוללת הנחות ריבית והשאלת מניות משלה.
  • המחיר המוזן למודל: מחיר ה-bid, ה-ask, ה-mid, העסקה האחרונה, או מחיר הסליקה של הבורסה.
  • אילו חוזים נכללים: מחיר מימוש בודד ב-at-the-money, טווח moneyness, או סינון לפי נפח מסחר או עניין פתוח (open interest).
  • אופן ההגעה לפקיעה קבועה: אינטרפולציה בין שני מועדי פקיעה התוחמים את טווח שלושים הימים, או ממוצע של כל הנתונים בתוך חלון זמן עד לפקיעה.

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

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

שאילתהמניה אחת, חודש אחד: תנודתיות גלומה לפי זמן לפקיעה (AAPL, יוני 2026)
ה-SQL המדויק מאחורי כל מספר
SELECT
    dte_band,
    round(100 * quantileDeterministic(0.25)(iv, contract_hash), 1) AS iv_p25_pct,
    round(100 * quantileDeterministic(0.50)(iv, contract_hash), 1) AS iv_median_pct,
    round(100 * quantileDeterministic(0.75)(iv, contract_hash), 1) AS iv_p75_pct,
    count()                                                        AS contract_day_count
FROM
(
    SELECT
        multiIf(days_to_expiry <=   7, '01-07d',
                days_to_expiry <=  21, '08-21d',
                days_to_expiry <=  45, '22-45d',
                days_to_expiry <=  90, '46-90d',
                days_to_expiry <= 180, '91-180d',
                                       '181d+')  AS dte_band,
        toFloat64(implied_volatility)             AS iv,
        cityHash64(ticker)                        AS contract_hash,
        days_to_expiry                            AS dte
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-06-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry > 0
      AND underlying_close > 0
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
)
GROUP BY dte_band
ORDER BY min(dte)
Run this yourself

אותו נכס בסיס, אותו חודש, מחירי מימוש קרובים ל-at-the-money בלבד. הטווח הקצר ביותר בתצוגה, 01-07d, הציג חציון IV של 29.6%. הטווח הארוך ביותר, 181d+, עמד על 28.1%. בתוך הטווח הראשון בלבד, האחוזונים ה-25 וה-75 נעו בין 24.9% ל-35.8%. הצורה לאורך מועדי הפקיעה היא מבנה הטווחים (term structure), והמקבילה שלה לאורך מחירי המימוש היא volatility skew. אין כאן נתון IV יחיד. ישנו משטח, וכל נתון IV של AAPL המתפרסם הוא סיכום שלו, וזהו הנתון שאנו עוקבים אחריו בדף AAPL implied volatility.

מדוע שני תרשימי IV ל-30 יום מציגים מספרים שונים?

קחו נכס בסיס סחיר, שנה של ימי מסחר, ובנו IV ל-30 יום בשלוש דרכים שונות מאותן שורות נתונים. העמודה הראשונה שומרת על מחירי מימוש בטווח של אחוז אחד ממחיר הנכס ועל פקיעות של 25 עד 35 ימים, הקריאה ההדוקה ביותר שניתן להפיק. השנייה מרחיבה את הטווח ל-5% ממחיר הנכס ו-20 עד 45 ימים, ברירת המחדל המעשית כאשר יש לאכלס כל יום מסחר בנתונים. השלישית משקללת את הקבוצה הרחבה יותר לפי נפח חוזים, ובכך מושכת את הממוצע לעבר מחירי המימוש שנסחרו בפועל.

שאילתהשלוש דרכים לחישוב IV ל-30 יום עבור SPY, מתוך קבוצת שורות אחת
ה-SQL המדויק מאחורי כל מספר
WITH
    near_money AS
    (
        SELECT
            toMonday(date)                                                 AS week_start,
            toFloat64(implied_volatility)                                  AS iv,
            days_to_expiry                                                 AS dte,
            volume                                                         AS vol,
            abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS moneyness
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date >= '2025-08-01'
          AND date <  '2026-08-01'
          AND iv_converged = 1
          AND volume > 0
          AND underlying_close > 0
          AND days_to_expiry BETWEEN 20 AND 45
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
    ),
    weekly AS
    (
        SELECT
            week_start,
            avgIf(iv, dte BETWEEN 25 AND 35 AND moneyness < 0.01) AS tight_atm,
            avg(iv)                                               AS wide_atm,
            sum(iv * vol) / sum(vol)                              AS volume_weighted
        FROM near_money
        GROUP BY week_start
        HAVING countIf(dte BETWEEN 25 AND 35 AND moneyness < 0.01) > 0
    )
SELECT
    toString(week_start) AS week,
    concat(monthName(week_start), ' ', toString(toDayOfMonth(week_start)), ', ', toString(toYear(week_start))) AS week_label,
    round(100 * tight_atm, 1)       AS tight_atm_pct,
    round(100 * wide_atm, 1)        AS wide_atm_pct,
    round(100 * volume_weighted, 1) AS volume_weighted_pct,
    round(100 * (greatest(tight_atm, wide_atm, volume_weighted)
               - least(tight_atm, wide_atm, volume_weighted)), 1) AS spread_pp
FROM weekly
ORDER BY week_start
Run this yourself

בשבוע הראשון שבתצוגה, July 28, 2025, שלושת המתכונים הניבו 16.6%, 16.4% ו-16.7%. המרחק בין הגבוה לנמוך שבהם היה 0.2 נקודות אחוז, ועמודת ה-spread עוקבת אחר פער זה לאורך כל 53 השבועות. אף אחד משלושתם אינו ה-IV האמיתי ל-30 יום של הקרן. כל אחד מהם עונה על שאלה מעט שונה, ותרשים של ספק נתונים הוא אחד מהם, כאשר המתכון נותר מחוץ לתווית.

עד כמה אחורה מגיעה ההיסטוריה של סטיית תקן גלומה לכל חוזה?

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

שאילתהנכסי בסיס עם IV יומי שהתכנס, לפי רבעון
ה-SQL המדויק מאחורי כל מספר
SELECT
    concat(toString(toYear(date)), '-Q', toString(toQuarter(date))) AS quarter,
    uniqExact(underlying_symbol)                                    AS underlyings_covered
FROM global_markets.options_greeks
WHERE iv_converged = 1
  AND volume > 0
  AND underlying_symbol NOT IN ('SPCX')
  AND date < '2026-07-01'
GROUP BY quarter
ORDER BY min(date)
Run this yourself

הכיסוי משתרע מ-2014-Q2 ועד 2026-Q2, סך הכל 49 רבעונים, כאשר 5799 שמות של נכסי בסיס מחזיקים ב-IV יומית מחושבת ברבעון המלא האחרון המוצג.

ארבעה מסננים מבצעים את עיקר העבודה בעת שאילתא במערך נתונים מסוג זה.

  • שמור על iv_converged = 1. הפותר (solver) לא תמיד מגיע לתוצאה, ושורה שלא התכנסה היא התאמה שנכשלה ולא קריאה נמוכה.
  • שמור על volume > 0. חוזה שמעולם לא נסחר נושא IV שחושבה מציטוט לא עדכני.
  • קבץ לפי underlying_symbol. העמודה ticker מכילה את קוד החוזה של ה-OCC, לכן קיבוץ לפיה מחזיר שורה אחת לכל מחיר מימוש ומועד פקיעה במקום שורה אחת לכל חברה.
  • בחר חוזים באופן מכוון, קרוב לכסף (near the money) ובתוך טווח ימים לפקיעה מוגדר. דילוג על שלב זה ממצע את ה-skew ואת מבנה הטווח (term structure) לנתון אחד.

האם קיים API חינמי לסטיית תקן גלומה (Implied Volatility)?

קיימים מקורות חינמיים, אך כל אחד מהם חלקי בדרכו שלו.

  • פלטפורמות של ברוקרים מחשבות IV על שרשראות האופציות שלהן ומציגות אותה בזמן אמת. ההיסטוריה הניתנת להורדה קצרה או לא קיימת, והנתון משקף את המודל של אותו ברוקר ולא סטנדרט שוק.
  • מדדי תנודתיות המפורסמים על ידי בורסות קיימים עשרות שנים ואינם כרוכים בתשלום. כל מדד הוא נתון משוקלל יחיד עבור סל מניות, ולכן הוא עונה על שאלה ברמת השוק ולא ברמת מניה בודדת.
  • ממשקי API כלליים לנתוני שוק מסתפקים לרוב במחירים. נתוני "יווניות" (Greeks) לכל חוזה הם מוצר נפרד כמעט בכל מקום, ומסלולים חינמיים הכוללים אותם נוטים לספק תמונת מצב חיה ללא ארכיון. הסקירה שלנו על API חינמי לנתוני שוק מניות מפרטת מה באמת מקבלים במסלולים הפתוחים.
  • היסטוריה לפי חוזה בתמחור ספקים היא המקום שבו נמצאים הארכיונים הארוכים של מניות בודדות; הם נמכרים כקבצי סוף יום לפי חודש או שנה, כאשר שרשראות בזמן אמת מתומחרות גבוה משמעותית מהסט ההיסטורי. המאמר כמה עולים נתוני שוק בזמן אמת מציג את המבנה של מחירונים אלו.

ההבחנה בין תמונת מצב (Snapshot) לבין נתוני סוף יום חשובה לא פחות מהמחיר. תמונת מצב שנלקחה בשעה 16:00 לפי שעון החוף המזרחי משתמשת בציטוטים שהיו קיימים באותו רגע. קובץ שנבנה ממחירי סליקה משתמש בקלט שונה לחלוטין, ושני הנתונים נבדלים זה מזה באופן המשמעותי ביותר בימים תנודתיים.

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

שאילתהחציון IV ל-near-the-money, 20 עד 45 ימים לפקיעה (יוני 2026)
ה-SQL המדויק מאחורי כל מספר
SELECT
    underlying_symbol                                              AS symbol,
    round(100 * quantileDeterministic(0.50)(iv, contract_hash), 1) AS median_iv_pct,
    count()                                                        AS contract_day_count
FROM
(
    SELECT
        underlying_symbol,
        toFloat64(implied_volatility) AS iv,
        cityHash64(ticker)            AS contract_hash
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO', 'XOM', 'TLT')
      AND date >= '2026-06-01'
      AND date <  '2026-07-01'
      AND iv_converged = 1
      AND volume > 0
      AND underlying_close > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
)
GROUP BY symbol
ORDER BY median_iv_pct DESC
Run this yourself

במהלך יוני 2026, ה-IV החציוני לאופציות near-the-money בטווח של עשרים עד ארבעים וחמישה ימים נע בין 38.5% ב-NVDA ועד 10.4% ב-TLT, עבור 8 מניות. אותו טווח, אותם פילטרים, אותו מודל חישוב. דירוג כזה תקף רק כל עוד המתכון נשאר קבוע עבור כל מניה שבו.

האם למקור הנתונים יש חשיבות עבור IV rank ו-IV percentile?

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

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

שאלות נפוצות

היכן ניתן להשיג נתונים היסטוריים של סטיית תקן גלומה (Implied Volatility)?

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

האם קיים API חינמי לסטיית תקן גלומה?

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

מדוע שני מקורות מציגים סטיית תקן גלומה שונה לאותה מניה?

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

כמה רחוק אחורה מגיעים נתוני סטיית התקן הגלומה?

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


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