maksymalny ból opcji definicja obliczenia
Maksymalny ból to kurs wykonania, przy którym posiadacze opcji tracą najwięcej przy wygaśnięciu. Obliczenia na rzeczywistym łańcuchu SPY i pomiar trafienia rozliczenia w 2026 roku.
Maksymalny ból to kurs wykonania, przy którym największa wartość w dolarach pozostających w obrocie opcji wygasłaby bez wartości. Dotyczy on jednego instrumentu bazowego i jednej daty wygaśnięcia, i wynika z przeszukania otwartego zainteresowania: testuje się każdy notowany kurs wykonania jako hipotetyczną cenę rozliczenia, sumuje się, ile każda pozostająca w obrocie opcja call i put wypłaciłaby swojemu posiadaczowi przy tej cenie, i wybiera się cenę, przy której suma jest najmniejsza. Nazwa opisuje stronę posiadaczy opcji w księgach. Ta strona przeprowadza obliczenia na rzeczywistym łańcuchu SPY, a następnie mierzy, jak blisko rzeczywiste rozliczenie trafiło w standardowe miesięczne wygaśnięcia w 2026 roku.
Jak oblicza się maksymalny ból?
Maksymalny ból to przeszukiwanie, a nie wzór. Pięć kroków:
- Zbierz otwarte zainteresowanie, czyli liczbę kontraktów wciąż pozostających w obrocie, na każdym kursie wykonania dla danego wygaśnięcia, rozdzielając call i put.
- Wybierz kandydata na cenę rozliczenia. Notowane kursy wykonania są zwykle zbiorem kandydatów.
- Wyceń każdy call jako cenę kandydata minus jego kurs wykonania, z dolnym ograniczeniem na zero, a każdy put jako jego kurs wykonania minus cena kandydata, z dolnym ograniczeniem na zero.
- Pomnóż każdą wartość przez otwarte zainteresowanie na tym kursie wykonania i przez mnożnik kontraktu wynoszący 100 akcji, a następnie zsumuj cały łańcuch w jedną kwotę w dolarach.
- Powtórz dla każdego kandydata i wybierz najmniejszą sumę. Ten kandydat jest kursem wykonania maksymalnego bólu.
Hipotetyczny przykład wyjaśnia mechanikę. Załóżmy, że 1000 calli jest otwartych na kursie wykonania 95 USD, a rozliczenie wynosi 100 USD. Każdy kontrakt wypłaca posiadaczowi 5 USD za akcję, więc blok wypłaca 500 000 USD na 1000 kontraktów po 100 akcji. Przesuń rozliczenie w dół do 95 USD, a ten blok nie wypłaca nic, podczas gdy każdy put powyżej 95 USD zaczyna wypłacać. Przechodzenie z ceną kandydata w górę i w dół drabinki tworzy krzywą z minimum, a to minimum jest liczbą, którą ludzie podają.
Z definicji wynikają bezpośrednio dwie właściwości. Minimum znajduje się tam, gdzie wartość calli i wartość putów mniej więcej równoważą się w ujęciu dolarowym, co umieszcza je w pobliżu kursów wykonania z największym otwartym zainteresowaniem. Liczba ta opisuje łańcuch w danym momencie: przelicz ją po kolejnej sesji handlowej, a wynik się zmieni.
Gdzie kontrakty znajdują się na drabince kursów wykonania
Otwarte zainteresowanie publikowane jest raz na sesję z danych rozliczeniowych po zamknięciu. Przedstawione panele wykorzystują wolumen obrotu kontraktami przez cały okres życia jednego wygaśnięcia jako widoczny substytut tych danych, a obiekt ma ten sam kształt: stos kontraktów skupionych w granicach kilku dolarów od ceny instrumentu bazowego. Wszystkie kontrakty w łańcuchu SPY wygasające w piątek, 17 lipca 2026, pogrupowane według kursu wykonania:
Dokładny kod SQL dla każdej liczby
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_usdDrabinka przechyla się w miarę przekraczania poziomu pieniądza. Przy kursie wykonania 736 USD, puty przewyższały liczebnie call 113.2 tysiąc do 8 tysiąca. Przy 757 USD przechylenie jest w drugą stronę, 131.7 tysiąca calli wobec 8.1 tysiąca putów. Puty układają się poniżej ceny instrumentu bazowego, a calle powyżej, a te dwie strony krzyżują się gdzieś pośrodku. Ten obszar przecięcia to miejsce, gdzie wyląduje wartość maksymalnego bólu, zanim jeszcze zostaną wykonane jakiekolwiek obliczenia, co jest pierwszą rzeczą, którą warto wiedzieć o tej statystyce. Kontrakty będące przedmiotem obrotu i kontrakty pozostające w obrocie to różne liczby, a wolumen opcji a otwarte zainteresowanie rozróżnia te dwa pojęcia.
Krzywa wypłat i jej dno
Wykonanie kroków 3–5 dla kandydatów na cenę rozliczenia od 730 do 765 USD rysuje kształt, którego szuka obliczenie:
Dokładny kod SQL dla każdej liczby
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_priceRozliczenie na poziomie 730 USD wypłaciłoby posiadaczom 11149.2 milionów USD w tym łańcuchu, prawie wszystko posiadaczom putów. Rozliczenie na poziomie 765 USD wypłaciłoby 11083.9 milionów USD, prawie wszystko posiadaczom calli. Pomiędzy krańcami krzywa opada do płytkiej niecki. Ranking tych samych sum od najmniejszej do największej wskazuje kurs wykonania:
Dokładny kod SQL dla każdej liczby
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 6Minimum znajduje się na $746, przy 1898.2 milionach USD. Spójrz, jak płaska jest niecka, a nie tylko na to, gdzie jest jej dno. Kolejny kandydat, $747, wynosi 1940.2 milionów USD, a szósty kandydat $749 to 2272.8 milionów USD. Sześć cen kandydatów obejmujących kilka dolarów na instrumencie wartym ponad 700 USD znajduje się blisko siebie, więc niewielka korekta łańcucha przesuwa podany kurs wykonania, podczas gdy nic na rynku się nie zmieniło.
Co mówi teoria
Popularna wersja głosi, że instrument bazowy grawituje w kierunku swojego kursu maksymalnego bólu przed wygaśnięciem, a sprzedawcy opcji go tam popychają. W tym zdaniu zawarte są dwa oddzielne twierdzenia. Pierwsze jest statystyczne: ceny rozliczenia grupują się wokół kursu maksymalnego bólu. Drugie jest mechaniczne: ktoś to popycha.
To drugie twierdzenie jest słabsze. Wartość maksymalnego bólu agreguje otwarte zainteresowanie bez informacji o tym, która strona jest długa, a która krótka na danym kursie wykonania, więc sprzedawcy w tej historii są założeniem, a nie obserwacją. Uczestnik zdolny do przesunięcia szerokiego ETF-u rynkowego na wybrany kurs wykonania potrzebowałby skali przekraczającej przepływy hedgingowe generowane przez cały łańcuch. Tam, gdzie opisano rzeczywisty mechanizm hedgingowy, jest to gamma: księga dealera z dodatnią gamma zmienia rozmiar swojego zabezpieczenia, sprzedając przy wzrostach i kupując przy spadkach, co praktycy nazywają tłumieniem lub przybijaniem w pobliżu intensywnie handlowanych kursów wykonania. Nasz przewodnik po ekspozycji gamma przedstawia to oszacowanie i założenia, na których się opiera.
Pierwsze twierdzenie sprawdza się lepiej, z dużym zastrzeżeniem omówionym w następnej sekcji. Badania akademickie nad przybijaniem przy wygaśnięciu dokumentują ten efekt najwyraźniej w przypadku pojedynczych akcji, których otwarte zainteresowanie opcjami jest duże w stosunku do akcji dostępnych w obrocie, i mierzą go w centach, a nie dolarach.
Jak blisko kurs wykonania faktycznie trafia?
Sześć standardowych miesięcznych wygaśnięć dla SPY miało miejsce między lutym a lipcem 2026 roku. Dla każdego z nich panel oblicza kurs wykonania minimalizujący sumę na podstawie kontraktów z tego tygodnia wygaśnięcia, podaje rzeczywistą cenę zamknięcia w sesji wygaśnięcia i umieszcza obok naiwną kontrolę: zamknięcie SPY tydzień wcześniej, mierzone względem tej samej ceny rozliczenia.
Dokładny kod SQL dla każdej liczby
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.expiryRóżnica między kursem minimalizującym a zamknięciem wynosiła od 0.07% przy wygaśnięciu Jun 18 do 0.53% przy Mar 20, utrzymując się poniżej sześciu dziesiątych procenta w każdym miesiącu. Patrząc na to w izolacji, wygląda to na wysoki wskaźnik trafień. Dwie cechy pomiaru obniżają tę ocenę.
Drabinka kandydatów jest z założenia wyśrodkowana na cenie instrumentu bazowego. Kursy wykonania są notowane w okolicach pieniądza, a kontrakty zasilające sumę również się tam koncentrują, więc obliczenia zaczynają się w wąskim paśmie wokół kursu spot i nie mogą zwrócić wyniku daleko poza nim. Drugą cechą jest moment: kontrakty zasilające każdy wiersz tutaj były przedmiotem obrotu aż do sesji wygaśnięcia włącznie, podobnie jak porównywane z nimi zamknięcie. Wartość obliczona z tego samego okna, względem którego jest mierzona, opisuje to okno, a nie przewiduje go z wyprzedzeniem.
Ostatnia kolumna to kontrola, którą warto przeczytać. Zamknięcie SPY tydzień przed Apr 17 różniło się od ceny rozliczenia o 4.32%, w porównaniu z 0.42% dla kursu minimalizującego. W May 15 te dwie wartości różniły się o ułamek, 0.21% wobec 0.12%. Statystyka obliczona w dniu wygaśnięcia powinna bić tygodniową cenę z dużą przewagą. Uczciwy test, którego ten panel nie przeprowadza, zamraża łańcuch na tydzień przed wygaśnięciem i pyta, czy ten kurs wykonania przewiduje zamknięcie lepiej niż cena wyświetlana na ekranie tego samego dnia.
Interpretacja opublikowanej wartości maksymalnego bólu
- Zapytaj, które kontrakty zostały uwzględnione. Wydawcy różnią się w kwestii serii tygodniowych i miesięcznych oraz łańcuchów indeksowych w porównaniu z łańcuchami ETF-ów śledzących ten sam benchmark.
- Zapytaj, kiedy pobrano otwarte zainteresowanie. Plik rozliczeniowy aktualizuje się raz na sesję, więc wartość śróddzienna, która się zmienia, jest przeliczana na podstawie czegoś innego.
- Zapytaj, jak wygląda cała krzywa, a nie tylko gdzie jest jej dno. Płaska niecka oznacza, że podany kurs wykonania jest jednym z kilku prawie równorzędnych odpowiedzi.
- Porównaj z naiwną alternatywą, zanim odczytasz bliskość jako umiejętność.
Mechanika wygaśnięcia decyduje o tym, które kontrakty są nadal uwzględniane w sumie w danym dniu, a kiedy wygasają opcje obejmuje ten kalendarz. Dla drugiej statystyki pozycjonowania zbudowanej z tego samego łańcucha, wskaźnik put/call bezpośrednio mierzy proporcję calli i putów.
FAQ dotyczące maksymalnego bólu
Co oznacza maksymalny ból w handlu opcjami?
Maksymalny ból to kurs wykonania, przy którym całkowita wypłata dla posiadaczy pozostających w obrocie opcji na jedno wygaśnięcie byłaby najmniejsza. Jest obliczany z otwartego zainteresowania poprzez testowanie każdego notowanego kursu wykonania jako hipotetycznej ceny rozliczenia i wybranie najtańszego. Liczba ta opisuje kształt łańcucha opcji i nie zawiera prognozy.
Czy akcje zawsze zamykają się na kursie maksymalnego bólu?
Nie. W przypadku sześciu miesięcznych wygaśnięć SPY zmierzonych powyżej, kurs minimalizujący znajdował się w granicach 0.53% od zamknięcia w swoim najszerszym zakresie, co brzmi ciasno, dopóki nie porówna się tej wartości z naiwnym benchmarkiem i z faktem, że kandydaci na kursy wykonania już skupiają się wokół ceny. Bliskość na drabince wyśrodkowanej na kursie spot to słaby test.
Jak często zmienia się wartość maksymalnego bólu?
Otwarte zainteresowanie publikowane jest raz na sesję handlową z danych rozliczeniowych po zamknięciu, więc większość publikowanych wartości maksymalnego bólu zmienia się co najwyżej raz dziennie. Pulpit nawigacyjny, którego wartość zmienia się w trakcie sesji, przelicza na podstawie wolumenu obrotu lub śróddziennego zrzutu łańcucha, a nie ustalonego otwartego zainteresowania.
Czy maksymalny ból to to samo co ekspozycja gamma?
Nie. Oba odczytują ten sam łańcuch opcji i odpowiadają na różne pytania. Maksymalny ból wskazuje cenę, używając wyłącznie otwartego zainteresowania, bez modelu wyceny. Ekspozycja gamma określa wielkość przepływu hedgingowego w dolarach na jeden procent ruchu i wymaga powierzchni zmienności implikowanej oraz założenia, po której stronie każdego kontraktu znajdują się dealerzy.
Czy maksymalny ból działa w przypadku pojedynczych akcji?
Obliczenia można przeprowadzić na każdym notowanym łańcuchu. Wynik staje się zaszumiony w przypadku płytkich łańcuchów, gdzie garstka kursów wykonania niesie prawie całe otwarte zainteresowanie, a badania nad przybijaniem wspierające jakąkolwiek część teorii koncentrują się na nazwach, których otwarte zainteresowanie opcjami jest duże w stosunku do akcji dostępnych w obrocie.
Każdy panel powyżej to zapisane zapytanie z SQL-em dostępnym jednym kliknięciem. Wykonaj to samo przejście kurs po kursie dla dowolnego łańcucha w terminalu Strasmore.