Де знайти історичні дані про implied volatility
Де шукати історичні дані про implied volatility: чому два 30-денні ряди IV різняться, які безкоштовні й платні джерела доступні та як самостійно сформувати запит.
Історичні дані про implied volatility розраховуються, а не фіксуються безпосередньо. Саме тому їх важче отримати, ніж історію цін. IV — це показник, який отримують, підставляючи ринкову ціну опціону в модель ціноутворення у зворотному напрямку, доки розрахункове значення моделі не збігається з ціною на екрані. Жодна біржа не публікує IV у стрічці угод. Тому кожна опублікована історія IV містить рішення щодо моделі, котирування, вибору контрактів та інтерполяції. Саме ці рішення визначають різницю між двома рядами даних, які нібито вимірюють одне й те саме.
Якщо спочатку потрібне визначення, матеріали що таке implied volatility і як розраховується implied volatility пояснюють механіку. Далі йдеться про те, де зберігається ця історія та як відрізнити одну її версію від іншої.
Чому історичні дані про implied volatility отримати складніше, ніж дані про ціни?
Щоденну ціну закриття спостерігають безпосередньо: відбувається print, і всі постачальники повідомляють одне й те саме значення. Рівень IV розраховують, а чотири вхідні параметри цього розрахунку відрізняються залежно від джерела.
- Модель: розрахунок за європейською моделлю Black-Scholes, американське біноміальне дерево з дискретними дивідендами або варіант постачальника з власними припущеннями щодо ставки та вартості запозичення.
- Ціна, яку використовують у розрахунку: bid, ask, mid, ціна останньої угоди або біржова розрахункова ціна.
- Які контракти враховують: один strike at-the-money, діапазон moneyness, фільтр за обсягом або open interest.
- Як показник приводять до фіксованого строку: інтерполюють між двома експіраціями, що охоплюють 30 днів, або усереднюють усі контракти в межах заданого діапазону днів до експірації.
Зміна одного параметра змінює рівень. Якщо змінити всі чотири, два ретельно підготовлені джерела можуть показати різницю в кілька volatility points за одну й ту саму сесію, і жодне з них не буде помилковим.
Розбіжність починається в межах одного underlying. На панелі нижче показано AAPL за червень 2026 року. Враховано лише контракти зі strike у межах 5% від spot price, розподілені за часом до експірації.
Точний 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)Той самий underlying, той самий місяць, лише strikes поблизу ціни активу. Найкоротший діапазон у вибірці, 01-07d, мав медіанну IV на рівні 29.6%. Найдовший, 181d+, — на рівні 28.1%. У межах першого діапазону 25-й і 75-й перцентилі становили 24.9% і 35.8% відповідно. Структура показників за експіраціями — це term structure, а її аналог за strikes — volatility skew. Тут немає єдиного значення IV. Є surface, і будь-яке опубліковане значення IV для AAPL є лише одним зі способів її узагальнити. Саме цю динаміку відстежує наша сторінка implied volatility для AAPL.
Чому два графіки 30-денної IV показують різні значення?
Візьмімо один ліквідний базовий актив, один рік торгових сесій і розрахуймо 30-денну IV трьома способами на основі тих самих рядків даних. У першій колонці залишаємо страйки в межах 1% від поточної ціни та експірації через 25–35 днів — це найточніший доступний показник. У другій розширюємо діапазон до 5% від поточної ціни та 20–45 днів — практичний варіант за замовчуванням, коли потрібно заповнити даними кожну сесію. У третій зважуємо цей ширший набір за обсягом контрактів, зміщуючи середнє в бік страйків, за якими фактично укладалися угоди.
Точний 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У першому тижні періоду, July 28, 2025, ці три методики дали значення 16.6%, 16.4% і 16.7%. Різниця між найвищим і найнижчим значенням становила 0.2 процентних пунктів, а колонка spread відстежує цей розрив протягом усіх 53 тижнів. Жодне з цих трьох значень не є справжньою 30-денною IV фонду. Кожне відповідає на дещо інше запитання, а графік постачальника даних використовує один із цих підходів, не зазначаючи методику в підписі.
Наскільки далеко в минуле сягає історія implied volatility для окремих контрактів?
Дані для цих панелей містяться в global_markets.options_greeks: один рядок на контракт за кожен торговий день. У ньому implied volatility наведена разом із delta, gamma, vega, theta і rho, а також strike, датою експірації, кількістю днів до експірації, символом базового активу та ціною закриття базового активу. Це дані на кінець дня, а не актуальний знімок опціонного ланцюжка. Нижня панель показує, скільки різних базових активів мають щонайменше один рядок із розрахованою 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)Період охоплює 2014-Q2–2026-Q2, тобто загалом 49 кварталів. В останньому повному кварталі в наборі даних 5799 базових активів мають щоденні розраховані значення IV.
Під час запиту такого набору даних найважливішими є чотири фільтри.
- Залишайте
iv_converged = 1. Розрахунок не завжди завершується успішно, а рядок без збіжності є невдалим підбором, а не низьким значенням. - Залишайте
volume > 0. Контракт, за яким не було угод, має IV, розраховану на основі застарілої котирувальної інформації. - Групуйте за
underlying_symbol. У стовпціtickerміститься код контракту OCC, тому групування за ним повертає окремий рядок для кожних strike та експірації, а не один рядок на компанію. - Вибирайте контракти цілеспрямовано: поблизу грошей і в межах заданого діапазону днів до експірації. Якщо пропустити цей крок, skew і строкова структура усереднюються в один показник.
Чи існує безкоштовний API для implied volatility?
Безкоштовні джерела є, але кожне з них має певне обмеження.
- Брокерські платформи самостійно розраховують IV за власними опціонними ланцюжками й показують її в реальному часі. Історія для завантаження коротка або відсутня, а показник залежить від моделі конкретного брокера, а не від єдиного стандарту.
- Волатильнісні індекси, які публікують біржі, охоплюють періоди в кілька десятиліть і доступні безкоштовно. Кожен індекс є одним агрегованим показником для певного кошика. Тому він відповідає на запитання про ринок загалом, а не про окрему акцію.
- Загальні API ринкових даних здебільшого обмежуються цінами. Дані по greeks для окремих контрактів майже всюди є окремим продуктом, а безкоштовні тарифи, що їх включають, зазвичай повертають поточний знімок без архіву. У нашому огляді безкоштовних API біржових даних описано, які дані фактично доступні на відкритих тарифах.
- Саме в історії по окремих контрактах, яку продають постачальники даних, зберігаються тривалі архіви для окремих акцій. Їх продають у вигляді файлів із даними на кінець дня — помісячно або за роками. Дані по опціонних ланцюжках у реальному часі коштують значно дорожче за історичний набір. У матеріалі Скільки коштують ринкові дані в реальному часі показано структуру таких прайс-листів.
Різниця між snapshot і даними на кінець дня не менш важлива, ніж ціна. Snapshot, зроблений о 16:00 за ET, використовує котирування, актуальні саме в цей момент. Файл, сформований на основі settlement prices, використовує зовсім інші вхідні дані. Найбільше ці показники розходяться в дні найшвидших рухів ринку.
Агрегована індексна волатильність і волатильність окремої акції також не є взаємозамінними. Опціон на індекс оцінює рух кошика, де різноспрямовані зміни його компонентів зменшують загальний результат. Опціон на окрему акцію оцінює траєкторію саме цієї компанії. У таблиці нижче зіставлено відомі акції за один місяць із застосуванням однакових фільтрів.
Точний 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Упродовж червня 2026 року медіанна IV для опціонів поблизу рівня at-the-money у вікні від 20 до 45 днів становила від 38.5% для NVDA до 10.4% для TLT — загалом для 8 акцій. Той самий період, ті самі фільтри, той самий метод розрахунку. Такий рейтинг зберігає чинність лише доти, доки для кожної акції застосовується незмінна методика.
Чи має значення джерело для IV rank та IV percentile?
Воно визначає результат. IV rank порівнює сьогоднішню IV з найвищим і найнижчим значеннями за період спостереження, зазвичай за рік, а IV percentile показує, яка частка днів за цей період мала значення нижче за сьогоднішнє. Обидва показники аналізують один часовий ряд від початку до кінця. Тому зміна часового ряду змінює оцінку, навіть якщо на ринку нічого не відбулося. Якщо додати IV за mid-quote брокера до архіву постачальника, побудованого на settlement-цінах, у середині періоду спостереження з’явиться постійний стрибок. Кожен rank, розрахований на основі такого ряду, успадкує цей стрибок. У матеріалі IV rank проти IV percentile пояснюється, як розраховують обидва показники. Та сама вимога діє, коли ви порівнюєте implied та realized рух: поєднання цих показників розглянуто в матеріалі історична волатильність проти implied volatility.
Робочий стандарт — правило щодо походження даних. Оберіть одне джерело, одну модель, один підхід до вибору контрактів і одне правило визначення строку до погашення. Потім не змінюйте жоден із цих чотирьох параметрів протягом усього періоду спостереження. Часовий ряд, внутрішньо узгоджений і лише трохи відмінний від даних інших постачальників, має більшу цінність, ніж зшитий ряд, який частково збігається з кожним із них.
Поширені запитання
Де можна отримати історичні дані про implied volatility?
Тривалі історичні ряди для окремих акцій надають постачальники опціонних даних, які продають денні значення грецьких коефіцієнтів для кожного контракту, зазвичай у місячних або річних файлах. Біржі безкоштовно публікують історію волатильності на рівні індексів. Брокерські платформи показують поточну IV в опціонних ланцюжках, але зазвичай майже не надають історичних даних для завантаження. Панелі вище працюють із денним набором даних для кожного контракту, що охоплює всі лістингові контракти з узгодженою моделлю.
Чи існує безкоштовний API для implied volatility?
Безкоштовні тарифні плани з грецькими коефіцієнтами для кожного контракту трапляються рідко. Ті, що існують, зазвичай повертають поточний знімок, а не архів. Історія волатильності індексів — основний справді безкоштовний довгий ряд даних. Глибока історія для окремих акцій зазвичай є платним продуктом.
Чому два джерела показують різну implied volatility для тієї самої акції?
Причинами можуть бути різні моделі ціноутворення, різні котирування на вході, різний вибір контрактів і різна інтерполяція строків до погашення. Панель вище будує три 30-денні ряди з одного набору рядків. Уже протягом першого тижня вони відрізняються на 0.2 процентного пункту, тому розбіжність між двома постачальниками є очікуваною, а не помилкою.
Наскільки далеко в минуле сягають дані про implied volatility?
Це залежить від джерела. Архіви для окремих контрактів усюди коротші за архіви цін. Набір даних, на якому працює ця сторінка, починається з 2014-Q2 і відтоді містить денні рядки для кожного контракту з узгодженою моделлю.
Кожна панель тут містить SQL-запит, на основі якого її побудовано. Розгорніть панель, щоб точно побачити, які контракти увійшли до розрахунку. Щоб побудувати такий самий ряд для іншого активу, іншого періоду або іншого методу, сформулюйте запит звичайною англійською мовою в терміналі Strasmore.