Очікуваний рух за implied volatility: формула
Формула очікуваного руху за IV, скорочений розрахунок через straddle та порівняння з фактичними рухами ціни, щоб оцінити точність ринкових очікувань.
Очікуваний рух — це діапазон, який ринок опціонів закладає для акції на визначену кількість днів. Його задає implied volatility: ціна акції, помножена на implied volatility і квадратний корінь із кількості днів, поділеної на 365. Для акції вартістю $100 з implied volatility на рівні 30% за 30 днів очікуваний рух становить близько $8.60, або 8.6%, оскільки 0.30, помножене на квадратний корінь із 30, поділених на 365, дорівнює 0.086. Це діапазон в одну стандартну девіацію, а не прогноз напрямку руху і не рівень, який ціна не може перетнути.
Як розрахувати очікуваний рух за імплайд-волатильністю
Імплайд-волатильність — це річне стандартне відхилення дохідності, яке випливає з ціни опціону. Її завжди наводять як річний показник. Тому значення 30% описує діапазон за один рік, а для коротших періодів його потрібно масштабувати. Волатильність масштабується пропорційно квадратному кореню з часу. Саме тому кількість днів стоїть під знаком квадратного кореня, а не ділиться безпосередньо.
Очікуваний рух = ціна × IV × √(кількість днів ÷ 365)
Дві конвенції визначають, чи збігатиметься ваш результат із показником брокера. Для роздрібних інвесторів стандартом є розрахунок за календарними днями та 365 днями в році. Деякі trading desks використовують торгові дні та 252 дні в році. За однакового IV це дає трохи ширший діапазон. Результат відповідає одному стандартному відхиленню — діапазону, у якому за нормального розподілу перебуває приблизно 68% результатів. Подвоєння цього показника дає діапазон у два стандартні відхилення, або приблизно 95%.
Чи є використаний вами IV високим, — окреме питання, якому присвячена інша сторінка: чи є IV на рівні 30% високим — вона порівнює окреме значення з розподілом самого ринку.
Чому діапазон зростає пропорційно до квадратного кореня з кількості днів
Якщо залишити незмінними одну акцію та одну торгову сесію, а змінювати лише горизонт прогнозу, форма формули стає очевидною. Near-the-money контракти на Apple у середині липня 2026 року, згруповані за строком до експірації:
Точний SQL-код для кожного числа
SELECT multiIf(days_to_expiry <= 7, '1 week',
days_to_expiry <= 14, '2 weeks',
days_to_expiry <= 45, '1 month',
days_to_expiry <= 120, '3 months',
days_to_expiry <= 240, '6 months',
'1 year') AS horizon,
round(avg(days_to_expiry), 0) AS avg_days,
round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,
round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,
round(avg(toFloat64(underlying_close)) * avg(toFloat64(implied_volatility))
* sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_usd,
round(avg(toFloat64(underlying_close)), 2) AS underlying_price,
formatDateTime(max(date), '%b %e, %Y') AS as_of
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = (SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date <= toDate('2026-07-15'))
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 1 AND 400
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY horizon
HAVING count() >= 3
ORDER BY avg_daysСтаном на Jul 15, 2026 середній строк до експірації в групі 1 week становив 5 днів, а implied volatility — 28%. Очікуваний рух дорівнював 3.17%, або $10.41 за ціни акції $327.8. У групі 1 year середній строк становив 292 днів, а IV — 28.4%. Очікуваний рух дорівнював 25.44%, або $83.39.
Важливі не самі рівні, а співвідношення. Якщо збільшити кількість днів у чотири рази, очікуваний рух подвоїться для будь-якої акції та будь-якого рівня IV, оскільки квадратний корінь із 4 дорівнює 2. Якщо перераховувати місячний діапазон на рік, просто помноживши його на 12, річний показник буде завищено приблизно у 3,5 раза. Правильний множник — квадратний корінь із 12, тобто 3,46.
Скорочений спосіб через straddle і чому він показує приблизно на 20% менше
Є швидший спосіб оцінити очікуваний рух ринку, і він не потребує обчислень. Знайдіть at-the-money straddle — call- і put-опціон зі спільним strike та однаковою датою експірації — і складіть дві премії. Багато trading desks називають цю суму очікуваним рухом.
Два методи не дають однакового результату, і це не означає, що один із них помилковий. Straddle виплачує абсолютну відстань між ціною акції на момент завершення та strike, тому його ціна відображає очікуваний середній рух. Формула дає одну стандартну девіацію. Для нормального розподілу середнє абсолютне відхилення дорівнює 0,798 стандартної девіації. Тому straddle приблизно на 20% нижчий за результат формули. Якщо помножити ціну straddle на 1,25, тобто поділити на 0,798, два показники збігаються.
Застосуймо цей підхід до гіпотетичного прикладу зі 100 доларами на початку. Формула дає 8,60 долара. At-the-money straddle для такої акції коштував би близько 6,86 долара, оскільки 0,798 × 8,60 = 6,86. Якщо помножити 6,86 долара на 1,25, отримаємо 8,58 долара. Два методи дають один результат, якщо розуміти, який саме статистичний показник розраховує кожен із них. Як читати опціонний ланцюжок показує, де розташовані ці дві премії.
Чого не означає очікуваний рух
- Не напрямок. Діапазон симетричний відносно сьогоднішньої ціни, а ринок опціонів оцінює його ширину, а не напрямок.
- Не гарантію. Показник 68% ґрунтується на нормальному розподілі, тоді як фактична дохідність має товстіші хвости розподілу. Тому екстремальні результати трапляються частіше, ніж передбачає модель.
- Не бар’єр. За моделлю приблизно одне з трьох вікон завершується за межами діапазону в одну стандартну девіацію. Завершення за його межами є звичайним сценарієм.
- Не фіксовану величину. Implied volatility переглядається на кожній сесії, тому очікуваний рух для певної дати експірації щодня перераховується.
Що відбувається після звіту про фінансові результати
Запланована дата публікації фінансової звітності є найочевиднішим прикладом того, як implied volatility заздалегідь зростає, а після оприлюднення новин знижується на наступній сесії. Ця модель відома як IV crush. Очікуваний рух скорочується за тим самим графіком. Звіт NVDA за кінець травня 2023 року було оприлюднено після закриття першої сесії на графіку нижче.
Точний SQL-код для кожного числа
WITH
(SELECT avg(toFloat64(implied_volatility))
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date = toDate('2023-05-24')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05) AS iv_report_day,
(SELECT avg(toFloat64(underlying_close))
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date = toDate('2023-05-24')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05) AS px_report_day
SELECT date,
formatDateTime(date, '%b %e') AS session_label,
round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,
round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,
round(100 * avg(toFloat64(implied_volatility)) / iv_report_day, 1) AS iv_pct_of_report_day,
round(100 * (avg(toFloat64(underlying_close)) / px_report_day - 1), 2) AS move_from_report_day_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
AND date BETWEEN toDate('2023-05-24') AND toDate('2023-06-09')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY date
HAVING count() >= 3
ORDER BY dateImplied volatility для опціонів near-the-money становила 115.1% на May 24 — у сесію публікації звіту — за очікуваного руху до експірації на 30.54%. На наступній сесії цей показник становив 42.9% від того рівня. До Jun 9 implied volatility знизилася до 39.2%, а акції торгувалися на 1.71% від ціни закриття в день публікації звіту.
Саме це поєднання лежить в основі поширеної скарги. Трейдер може правильно спрогнозувати напрямок руху акцій після звіту й водночас зазнати збитку за long option: параметр волатильності, на основі якого оцінювали контракт, знижується в момент, коли невизначеність зникає. У матеріалі Як звіти про фінансові результати впливають на грецькі показники розглянуто подальший вплив на цю позицію.
Чи підтверджується очікуваний рух фактичними рухами?
Це твердження можна перевірити, тож наведімо результати перевірки. Щосереди протягом двох років до середини червня 2026 року для шести ліквідних акцій беремо implied volatility поблизу грошей за контрактами з експірацією через 25–40 днів, переводимо її в очікуваний рух на наступні дні, а потім вимірюємо, наскільки далеко фактично пройшла ціна акції до першої торгової сесії, що настала щонайменше через 30 календарних днів.
Точний SQL-код для кожного числа
WITH obs AS (
SELECT underlying_symbol AS ticker,
date AS obs_date,
avg(toFloat64(implied_volatility)) AS iv,
avg(toFloat64(underlying_close)) AS spot
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'XOM', 'SPY', 'KO')
AND date BETWEEN toDate('2024-06-12') AND toDate('2026-06-17')
AND toDayOfWeek(date) = 3
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 25 AND 40
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY ticker, obs_date
HAVING count() >= 4 AND avg(toFloat64(implied_volatility)) > 0.01
),
px AS (
SELECT underlying_symbol AS ticker,
date AS px_date,
avg(toFloat64(underlying_close)) AS close_px
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'XOM', 'SPY', 'KO')
AND date BETWEEN toDate('2024-06-12') AND toDate('2026-07-25')
AND days_to_expiry BETWEEN 5 AND 60
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02
GROUP BY ticker, px_date
),
moves AS (
SELECT obs.ticker AS ticker,
obs.obs_date AS obs_date,
any(obs.iv) AS iv,
any(obs.spot) AS spot,
argMin(px.close_px, px.px_date) AS end_px,
min(dateDiff('day', obs.obs_date, px.px_date)) AS elapsed_days
FROM obs
INNER JOIN px ON obs.ticker = px.ticker
WHERE px.px_date >= addDays(obs.obs_date, 30)
AND px.px_date <= addDays(obs.obs_date, 36)
GROUP BY ticker, obs_date
)
SELECT ticker,
count() AS windows_tested,
round(quantileDeterministic(0.5)(100 * iv * sqrt(elapsed_days / 365), cityHash64(obs_date)), 2) AS implied_move_pct,
round(quantileDeterministic(0.5)(100 * abs(end_px / spot - 1), cityHash64(obs_date)), 2) AS realized_move_pct,
round(100 * countIf(abs(end_px / spot - 1) > iv * sqrt(elapsed_days / 365)) / count(), 1) AS realized_over_implied_pct
FROM moves
GROUP BY ticker
ORDER BY implied_move_pct DESCNVDA закладала найширший діапазон серед шести акцій: медіанний implied move становив 13.3% проти медіанного realized move на рівні 6.77% у межах 103 вікон. У спокійнішому кінці діапазону SPY закладала 4.37% проти фактичного руху 2.68%.
Остання колонка є найпоказовішою. Діапазон в одну стандартну девіацію має бути перевищений приблизно у 32% випадків, і саме з цим показником його слід порівнювати, а не з нулем. У 23.3% із NVDA вікон ціна закрилася за межами діапазону, який закладали її опціони, а у 24.3% із SPY вікон відбулося те саме. Порівняйте дві медіани для кожної акції та різницю між ними. Незалежно від її знака, саме ця різниця показує, чи закладали опціони більший рух, ніж відбувся фактично. Відбір акцій із найширшими implied ranges — окреме завдання; акції з найвищою implied volatility ранжує їх.
Примітки та визначення даних
- «Поблизу грошей» означає strike у межах 5% від ціни закриття базового активу на відповідній сесії для контрактів зі стабілізованою implied volatility та ненульовим обсягом.
- Для розрахунку expected move протягом усього періоду використовуються календарні дні з базою 365. Realized move — це процентна відстань між ціною закриття на дату спостереження та ціною закриття першої сесії, що настала щонайменше через 30 календарних днів; знак не враховується.
- Спостереження проводяться щотижня, а форвардні вікна охоплюють 30 днів, тому сусідні вікна перекриваються, і кількість спостережень не є незалежною вибіркою.
Поширені запитання про очікуваний рух
Як розрахувати очікуваний рух на основі implied volatility?
Помножте ціну акції на implied volatility у десятковому форматі, а потім — на квадратний корінь із кількості днів, поділеної на 365. Для акції вартістю $50, implied volatility на рівні 40% і періоду в 45 днів: 50 × 0,40 × √(45 ÷ 365) = $7,02. Це діапазон приблизно 14%.
Чи дорівнює ціна straddle at-the-money очікуваному руху?
Майже, але не повністю. Ціна straddle відображає очікуваний середній рух, який становить приблизно 0,798 стандартного відхилення. Якщо помножити премію straddle на 1,25, отримаємо значення одного стандартного відхилення, яке дає формула.
Чи залишається акція в межах очікуваного руху?
Зазвичай так, але модель передбачає вихід за межі приблизно у 32% випадків. У протестованих вище тижневих періодах 23.3% із NVDA періодів завершилися за межами implied-діапазону, а так сталося у 24.3% із SPY періодів.
Чому очікуваний рух різко зменшується одразу після публікації звіту?
Очікуваний рух безпосередньо залежить від implied volatility. Перед запланованою публікацією звіту implied volatility зростає, а після оприлюднення результатів знижується. На панелі вище значення на сесію після звіту NVDA становило 42.9% від показника в день публікації звіту.
Чи є ширший очікуваний рух кращою можливістю?
Це лише ширший діапазон. Більший очікуваний рух означає, що ринок опціонів закладає вищу невизначеність, і контракти з такою невизначеністю коштують дорожче пропорційно. Ширина діапазону нічого не говорить про те, чи є ціна справедливою.
Кожна панель у цьому матеріалі містить збережений запит із прикріпленим SQL-кодом. Відкрийте потрібний запит, замініть тикер і проведіть такий самий тест implied volatility проти realized volatility на терміналі Strasmore.