Структура IV: що показує крива експірацій
Структура IV показує implied volatility за датами експірації. Дізнайтеся, що означають висхідна та інвертована криві, на реальних даних опціонів.
Структура IV за строками експірації — це implied volatility, побудована залежно від дати експірації: для кожної експірації береться одне значення за опціонами зі strike, близьким до поточної ціни акції. Майже всі випадки, з якими ви зіткнетеся, охоплюють дві форми: висхідний нахил у спокійних умовах, коли дальші експірації мають вище значення, та інвертовану криву, коли в передньому місяці припадає дата запланованої події. Обидві наведені нижче форми побудовані на даних щодо опціонів за окремими контрактами, а не на схематичній ілюстрації з підручника.
Що вимірює структура IV за строками
Implied volatility — це річний масштаб руху, який ціна опціону передбачає для базової акції. Значення котирується для кожного контракту, тому для однієї акції в будь-який момент існують сотні показників: по одному для кожного strike та строку експірації на ринку. Якщо зафіксувати strike поблизу поточної ціни, а строк експірації змінювати, ці показники утворюють криву. Ця крива і є структурою за строками.
Спосіб вибірки має більше значення, ніж визнає більшість пояснень. У кожній панелі використано контракти з абсолютною дельтою від 0.35 до 0.65. Це стандартний спосіб визначити опціони поблизу at-the-money, не прив’язуючись до одного strike. Далі для кожного діапазону строків експірації взято медіанну implied volatility. Використано саме медіану, а не середнє значення: одна застаріла котировка за малоліквідним контрактом може дати неправдоподібний показник, а середнє значення перенесе його в результат.
Нижче наведено криву для шести ліквідних акцій у торгові сесії червня 2026 року.
Точний SQL-код для кожного числа
WITH (
SELECT quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker))
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'KO', 'JNJ', 'PG')
AND date >= toDate('2026-06-01')
AND date < toDate('2026-07-01')
AND iv_converged = 1
AND volume > 0
AND implied_volatility BETWEEN 0.03 AND 3
AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
AND days_to_expiry BETWEEN 5 AND 20
) AS front_band_iv
SELECT multiIf(days_to_expiry <= 20, '5-20 days',
days_to_expiry <= 45, '21-45 days',
days_to_expiry <= 90, '46-90 days',
days_to_expiry <= 180, '91-180 days',
'181-365 days') AS expiry_band,
round(100 * quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker)), 1) AS median_iv_pct,
round(100 * (quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker)) - front_band_iv), 1) AS pts_vs_front_band,
count() AS contract_count
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'KO', 'JNJ', 'PG')
AND date >= toDate('2026-06-01')
AND date < toDate('2026-07-01')
AND iv_converged = 1
AND volume > 0
AND implied_volatility BETWEEN 0.03 AND 3
AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
AND days_to_expiry BETWEEN 5 AND 365
GROUP BY expiry_band
ORDER BY min(days_to_expiry)Медіанна implied volatility становила 19.6% у діапазоні 5-20 days та 21.5% у діапазоні 181-365 days, тобто була на 1.9 пунктів вищою, ніж у передньому діапазоні. Ця форма має назву, запозичену з ф’ючерсних ринків: contango, коли дальша дата поставки має вищу ціну. Інвертована крива називається backwardation.
Чому крива зазвичай має висхідний нахил
Нормальну форму підтримують два механізми.
Перший — кількість подій. Контракт із експірацією через дев’ять днів охоплює дев’ять календарних днів ризику. Для акції великої капіталізації, якщо в цей період не заплановано жодних подій, це здебільшого звичайні торгові дні. Контракт із експірацією через рік охоплює чотири квартальні звіти, кілька засідань центральних банків і всі незаплановані новини між ними. Більша кількість відомих невизначеностей у межах одного контракту підвищує річний показник, за який ринок готовий платити.
Другий — сама поведінка волатильності. Реалізована волатильність кластеризується: спокійні тижні змінюються спокійними тижнями, а різкі рухи — новими різкими рухами. Коли ринок спокійний, короткострокові опціони оцінюються близько до поточного низького рівня, а опціони з експірацією через рік — ближче до довгострокового середнього, яке є вищим. Після шоку працює зворотна закономірність. У сесіях після обвалу передня експірація демонструє найвищу implied volatility на всьому ринку, а крива інвертується по всій довжині. Дальні місяці при цьому залишаються близькими до свого звичайного рівня.
Що інвертує криву: подія з визначеною датою
Запланований звіт про прибутки — найнаочніший приклад інверсії. Звіт публікується після закриття ринку у відому дату. Кожна експірація після цієї дати включає очікуваний рух, а кожна експірація до неї — ні. Найближча експірація, яка охоплює подію, має найменше звичайних днів, щоб розподілити цей рух, тому її річний показник зростає найбільше. Шестимісячний опціон розподіляє ту саму подію приблизно на 125 торгових днів і майже не реагує на неї.
NVIDIA опублікувала звіт після закриття ринку в середу, 26 лютого 2025 року. На панелі вся крива показана двічі: в останню сесію перед публікацією звіту, 25 лютого, і в першу сесію після неї, 27 лютого.
Точний SQL-код для кожного числа
SELECT multiIf(days_to_expiry <= 20, '5-20 days',
days_to_expiry <= 45, '21-45 days',
days_to_expiry <= 90, '46-90 days',
days_to_expiry <= 180, '91-180 days',
'181-365 days') AS expiry_band,
round(100 * quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
toDate(date) = toDate('2025-02-25')), 1) AS iv_before_print_pct,
round(100 * quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
toDate(date) = toDate('2025-02-27')), 1) AS iv_after_print_pct,
round(100 * (quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
toDate(date) = toDate('2025-02-25'))
- quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
toDate(date) = toDate('2025-02-27'))), 1) AS iv_drop_pts
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date >= toDate('2025-02-25')
AND date < toDate('2025-02-28')
AND iv_converged = 1
AND volume > 0
AND implied_volatility BETWEEN 0.05 AND 5
AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
AND days_to_expiry BETWEEN 5 AND 365
GROUP BY expiry_band
HAVING countIf(toDate(date) = toDate('2025-02-25')) >= 3
AND countIf(toDate(date) = toDate('2025-02-27')) >= 3
ORDER BY min(days_to_expiry)У діапазоні 5-20 days показник становив 84.9% у сесію перед публікацією звіту та 66.4% у сесію після неї. Зміна становила 18.5 пунктів. Діапазон 181-365 days змінився на 1 пунктів за ті самі два закриття, що було лише частиною руху переднього діапазону. Одна базова акція, одна подія, але різний ефект на двох кінцях кривої. Це падіння показника на передньому кінці називається IV crush. Саме структура за строками показує його заздалегідь.
Як крива формується та стискається
Одна сесія до і після звіту — це лише знімок. Формування кривої триває тижнями й проявляється як розширення розриву між двома її кінцями.
Точний SQL-код для кожного числа
SELECT toDate(date) AS session_date,
round(100 * quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
days_to_expiry BETWEEN 5 AND 20), 1) AS front_iv_pct,
round(100 * quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
days_to_expiry BETWEEN 91 AND 180), 1) AS back_iv_pct,
round(100 * (quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
days_to_expiry BETWEEN 5 AND 20)
- quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
days_to_expiry BETWEEN 91 AND 180)), 1) AS front_minus_back_pts
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date >= toDate('2025-02-10')
AND date < toDate('2025-03-15')
AND iv_converged = 1
AND volume > 0
AND implied_volatility BETWEEN 0.05 AND 5
AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
AND ((days_to_expiry BETWEEN 5 AND 20) OR (days_to_expiry BETWEEN 91 AND 180))
GROUP BY session_date
HAVING countIf(days_to_expiry BETWEEN 5 AND 20) >= 3
AND countIf(days_to_expiry BETWEEN 91 AND 180) >= 3
ORDER BY session_dateРозрив між діапазонами становив 12.4 пунктів у першу сесію періоду та 3.3 пунктів в останню, протягом 24 сесій. Важливо стежити за формою передньої лінії, а не за її рівнем: вона зростає в міру наближення звіту, досягає максимуму в сесіях навколо дати публікації та повертається назад протягом однієї сесії після неї. Задня лінія майже не змінюється протягом усього періоду. У матеріалі Earnings and the option greeks пояснюється, як та сама подія впливає на vega і theta окремих контрактів.
Як часто крива буває інвертованою?
Інверсія не є рідкісною. Водночас частка року, протягом якої окрема акція перебуває в такому стані, дуже відрізняється залежно від ticker.
Точний SQL-код для кожного числа
WITH daily AS (
SELECT underlying_symbol,
toDate(date) AS session_date,
quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
days_to_expiry BETWEEN 5 AND 30) AS front_iv,
quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
days_to_expiry BETWEEN 91 AND 180) AS back_iv
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'AMZN', 'KO', 'JNJ', 'PG', 'SPY', 'XOM', 'WMT')
AND date >= toDate('2025-08-01')
AND date < toDate('2026-08-01')
AND iv_converged = 1
AND volume > 0
AND implied_volatility BETWEEN 0.03 AND 5
AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
AND ((days_to_expiry BETWEEN 5 AND 30) OR (days_to_expiry BETWEEN 91 AND 180))
GROUP BY underlying_symbol, session_date
HAVING countIf(days_to_expiry BETWEEN 5 AND 30) >= 3
AND countIf(days_to_expiry BETWEEN 91 AND 180) >= 3
)
SELECT underlying_symbol AS ticker,
count() AS sessions,
round(100 * countIf(front_iv > back_iv) / count(), 1) AS inverted_pct,
round(100 * quantileDeterministic(0.5)(front_iv - back_iv,
cityHash64(concat(underlying_symbol, toString(session_date)))), 1) AS median_spread_pts
FROM daily
GROUP BY underlying_symbol
ORDER BY inverted_pct DESCПротягом 251 сесій за дванадцять місяців до 31 липня 2026 року XOM демонструвала вищий передній діапазон, ніж діапазон 91–180 днів, у 68.5% сесій, порівняно з 19.5% для SPY. Медіанні розриви становили відповідно 1.4 та -2.1 пунктів. Акції з регулярно запланованими подіями проводять більшу частину року в інвертованому стані, тоді як широкий індексний фонд більшість часу перебуває в contango, а інверсії зосереджуються навколо розпродажів. IV rank вимірює інше: де сьогоднішній рівень розташований у межах власного минулорічного діапазону, а не форму кривої між різними експіраціями.
Як пласка або інвертована крива впливає на calendar spread
Calendar spread передбачає продаж короткострокового опціону та купівлю довгострокового опціону з тим самим strike. У diagonal використано таку саму конструкцію, але з двома різними strike. У будь-якому разі позиція має довгу позицію за implied volatility дальшої експірації та коротку — за implied volatility передньої експірації. Тому структура за строками є її основним параметром, а не другорядною деталлю.
Коли крива має висхідний нахил, короткострокова нога продається за нижчою implied volatility, ніж дальша купується. Коли передній місяць інвертований напередодні події, співвідношення змінюється на протилежне, і позиція відкривається на кривій, яка має простір для зближення. Після події передній показник падає до рівня заднього, задній змінюється мало, а розрив між двома значеннями повертається до звичайної форми. Фактичний результат позиції також залежить від того, наскільки зміниться ціна акції, а цього крива не показує. У матеріалі про expected move розглянуто цю частину питання.
Пласка крива — складніший випадок. На ній немає нахилу, який можна було б використати в будь-якому напрямку. Результат майже повністю залежить від траєкторії акції та плину часу.
FAQ про структуру IV за строками
Що таке структура IV за строками в опціонах?
Це implied volatility, побудована за датами експірації для опціонів поблизу at-the-money. Для шести ліквідних акцій у червні 2026 року медіанний показник становив 19.6% у діапазоні 5-20 days та 21.5% у діапазоні 181-365 days.
Що означає інвертована структура IV?
Інвертована крива демонструє найвищу implied volatility у найближчих експіраціях. Вона виникає, коли подія з визначеною датою припадає на передній місяць, а також у сесіях після різкого розпродажу. У такому разі короткострокові контракти враховують недавні великі рухи, тоді як дальші залишаються ближчими до довгострокового середнього.
Чому implied volatility переднього місяця така висока перед публікацією звіту?
Короткостроковий контракт має дуже мало звичайних торгових днів, щоб розподілити один великий очікуваний рух після закриття ринку. Тому його річний показник зростає. У NVIDIA показник у діапазоні 5-20 days становив 84.9% у сесію перед звітом 26 лютого 2025 року та 66.4% у сесію після нього.
Чи є структура за строками тим самим, що й volatility skew?
Ні. Skew порівнює implied volatility між різними strike в межах однієї експірації. Структура за строками зберігає приблизно незмінною moneyness і порівнює різні експірації. У матеріалі Volatility skew розглянуто вимір за strike тієї самої поверхні.
Усі наведені вище показники отримано зі збережених запитів щодо implied volatility за окремими контрактами. SQL-запит можна розгорнути під кожною панеллю. Побудуйте таку саму криву для будь-якого ticker у терміналі Strasmore.