Strasmore Research
Matuto Matt ConnorNi Matt Connor

max pain sa options ano ang ibig sabihin

Ang max pain ay strike kung saan pinakamaliit ang babayaran sa option holders sa expiry. Ipinapakita ang kalkulasyon sa SPY chain at settlement accuracy.

Ang max pain ay ang strike price kung saan ang pinakamalaking halaga ng dolyar ng mga natitirang options ay mag-e-expire na walang halaga. Ito ay para sa isang underlying at isang expiry date, at nagmumula ito sa paghahanap sa open interest: subukan ang bawat nakalistang strike bilang hypothetical settlement price, dagdagan ang lahat ng babayaran ng bawat natitirang call at put sa may-ari nito sa presyong iyon, at panatilihin ang presyo kung saan pinakamaliit ang kabuuan. Inilalarawan ng pangalan ang panig ng mga may-ari ng option sa ledger. Ang pahinang ito ay naglalakad sa aritmetika sa isang tunay na SPY chain, pagkatapos ay sinusukat kung gaano kalapit ang aktwal na settlement sa mga karaniwang 2026 monthly expirations.

Paano kinakalkula ang max pain?

Ang max pain ay isang paghahanap kaysa sa isang formula. Limang hakbang:

  1. Kolektahin ang open interest, ang bilang ng mga kontrata na natitira pa, sa bawat strike sa expiry, na hiwalay ang calls at puts.
  2. Pumili ng candidate settlement price. Ang mga nakalistang strike mismo ang karaniwang set ng mga kandidato.
  3. Halagahan ang bawat call sa candidate price na binawasan ang strike nito, na naka-floor sa zero, at ang bawat put sa strike nito na binawasan ang candidate price, na naka-floor sa zero.
  4. I-multiply ang bawat halaga sa open interest ng strike na iyon at sa 100-share contract multiplier, pagkatapos ay idagdag ang buong chain sa isang dollar figure.
  5. Ulitin para sa bawat kandidato at panatilihin ang pinakamaliit na kabuuan. Ang kandidatong iyon ang max pain strike.

Isang hypothetical ang nag-aayos ng mekanika. Sabihin nating 1,000 calls ang bukas sa isang $95 strike at ang settlement ay nasa $100. Ang bawat kontrata ay nagbabayad sa may-ari nito ng $5 bawat share, kaya ang block ay nagbabayad ng $500,000 sa 1,000 kontrata ng 100 shares. Ibaba ang settlement sa $95 at ang block na iyon ay walang babayaran, habang ang bawat put na naka-strike sa itaas ng $95 ay magsisimulang magbayad. Ang paglalakad sa candidate price pataas at pababa sa hagdan ay sumusubaybay sa isang kurba na may ilalim, at ang ilalim na iyon ang numerong binabanggit ng mga tao.

Dalawang katangian ang direktang nagmumula sa depinisyon. Ang minimum ay nasa kung saan ang halaga ng call at halaga ng put ay halos balanse sa dollar terms, na naglalagay nito malapit sa mga strike na may pinakamabigat na open interest. At ang figure ay naglalarawan ng isang chain sa isang sandali: kalkulahin itong muli pagkatapos ng isa pang sesyon ng trading at ang sagot ay gumagalaw.

Kung saan nakaupo ang mga kontrata sa strike ladder

Ang open interest ay naglalathala minsan bawat sesyon mula sa clearing data pagkatapos ng close. Ang mga panel dito ay gumagamit ng traded contract volume sa buong buhay ng isang expiry bilang isang nakikitang stand-in para sa file na iyon, at ang bagay ay may parehong hugis: isang tumpok ng mga kontrata na naka-stack sa loob ng ilang dolyar ng presyo ng underlying. Bawat kontrata sa SPY chain na mag-e-expire sa Biyernes, Hulyo 17, 2026, na pinagsama-sama ayon sa strike:

QuerySPY contracts na na-trade ayon sa strike, July 17 2026 expiry
Ang eksaktong SQL sa likod ng bawat numero
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

Ang hagdan ay tumagilid habang tumatawid ito sa money. Sa strike na $736, ang puts ay nalampasan ang calls ng 113.2 libo hanggang 8 libo. Sa $757 ang tagilid ay nasa kabilang direksyon, 131.7 libong calls laban sa 8.1 libong puts. Ang puts ay naka-stack sa ibaba ng presyo ng underlying at ang calls ay naka-stack sa itaas nito, at ang dalawang panig ay nagkrus sa isang lugar sa gitna. Ang crossover region na iyon ay kung saan ang isang max pain figure ay lalapag bago pa man tumakbo ang anumang aritmetika, na siyang unang bagay na dapat malaman tungkol sa istatistika. Ang mga kontratang na-trade at ang mga kontratang natitira ay magkaibang bilang, at ang options volume vs open interest ay naghihiwalay sa dalawa.

Ang payout curve at ang ilalim nito

Ang pagpapatakbo ng mga hakbang 3 hanggang 5 sa mga candidate settlement price mula $730 hanggang $765 ay gumuhit ng hugis na hinahanap ng kalkulasyon:

QueryKabuuang payout sa option holders sa bawat candidate settlement price, SPY July 17 2026
Ang eksaktong SQL sa likod ng bawat numero
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

Ang isang $730 settlement ay magbabayad sa mga may-ari ng $11149.2 milyon sa chain na ito, halos lahat sa mga may-ari ng put. Ang isang $765 settlement ay magbabayad ng $11083.9 milyon, halos lahat sa mga may-ari ng call. Sa pagitan ng mga dulo, ang kurba ay bumabagsak sa isang mababaw na basin. Ang pagraranggo ng parehong kabuuan mula sa pinakamaliit pataas ay nagpapangalan sa strike:

QueryAnim na pinakamababang-payout na candidate strikes, SPY July 17 2026 expiry
Ang eksaktong SQL sa likod ng bawat numero
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

Ang minimum ay nasa $746, sa $1898.2 milyon. Tingnan kung gaano kapantay ang basin sa halip na kung saan lamang ito ilalim. Ang runner-up, $747, ay nasa $1940.2 milyon, at ang ikaanim na ranggo na kandidato $749 sa $2272.8 milyon. Anim na candidate price na sumasaklaw sa ilang dolyar sa isang instrumento na higit sa $700 ay magkakalapit, kaya ang isang katamtamang rebisyon sa chain ay nagpapagalaw sa naka-print na strike habang walang nagbago sa merkado.

Ano ang sinasabi ng teorya

Ang popular na bersyon ay nagsasabing ang isang underlying ay lumalapit sa max pain strike nito patungo sa expiry, na itinutulak ito doon ng mga nagbebenta ng option. Dalawang magkahiwalay na claim ang nakasalansan sa pangungusap na iyon. Ang una ay istatistikal: ang mga settlement price ay nagkukumpulan malapit sa max pain strike. Ang pangalawa ay mekanikal: may isang tao na gumagawa ng pagtulak.

Ang pangalawang claim ang mas mahina. Ang isang max pain figure ay nag-aaggregate ng open interest na walang impormasyon kung aling counterparty ang long at alin ang short sa anumang strike, kaya ang mga nagbebenta sa kwento ay isang assumption sa halip na isang obserbasyon. Ang isang kalahok na kayang ilipat ang isang broad-market ETF sa isang napiling strike ay mangangailangan ng laki na lampas sa hedging flows na nabubuo ng buong chain. Kung saan ang isang tunay na hedging mechanism ay nailarawan, ito ay ang gamma one: isang dealer book na may dalang positive gamma ay nagre-resize ng hedge nito sa pamamagitan ng pagbebenta sa lakas at pagbili sa kahinaan, isang rulebook na tinatawag ng mga practitioner na dampening o pinning malapit sa mga mabigat na na-trade na strike. Ang aming gamma exposure explainer ay naglalatag ng pagtatantya na iyon at ang mga assumptions sa ilalim nito.

Ang unang claim ay mas matibay, na may malaking kwalipikasyon na sakop sa susunod na seksyon. Ang akademikong gawain sa expiration pinning ay nagdodokumento ng epekto na pinakamalinaw sa mga single stocks na ang option open interest ay malaki kumpara sa kanilang tradable shares, at sinusukat ito sa cents sa halip na dolyar.

Gaano kalapit ang strike sa aktwal na landing?

Anim na standard monthly expirations ang tumakbo sa SPY sa pagitan ng Pebrero at Hulyo 2026. Para sa bawat isa, kinakalkula ng panel ang minimising strike mula sa contracts ng expiry week na iyon, ini-print ang aktwal na closing price sa expiry session, at naglalagay ng isang naive control sa tabi nito: ang sariling close ng SPY isang linggo mas maaga, na sinusukat laban sa parehong settlement price.

QueryMinimising strike vs settlement close: SPY monthly expirations, Feb to Jul 2026
Ang eksaktong SQL sa likod ng bawat numero
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

Ang gap sa pagitan ng minimising strike at ng close ay mula 0.07% sa Jun 18 expiry hanggang 0.53% sa Mar 20, na nanatili sa ilalim ng anim na ikasampu ng isang porsyento sa bawat buwan. Kung titingnan nang mag-isa, mukhang isang malakas na hit rate iyon. Dalawang katangian ng pagsukat ang nagpapababa dito.

Ang candidate ladder ay nakasentro sa presyo ng underlying sa pamamagitan ng konstruksyon. Ang mga strike ay nakalista sa paligid ng money, at ang mga kontrata na nagpapakain sa kabuuan ay nagko-concentrate din doon, kaya ang aritmetika ay nagsisimula sa loob ng isang makitid na banda sa paligid ng spot at hindi makakabalik ng isang sagot na malayo sa labas nito. Ang pangalawang katangian ay timing: ang mga kontrata na nagpapakain sa bawat row dito ay na-trade hanggang sa at kasama ang expiry session, kasama ang close na ikinukumpara. Ang isang figure na kinakalkula mula sa parehong window na sinusukatan nito ay naglalarawan ng window na iyon, hindi ito tinatawag nang maaga.

Ang huling column ang control na dapat basahin. Ang close ng SPY isang linggo bago ang Apr 17 ay hindi nakuha ang settlement price ng 4.32%, laban sa 0.42% para sa minimising strike. Sa May 15 ang dalawa ay nagkalapit ng isang bahagi ng isa't isa, 0.21% laban sa 0.12%. Ang isang istatistika na kinakalkula sa expiry day ay dapat talunin ang isang linggong gulang na presyo sa isang malawak na margin. Ang tapat na pagsubok, na hindi ginagawa ng panel na ito, ay nagyeyelo sa chain isang linggo bago at tinatanong kung ang strike na iyon ay tumatawag sa close nang mas mahusay kaysa sa presyong nakaupo sa screen sa parehong araw.

Pagbabasa ng isang nai-publish na max pain number

  • Itanong kung aling mga kontrata ang napunta dito. Nagkakaiba ang mga publisher sa weekly versus monthly series, at sa index chains versus ETF chains na sumusubaybay sa parehong benchmark.
  • Itanong kung kailan nakuha ang open interest. Ang clearing file ay nag-a-update minsan bawat sesyon, kaya ang isang intraday figure na gumagalaw ay nagre-recompute mula sa ibang bagay.
  • Itanong kung ano ang hitsura ng buong curve, hindi lamang kung saan nakaupo ang ilalim. Ang isang flat basin ay nangangahulugan na ang naka-print na strike ay isa sa ilang halos pantay na sagot.
  • Ikumpara laban sa isang naive alternative bago basahin ang lapit bilang kasanayan.

Ang expiration mechanics ay nagpapasya kung aling mga kontrata ang nasa kabuuan pa rin sa anumang araw, at ang when options expire ay sumasakop sa kalendaryong iyon. Para sa isang pangalawang positioning statistic na binuo mula sa parehong chain, ang the put call ratio ay direktang sumusukat sa call at put mix.

Max pain FAQ

Ano ang ibig sabihin ng max pain sa options trading?

Ang max pain ay ang strike price kung saan ang kabuuang payout sa mga may-ari ng natitirang options sa isang solong expiry ay magiging pinakamaliit. Ito ay kinakalkula mula sa open interest sa pamamagitan ng pagsubok sa bawat nakalistang strike bilang hypothetical settlement price at pagpapanatili ng pinakamurang isa. Inilalarawan ng numero ang hugis ng isang option chain at walang nilalaman na forecast.

Laging nagsasara ba ang mga stocks sa max pain strike?

Hindi. Sa anim na SPY monthly expirations na sinukat sa itaas, ang minimising strike ay nasa loob ng 0.53% ng close sa pinakamalawak nito, na parang mahigpit hanggang ang figure ay ikumpara laban sa isang naive benchmark at laban sa katotohanan na ang mga candidate strike ay nagkukumpulan sa paligid ng presyo na. Ang lapit sa isang hagdan na nakasentro sa spot ay isang mahinang pagsubok.

Gaano kadalas nagbabago ang isang max pain number?

Ang open interest ay naglalathala minsan bawat trading session mula sa clearing data pagkatapos ng close, kaya ang karamihan sa mga nai-publish na max pain figure ay gumagalaw nang hindi hihigit sa isang beses sa isang araw. Ang isang dashboard na ang numero ay gumagalaw sa buong session ay nagre-recompute mula sa traded volume o mula sa isang intraday chain snapshot sa halip na settled open interest.

Pareho ba ang max pain at gamma exposure?

Hindi. Parehong binabasa ang parehong option chain at sinasagot ang magkaibang mga tanong. Ang max pain ay nagpapangalan ng isang presyo, gamit lamang ang open interest na walang pricing model. Ang gamma exposure ay sumusukat ng isang hedging flow sa dolyar bawat isang porsyentong paggalaw, at nangangailangan ito ng implied volatility surface kasama ang isang assumption tungkol sa kung aling panig ng bawat kontrata ang hawak ng mga dealer.

Gumagana ba ang max pain sa mga indibidwal na stocks?

Ang aritmetika ay tumatakbo sa anumang nakalistang chain. Ang output nito ay nagiging maingay sa mga manipis na chain kung saan ang isang dakot ng mga strike ay nagdadala ng halos lahat ng open interest, at ang pinning research na sumusuporta sa anumang bahagi ng teorya ay nagko-concentrate sa mga pangalan na ang option open interest ay malaki kumpara sa mga shares na available na i-trade.


Ang bawat panel sa itaas ay isang stored query na ang SQL ay isang click ang layo. Patakbuhin ang parehong strike by strike walk sa anumang chain sa Strasmore terminal.