Strasmore Research
Навчання Matt ConnorВід Matt Connor

що таке максимальний біль в опціонах математика

Максимальний біль це страйк де власники опціонів отримують найменше при експірації. Розбір обчислення на реальному ланцюгу SPY та наскільки близько припав фактичний розрахунок.

Максимальний біль — це ціна страйку, за якої найбільша доларова вартість відкритих опціонів завершилася б нічим. Він належить одному базовому активу та одній даті експірації. Він отримується з пошуку за відкритим інтересом: перевіряємо кожен зазначений страйк як гіпотетичну ціну розрахунку, підсумовуємо, що заплатив би кожен відкритий кол і пут своєму власнику за цієї ціни, і зберігаємо ціну, де загалом найменше. Назва описує бік власників опціонів у ledger. Ця сторінка розбирає арифметику на реальному ланцюгу SPY, а потім вимірює, наскільки близько розрахунок фактично припав по стандартних щомісячних експіраціях 2026 року.

Як розраховується максимальний біль?

Максимальний біль — це пошук, а не формула. П'ять кроків:

  1. Зібрати відкритий інтерес, кількість контрактів, що лишаються відкритими, за кожним страйком на експірації, окремо для колів і путів.
  2. Обрати кандидата на ціну розрахунку. Зазначені страйки самі по собі є звичайним набором кандидатів.
  3. Оцінити кожен кол за ціною кандидата мінус його страйк, з підлогою нуль, і кожен пут за страйком мінус ціна кандидата, з підлогою нуль.
  4. Помножити кожну вартість на відкритий інтерес цього страйку та на множник контракту 100 акцій, потім додати весь ланцюг в одну доларову величину.
  5. Повторити для кожного кандидата і зберегти найменший загалом. Цей кандидат і є страйком максимального болю.

Гіпотетичний приклад фіксує механіку. Припустімо, 1 000 колів відкрито за страйком 95 доларів, а розрахунок припадає на 100 доларів. Кожен контракт платить власнику 5 доларів за акцію, отже блок платить 500 000 доларів на 1 000 контрактах по 100 акцій. Зсуньте розрахунок до 95 доларів, і цей блок нічого не платить, тоді як кожен пут зі страйком вище 95 починає платити натомість. Рух ціною кандидата вгору і вниз драбиною окреслює криву з дном, і це дно — число, яке цитують люди.

Дві властивості випливають прямо з визначення. Мінімум сидить там, де вартість колу і вартість путу приблизно балансуються в доларах, що розміщує його біля страйків з найважчим відкритим інтересом. І число описує ланцюг у момент: перерахуйте його після іншої торгової сесії, і відповідь зрушить.

Де контракти сидять на драбині страйків

Відкритий інтерес публікується раз на сесію з клірингових даних після закриття. Панелі тут використовують торговий обсяг контрактів за життя однієї експірації як видимий замінник цього файлу, і об'єкт має ту саму форму: купа контрактів, складена в межах кількох доларів від ціни базового активу. Кожен контракт ланцюга SPY, що експірується у п'ятницю, 17 липня 2026 року, згруповано за страйком:

ЗапитКонтракти SPY за страйком, експірація 17 липня 2026
Точний SQL-код для кожного числа
SELECT toString(strike_usd) AS strike,
       round(sumIf(contracts, opt_type = 'C') / 1e3, 1) AS call_contracts_k,
       round(sumIf(contracts, opt_type = 'P') / 1e3, 1) AS put_contracts_k
FROM (
    SELECT intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) AS strike_usd,
           substring(ticker, length(ticker) - 8, 1)                              AS opt_type,
           sum(toFloat64(volume))                                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-06-18 08:00:00')
      AND window_start <  toDateTime('2026-07-18 04:00:00')
      AND startsWith(ticker, 'O:SPY260717')
      AND intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) BETWEEN 736 AND 757
    GROUP BY strike_usd, opt_type
)
GROUP BY strike_usd, strike
ORDER BY strike_usd
Run this yourself

Драбина нахиляється, перетинаючи гроші. За страйком 736 пути переважали коли на 113.2 тисяч проти 8 тисяч. За 757 нахил іде в інший бік: 131.7 тисяч колів проти 8.1 тисяч путів. Пути стосуються нижче ціни базового активу, коли — вище неї, і дві сторони перетинаються десь посередині. Цей регіон перетину — де припаде число максимального болю ще до будь-якої арифметики, і це перше, що варто знати про статистику. Торговані контракти та відкриті контракти — різні підрахунки, і обсяг опціонів проти відкритого інтересу розділяє їх.

Крива виплат і її дно

Прогін кроків 3–5 за цінами кандидатів розрахунку від 730 до 765 доларів малює форму, яку шукає розрахунок:

ЗапитЗагальна виплата власникам опціонів за кожною ціною розрахунку, SPY 17 липня 2026
Точний SQL-код для кожного числа
WITH chain AS (
    SELECT intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) AS strike,
           substring(ticker, length(ticker) - 8, 1)                              AS opt_type,
           sum(toFloat64(volume))                                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-06-18 08:00:00')
      AND window_start <  toDateTime('2026-07-18 04:00:00')
      AND startsWith(ticker, 'O:SPY260717')
    GROUP BY strike, opt_type
),
candidates AS (
    SELECT DISTINCT strike AS settle FROM chain WHERE strike BETWEEN 730 AND 765
)
SELECT candidates.settle AS settle_price,
       round(sum(multiIf(chain.opt_type = 'C' AND chain.strike < candidates.settle,
                         chain.contracts * (candidates.settle - chain.strike),
                         chain.opt_type = 'P' AND chain.strike > candidates.settle,
                         chain.contracts * (chain.strike - candidates.settle),
                         0)) * 100 / 1e6, 1) AS holder_payout_usd_mm
FROM candidates CROSS JOIN chain
GROUP BY settle_price
ORDER BY settle_price
Run this yourself

Розрахунок 730 доларів заплатив би власникам 11149.2 мільйона за цим ланцюгом, майже все — власникам путів. Розрахунок 765 доларів заплатив би 11083.9 мільйона, майже все — власникам колів. Між кінцями крива падає у мілкий басейн. Ранжування тих самих загалів від найменшого догори називає страйк:

ЗапитШість страйків з найменшою виплатою, експірація SPY 17 липня 2026
Точний SQL-код для кожного числа
WITH chain AS (
    SELECT intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) AS strike,
           substring(ticker, length(ticker) - 8, 1)                              AS opt_type,
           sum(toFloat64(volume))                                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-06-18 08:00:00')
      AND window_start <  toDateTime('2026-07-18 04:00:00')
      AND startsWith(ticker, 'O:SPY260717')
    GROUP BY strike, opt_type
),
candidates AS (
    SELECT DISTINCT strike AS settle FROM chain WHERE strike BETWEEN 730 AND 765
)
SELECT concat('$', toString(candidates.settle)) AS candidate_strike,
       round(sum(multiIf(chain.opt_type = 'C' AND chain.strike < candidates.settle,
                         chain.contracts * (candidates.settle - chain.strike),
                         chain.opt_type = 'P' AND chain.strike > candidates.settle,
                         chain.contracts * (chain.strike - candidates.settle),
                         0)) * 100 / 1e6, 1) AS holder_payout_usd_mm
FROM candidates CROSS JOIN chain
GROUP BY candidate_strike
ORDER BY holder_payout_usd_mm ASC
LIMIT 6
Run this yourself

Мінімум сидить на $746, на 1898.2 мільйона. Подивіться, наскільки плаский басейн, а не лише де він дно. Другий за рахунком, $747, дає 1940.2 мільйона, а шостий за рангом кандидат $7492272.8 мільйона. Шість цін кандидатів у межах жмені доларів на інструменті понад 700 доларів сидять близько, отже помірний перегляд ланцюга зрушує надрукований страйк, хоча нічого в ринку не змінилося.

Що стверджує теорія

Популярна версія каже, що базовий актив притягується до свого страйку максимального болю до експірації, і продавці опціонів штовхають його туди. У цьому реченні стосуються дві окремі тези. Перша — статистична: ціни розрахунку кластеризуються біля страйку максимального болю. Друга — механічна: хтось це штовхає.

Друга теза — слабша. Число максимального болю агрегує відкритий інтерес без інформації про те, який контрагент довгий, а який короткий за будь-яким страйком, отже продавці в історії — припущення, а не спостереження. Учасник, здатний зрушити broad-market ETF до обраного страйку, потребував би розміру поза хеджувальними потоками, які генерує весь ланцюг. Де описано реальний хеджувальний механізм, це гамма-один: книга дилера з позитивною гаммою переоцінює свій хедж, продаючи на зростанні і купуючи на слабкості, правило, яке практики називають dampening або pinning біля активно торгованих страйків. Наш пояснювач гамма-експозиції викладає цю оцінку та припущення під нею.

Перша теза тримається краще, з великою застережкою в наступному розділі. Академічна робота про expiration pinning документує ефект найчіткіше на окремих акціях, чий відкритий інтерес опціонів великий відносно їхніх торгованих акцій, і вимірює його у центах, а не доларах.

Наскільки близько страйк фактично припадає?

Шість стандартних щомісячних експірацій пройшли на SPY між лютым і липнем 2026 року. Для кожної панель обчислює мінімізувальний страйк з контрактів тижня експірації, друкує фактичну ціну закриття на сесії експірації та кладе поруч наївний контроль: власне закриття SPY тижнем раніше, виміряне проти тієї самої ціни розрахунку.

ЗапитСтрайк мінімізації проти ціни закриття: місячні експірації SPY, лют – лип 2026
Точний SQL-код для кожного числа
WITH expiries AS (
    SELECT arrayJoin([toDate('2026-02-20'), toDate('2026-03-20'), toDate('2026-04-17'),
                      toDate('2026-05-15'), toDate('2026-06-18'), toDate('2026-07-17')]) AS expiry
),
chain AS (
    SELECT toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))  AS expiry,
           intDiv(toUInt32OrZero(substring(ticker, length(ticker) - 7, 8)), 1000) AS strike,
           substring(ticker, length(ticker) - 8, 1)                              AS opt_type,
           sum(toFloat64(volume))                                                AS contracts
    FROM global_markets.options_minute_aggs
    WHERE ((window_start >= toDateTime('2026-02-16 08:00:00') AND window_start < toDateTime('2026-02-21 04:00:00'))
        OR (window_start >= toDateTime('2026-03-16 08:00:00') AND window_start < toDateTime('2026-03-21 04:00:00'))
        OR (window_start >= toDateTime('2026-04-13 08:00:00') AND window_start < toDateTime('2026-04-18 04:00:00'))
        OR (window_start >= toDateTime('2026-05-11 08:00:00') AND window_start < toDateTime('2026-05-16 04:00:00'))
        OR (window_start >= toDateTime('2026-06-15 08:00:00') AND window_start < toDateTime('2026-06-19 04:00:00'))
        OR (window_start >= toDateTime('2026-07-13 08:00:00') AND window_start < toDateTime('2026-07-18 04:00:00')))
      AND startsWith(ticker, 'O:SPY26')
      AND toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) IN (SELECT expiry FROM expiries)
    GROUP BY expiry, strike, opt_type
),
curve AS (
    SELECT c1.expiry AS expiry,
           c1.strike AS settle,
           sum(multiIf(c2.opt_type = 'C' AND c2.strike < c1.strike, c2.contracts * (c1.strike - c2.strike),
                       c2.opt_type = 'P' AND c2.strike > c1.strike, c2.contracts * (c2.strike - c1.strike),
                       0)) AS payout
    FROM chain AS c1 INNER JOIN chain AS c2 ON c1.expiry = c2.expiry
    GROUP BY c1.expiry, c1.strike
),
pain AS (
    SELECT expiry, argMin(settle, payout) AS pain_strike FROM curve GROUP BY expiry
),
px AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(close, window_start)                          AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-02-05')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-17')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
),
prior AS (
    SELECT expiries.expiry AS expiry, argMax(px.close_px, px.d) AS week_earlier_px
    FROM expiries CROSS JOIN px
    WHERE px.d <= expiries.expiry - 7
    GROUP BY expiries.expiry
)
SELECT formatDateTime(pain.expiry, '%b %e')                                   AS expiry_label,
       pain.pain_strike                                                       AS min_payout_strike,
       round(px.close_px, 2)                                                  AS settlement_close,
       round(abs(px.close_px - pain.pain_strike) / px.close_px * 100, 2)      AS max_pain_miss_pct,
       round(abs(px.close_px - prior.week_earlier_px) / px.close_px * 100, 2) AS week_earlier_miss_pct
FROM pain
INNER JOIN px ON pain.expiry = px.d
INNER JOIN prior ON pain.expiry = prior.expiry
ORDER BY pain.expiry
Run this yourself

Розрив між мінімізувальним страйком і закриттям ішов від 0.07% на експірації Jun 18 до 0.53% на Mar 20, лишаючись нижче шести десятих відсотка щомісяця. Цитоване саме по собі, це виглядає як висока частота влучань. Дві риси вимірювання зрізають її.

Драбина кандидатів за побудовою центрована на ціні базового активу. Страйки зазначені навколо грошей, і контракти, що живлять суму, теж концентруються там, отже арифметика починається всередині вузького поясу навколо споту і не може повернути відповідь далеко поза ним. Друга риса — час: контракти, що живлять кожен рядок тут, торгувалися аж до і включно сесії експірації, поруч із закриттям, проти якого порівнюють. Число, обчислене з того самого вікна, у якому його вимірюють, описує це вікно, а не передбачає його наперед.

Останній стовпець — контроль, вартий читання. Закриття SPY тижнем before Apr 17 промахнулося ціни розрахунку на 4.32%, проти 0.42% для мінімізувального страйку. У May 15 дві прийшли у частку одна від одної, 0.21% проти 0.12%. Статистика, обчислена в день експірації, має бити ціну тижневої давнини з широким відривом. Чесний тест, який ця панель не робить, заморожує ланцюг за тиждень і питає, чи називає той страйк закриття краще, ніж ціна на екрані того самого дня.

Як читати опубліковане число максимального болю

  • Питайте, які контракти пішли в нього. Видавці різняться щодо щотижневих проти щомісячних серій і щодо ланцюгів індексу проти ланцюгів ETF, що відстежують той самий бенчмарк.
  • Питайте, коли було витягнуто відкритий інтерес. Кліринговий файл оновлюється раз на сесію, отже внутрішньоденне число, що рухається, перераховується з чогось іншого.
  • Питайте, як виглядає вся крива, а не лише де сидить дно. Плаский басейн означає, що надрукований страйк — один із кількох майже рівних відповідей.
  • Порівнюйте з наївною альтернативою, перш ніж читати близькість як уміння.

Механіка експірації вирішує, які контракти досі в сумі будь-якого дня, і коли експіруються опціони охоплює цей календар. Для другої позиційної статистики, збудованої з того самого ланцюга, співвідношення пут до колу вимірює суміш колів і путів напряму.

Часті питання про максимальний біль

Що означає максимальний біль в торгівлі опціонами?

Максимальний біль — це ціна страйку, за якої загальна виплата власникам відкритих опціонів на одну експірацію була б найменшою. Його обчислюють з відкритого інтересу, перевіряючи кожен зазначений страйк як гіпотетичну ціну розрахунку і зберігаючи найдешевший. Число описує форму ланцюга опціонів і не містить прогнозу.

Чи завжди акції закриваються за страйком максимального болю?

Ні. На шести щомісячних експіраціях SPY, виміряних вище, мінімізувальний страйк сидів у межах 0.53% від закриття у свому найширшому, що звучить тісно, доки число не порівняти з наївним бенчмарком і з фактом, що кандидати-страйки вже кластеризуються навколо ціни. Близькість на драбині, центрованій на споті, — слабкий тест.

Як часто змінюється число максимального болю?

Відкритий інтерес публікується раз на торгову сесію з клірингових даних після закриття, отже більшість опублікованих чисел максимального болю рухається щонайбільше раз на день. Дашборд, чиє число рухається протягом сесії, перераховується з торгового обсягу або з внутрішньоденного знімка ланцюга замість осілого відкритого інтересу.

Чи є максимальний біль тим самим, що гамма-експозиція?

Ні. Обидва читають той самий ланцюг опціонів і відповідають на різні питання. Максимальний біль називає ціну, використовуючи лише відкритий інтерес без моделі ціноутворення. Гамма-експозиція розмірує хеджувальний потік у доларах на один відсоток руху, і їй потрібна поверхня implied volatility плюс припущення, який бік кожного контракту тримають дилери.

Чи працює максимальний біль на окремих акціях?

Арифметика працює на будь-якому зазначеному ланцюзі. Її вихід стає шумним на тонких ланцюгах, де жменя страйків несе майже весь відкритий інтерес, а дослідження pinning, що підтримує будь-яку частину теорії, зосереджене на назвах, чий відкритий інтерес опціонів великий відносно акцій, доступних до торгівлі.


Кожна панель вище — збережений запит зі своїм SQL у один клік. Запустіть той самий покроковий прохід за страйком на будь-якому ланцюзі на терміналі Strasmore.