Put-Call Parity: пояснення на реальних цифрах
Put-call parity пов’язує call, put, акцію та грошову позику. Розбір реального ланцюжка опціонів, а також implied dividend і borrow rate.
Put-call parity — це фіксована арифметична залежність, яка пов’язує call, відповідний put, базову акцію та грошову позику в єдину ціну. Для European options з однаковими strike та датою експірації ціна call мінус ціна put дорівнює дисконтованій різниці між форвардною ціною акції та цим strike. Якщо застосувати цю залежність до реального ланцюжка, вона дає ціну акції, яку мають на увазі options. Вона рідко збігається з ціною на екрані. Різниця між ними відображає дивіденди та ставку фінансування.
Що насправді означає put-call parity
У розгорнутому вигляді залежність має такий вигляд: C - P = S - PV(K) - PV(D). C — ціна call, а P — ціна put з однаковими strike та датою експірації. S — поточна ціна акції. PV(K) — strike, дисконтований за ставкою фінансування, а PV(D) — поточна вартість дивідендів, які акція виплатить до експірації. Call-опціони дають право купити акцію за strike, а put-опціони — право продати її за цим strike.
За цією алгеброю стоїть єдина конструкція. Купівля call і продаж put з одним strike дають володіння акцією за цим strike на дату експірації незалежно від руху ціни: якщо ціна вище strike, інвестор виконує call; якщо нижче — йому призначають put. Ця пара є синтетичною довгою позицією в акції, придбаною в кредит. Оплата за акцію відбувається на дату експірації, а не сьогодні, і проміжні дивіденди не надходять. Put-call parity враховує лише ці дві поправки.
Уявімо акцію за $100, call з експірацією через один рік і strike $100 за ціною $9, відповідний put за ціною $5 та відсутність дивідендів у цей період. Пара коштує $4. Додаємо strike — і options дають ціну акції $104, хоча на екрані вона котирується по $100. Ці $4 — відсотки за відкладену на один рік оплату, приблизно за ставкою чотири відсотки. Цифри наведено для ілюстрації; їх підібрано для простого розрахунку.
Ціна акції, яку мають на увазі options
Після перестановки членів залежність дає окрему ціну акції: ціна call мінус ціна put плюс strike. Якщо виконати це віднімання для кожного strike в межах однієї експірації, результати відрізнятимуться лише на кілька центів. Це синтетична ціна акції. Різниця між нею та ціною закриття на екрані — basis, або carry, синтетичної позиції. Відсотки до експірації збільшують basis. Дивіденди до експірації його зменшують.
Що формує розрив у put-call parity
Є чотири чинники — і лише чотири:
- Відсотки до експірації. Оплата strike пізніше, а не зараз, є позикою на весь строк контракту, і пара має ціну цієї позики.
- Дивіденди до експірації. Синтетичний власник їх не отримує, тому кожен дивіденд, для якого ex-dividend date настає до експірації, зменшує цей розрив.
- Вартість запозичення акцій. Учасник, який займає інший бік і продає акцію в short, сплачує комісію за stock borrow. Вона відображається в тому самому розриві.
- Вартість дострокового виконання для American contracts, яка перетворює рівність на діапазон.
Та сама залежність для різних експірацій
Відсотки нараховуються щодня, а дивіденди виплачуються у визначені дати. Тому basis є кривою, а не одним числом. Опціонний ланцюжок дає ще один спосіб прочитати цю криву. Put-call parity пов’язує call і put з одним strike з одним forward. Тому модель, яка використовує власні ставку та дивідендне припущення ланцюжка, дає однакову implied volatility для обох legs. Різниця між legs означає різницю між припущеннями.
Ця панель зафіксована в минулому, тому цифри на цій сторінці не змінюються: щомісячні експірації AAPL з липня 2026 року до січня 2027 року, за даними сесії 16 червня 2026 року, для strike, найближчого до ціни закриття в кожній експірації.
Точний SQL-код для кожного числа
SELECT
expiry_date,
days_out,
concat('$', toString(argMin(strike, atm_gap))) AS atm_strike_used,
round(100 * argMin(call_iv, atm_gap), 1) AS call_iv_pct,
round(100 * argMin(put_iv, atm_gap), 1) AS put_iv_pct,
round(100 * (argMin(call_iv, atm_gap) - argMin(put_iv, atm_gap)), 1) AS iv_gap_pct
FROM
(
SELECT
expiry_date,
days_out,
strike,
call_iv,
put_iv,
abs(strike / spot_close - 1) AS atm_gap
FROM
(
SELECT
toString(expiration_date) AS expiry_date,
max(dateDiff('day', toDate(date), toDate(expiration_date))) AS days_out,
round(toFloat64(strike_price), 2) AS strike,
maxIf(toFloat64(implied_volatility), leg = 'C') AS call_iv,
maxIf(toFloat64(implied_volatility), leg = 'P') AS put_iv,
max(toFloat64(underlying_close)) AS spot_close
FROM
(
SELECT
date,
expiration_date,
strike_price,
implied_volatility,
underlying_close,
upper(substring(ticker, length(ticker) - 8, 1)) AS leg
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-06-16'
AND expiration_date BETWEEN '2026-07-01' AND '2027-01-31'
AND toDayOfWeek(toDate(expiration_date)) = 5
AND toDayOfMonth(toDate(expiration_date)) BETWEEN 15 AND 21
AND iv_converged = 1
AND volume > 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.03
)
GROUP BY expiry_date, strike
HAVING countIf(leg = 'C') > 0
AND countIf(leg = 'P') > 0
)
)
GROUP BY expiry_date, days_out
ORDER BY expiry_dateНа 2026-07-17, за 31 днів до експірації, для strike $300 call мав implied volatility 21.9 відсотка, а put — 20.5 відсотка. Розрив становив 1.4 пунктів. На 2027-01-15, за 213 днів до експірації, розрив становить 0.3 пунктів. Обидва legs рухаються узгоджено вниз упродовж усього календаря.
Як отримати implied dividend або implied borrow rate
Щоб отримати implied dividend, візьміть дві експірації, які охоплюють ex-dividend date компанії, розрахуйте basis для кожної та відніміть один результат від іншого. Додаткові відсотки за додаткові дні невеликі, і їх можна розрахувати за поточною ставкою Treasury bill. Залишок — це грошова сума, яку, за очікуваннями ланцюжка, буде виплачено у вигляді дивіденду між цими датами. Порівняйте її з оголошеним графіком на нашій сторінці ex-dividend dates та options — і дивідендне припущення самого ланцюжка буде очевидним.
Щоб отримати implied borrow rate, виконайте розрахунок у зворотному напрямку. Зафіксуйте дивіденд на оголошеному рівні, а фінансування — на ставці Treasury bill. Розрахуйте basis, який дають ці два параметри, і порівняйте його з basis, що котирується в ланцюжку. Для акції, яку легко позичити, результати збігаються. Для акції, яку складно позичити, котируваний basis буде нижчим за розрахунковий. Річний дефіцит і є borrow fee, яку options закладають у ціну.
Спочатку потрібно знати, які саме дві ціни знімати з екрана. Розкладку описано в нашому довіднику з опціонного ланцюжка.
Коли American options порушують рівність
American options можна виконати в будь-який день до експірації. European options можна виконати лише на дату експірації, і put-call parity як строга рівність стосується саме European options. Для American contracts вона перетворюється на діапазон. Він ширший з того боку, де право на дострокове виконання має грошову вартість. Дострокове виконання American call має сенс лише безпосередньо перед дивідендом, який перевищує залишкову часову вартість call. Саме тому дострокове виконання call найчастіше відбувається в день перед ex-dividend date.
Та сама перевірка volatility виконується для всіх strike в межах однієї експірації. Саме тут видно ширину діапазону.
Точний SQL-код для кожного числа
SELECT
strike,
round(100 * call_iv, 1) AS call_iv_pct,
round(100 * put_iv, 1) AS put_iv_pct,
round(100 * (call_iv - put_iv), 1) AS iv_gap_pct
FROM
(
SELECT
round(toFloat64(strike_price), 2) AS strike,
maxIf(toFloat64(implied_volatility), leg = 'C') AS call_iv,
maxIf(toFloat64(implied_volatility), leg = 'P') AS put_iv
FROM
(
SELECT
strike_price,
implied_volatility,
upper(substring(ticker, length(ticker) - 8, 1)) AS leg
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = '2026-06-16'
AND expiration_date = '2026-09-18'
AND iv_converged = 1
AND volume > 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.15
AND toUInt32(toFloat64(strike_price)) % 5 = 0
)
GROUP BY strike
HAVING countIf(leg = 'C') > 0
AND countIf(leg = 'P') > 0
)
ORDER BY strikeДві лінії майже збігаються на всій шкалі strike. Для strike 255 call дає implied volatility 30.5 відсотка, а put — 29.3 відсотка. Розрив становить 1.2 пунктів. Якщо на крайніх strike з’являється розрив, можливі причини — застарілий closing print з одного боку, низька ліквідність цього strike, премія за дострокове виконання, яку модель не враховує, або дивідендне припущення, відмінне від того, яке закладено в ціну ланцюжка.
Conversions і reversals — операції, що підтримують залежність
Conversion — це довга позиція в акціях, short call і long put з одним strike. Reversal — дзеркальна конструкція. Обидва пакети при експірації не залежать від ціни акції. Залишаються лише умови фінансування та дивідендів. Market makers відкривають такі позиції, коли розбіжність у парі стає достатньою для покриття їхніх витрат. Цей потік повертає котирування до лінії parity. Перевага належить trading desks із дешевим фінансуванням і доступом до stock loan. Ця сторінка не є інструкцією з торгівлі такими конструкціями.
Чим put-call parity відрізняється від put/call ratio
Ці поняття часто плутають. Put-call parity — це арифметична залежність між одним call і одним put з одним strike. Put/call ratio підраховує обсяг торгів або open interest у всьому ланцюжку і використовується як індикатор настроїв. Parity показує, скільки має коштувати пара відносно акції. Ratio показує, що саме торгували учасники.
Примітки щодо даних і методології
Цифри — це денні closing implied volatilities для контрактів AAPL станом на 16 червня 2026 року. Для кожного strike call зіставлявся з put, а ціна базового активу бралася з тієї самої сесії. До вибірки включалися лише контракти з обсягом торгів понад нуль за день і збіжною implied volatility. Для читабельності шкала strike використовує крок у п’ять доларів. У панелі експірацій обрано strike, найближчий до ціни закриття, для кожної щомісячної експірації. Літера call або put береться з дев’ятого символу з кінця символу контракту OCC. Опціони AAPL мають American style, тому кожна цифра тут включає будь-яку премію за дострокове виконання, яку ринок закладав у ціну того дня.
FAQ
Яка формула put-call parity?
Для European options з однаковими strike та датою експірації ціна call мінус ціна put дорівнює ціні акції мінус поточна вартість strike і мінус поточна вартість дивідендів, виплачених до експірації. Після перестановки членів: ціна call мінус ціна put плюс strike дає ціну акції, яку мають на увазі options.
Чи діє put-call parity для American options?
Не як строга рівність. Право на дострокове виконання перетворює її на діапазон навколо European relation.
Як розрахувати implied dividend за опціонним ланцюжком?
Візьміть call і put з одним strike та датою експірації, розрахуйте ціну call мінус ціну put плюс strike і відніміть ціну акції. Цей розрив дорівнює відсоткам до експірації мінус очікувані дивіденди. Розрахуйте відсотки за ставкою Treasury bill за відповідну кількість днів. Залишок — це дивіденд, який закладає в ціну ланцюжок.
Чому call і put з однаковим strike мають однакову implied volatility?
Parity пов’язує ціни двох options без volatility term у самій залежності. Тому модель, яка оцінює один контракт за заданими forward і discount rate, оцінює інший за тими самими параметрами.
Кожна панель містить SQL-запит, на основі якого її побудовано. Щоб запустити таку саму шкалу для іншого активу або дальшої експірації, сформулюйте запит звичайною англійською мовою в терміналі Strasmore.