マックス・ペイン オプション 計算方法
マックス・ペインはオプション保有者の損失が最大となる権利行使価格。SPY実例で計算手順と決済価格の一致度を解説。
マックス・ペインとは、未決済のオプションが権利行使日に無価値で失効する場合に、その総額が最大となる権利行使価格のことです。これは特定の原資産と特定の満期日に対して定義され、未決済建玉(オープン・インタレスト)を検索することで算出されます。具体的には、上場されている全ての権利行使価格を仮の決済価格として想定し、その価格で全ての未決済コールとプットが保有者に支払う金額を合計し、その合計が最小となる価格を特定します。この名称は、オプション保有者側の損益計算書に着目したものです。このページでは、実際のSPYオプション・チェーンを用いて計算手順を解説し、その後、2026年の標準的な月次満期において、実際の決済価格がどの程度近づいたかを検証します。
マックス・ペインはどのように計算されるのか?
マックス・ペインは計算式というよりも、探索プロセスです。以下の5つのステップで構成されます。
- その満期日における全ての権利行使価格について、未決済のコールとプットをそれぞれ区別して、オープン・インタレスト(未決済建玉数)を収集します。
- 仮の決済価格を一つ選びます。通常は、上場されている権利行使価格自体が候補となります。
- 各コールの価値を「仮決済価格-権利行使価格」、各プットの価値を「権利行使価格-仮決済価格」とし、それぞれ0を下限として計算します。
- 各価値に、その権利行使価格のオープン・インタレストと100株の契約乗数を掛け、チェーン全体の合計を一つのドル金額にします。
- 全ての候補価格についてステップ2~4を繰り返し、合計が最小となる価格を保持します。その候補価格がマックス・ペインの権利行使価格です。
仮定の例で仕組みを説明します。95ドルの権利行使価格で1,000枚のコールが未決済であり、決済価格が100ドルになったとします。各契約は保有者に1株あたり5ドルを支払うため、1,000枚の契約(100株)で、このブロックは合計50万ドルを支払います。決済価格が95ドルに下がれば、このブロックの支払いはゼロになり、代わりに95ドルを超える権利行使価格の全てのプットが支払いを開始します。候補価格を上下に動かしていくと、ある曲線が描かれ、その最下点が、人々が参照する数字となります。
定義から直接導かれる二つの特性があります。最小値は、コールの価値とプットの価値がドル建てでおおよそ釣り合う地点に位置するため、最もオープン・インタレストが大きい権利行使価格の近くになります。また、この数値はある時点のチェーンを表しており、別の取引セッション後に再計算すると、その値は変動します。
権利行使価格の段階における契約の分布
オープン・インタレストは、取引終了後の清算データから、1セッションに1回公開されます。ここでの図表では、そのデータの代わりとして、ある満期の全期間における取引された契約数量を可視化して使用していますが、その形状は同じです。すなわち、原資産価格の数ドル以内に契約が集中しています。2026年7月17日(金)満期のSPYチェーン上の全契約を、権利行使価格ごとにグループ化したものです。
各数値の背後にある正確な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権利行使価格がアット・ザ・マネーを通過するにつれて、分布は傾きます。736ドルの権利行使価格では、プットがコールを113.2千対8千上回っていました。757ドルでは、その傾きは逆転し、コールが131.7千、プットが8.1千となっています。プットは原資産価格の下に、コールは上に積み重なり、両者はどこか中間で交差します。この交差領域こそが、計算を行う前にマックス・ペインの数値が位置する場所であり、この統計について最初に知っておくべき点です。取引された契約数と未決済の契約数は異なる数値であり、オプション出来高とオープン・インタレストの違いで両者を区別しています。
ペイアウト曲線とその最下点
730ドルから765ドルまでの仮決済価格に対してステップ3から5を実行すると、計算が探索する形状が描かれます。
各数値の背後にある正確な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_price730ドルの決済では、このチェーンの保有者に11149.2百万ドルが支払われ、そのほぼ全額がプット保有者への支払いとなります。765ドルの決済では11083.9百万ドルが支払われ、そのほぼ全額がコール保有者への支払いとなります。両端の間では、曲線は緩やかな盆地状に落ち込みます。同じ合計額を小さい方から順に並べると、該当する権利行使価格が明らかになります。
各数値の背後にある正確な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最小値は$746に位置し、その金額は1898.2百万ドルです。最下点がどこにあるかだけでなく、盆地がどれだけ平坦かにも注目してください。次点の$747は1940.2百万ドル、6番目の候補$749は2272.8百万ドルです。700ドルを超える商品において、数ドルの範囲に6つの候補価格が密集しているため、チェーンに小幅な修正が加わるだけで、市場に変化がないにもかかわらず、公表される権利行使価格は変動します。
理論が主張すること
一般的な説では、原資産は満期に向かってマックス・ペインの権利行使価格に引き寄せられ、オプションの売り手がその方向に価格を押し上げるとされています。この一文には二つの異なる主張が含まれています。第一は統計的な主張で、決済価格はマックス・ペインの権利行使価格付近に集中するというものです。第二はメカニズムに関する主張で、誰かが価格を押し動かしているというものです。
第二の主張はより弱いものです。マックス・ペインの数値はオープン・インタレストを集計したものに過ぎず、どのカウンターパーティがロングで、どのカウンターパーティがショートなのかという情報は含まれていません。したがって、この説における売り手は、観測された事実ではなく仮定です。広範な市場のETFを特定の権利行使価格に動かせる参加者は、チェーン全体が生み出すヘッジフローをはるかに超える規模を必要とします。実際のヘッジメカニズムとして説明されているのは、ガンマに関するものです。ポジティブ・ガンマを持つディーラーのポジションは、上昇局面では売り、下落局面では買いによってヘッジを調整します。これは実務家が、取引量の多い権利行使価格付近でのダンピング(減衰)やピンニング(釘付け)と呼ぶルールです。当サイトのガンマ・エクスポージャーの解説では、その推定値とその根底にある前提について詳しく説明しています。
第一の主張はより妥当ですが、次のセクションで述べる大きな留保事項があります。満期時のピンニングに関する学術研究では、この効果は、オプションのオープン・インタレストが発行済み株式数に比べて大きい個別株において最も明確に確認されており、その効果はドルではなくセント単位で測定されています。
実際の権利行使価格はどの程度近いのか?
2026年2月から7月の間に、SPYでは6回の標準的な月次満期がありました。各満期について、図表はその満期週の契約から最小化する権利行使価格を計算し、満期セッションの実際の終値を表示し、その隣に単純な対照群として、1週間前のSPYの終値を同じ決済価格と比較して示しています。
各数値の背後にある正確な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最小化する権利行使価格と終値の差は、Jun 18満期の0.07%からMar 20満期の0.53%までの範囲であり、毎月0.6%未満に収まっていました。単独で見れば、これは高い的中率のように見えます。しかし、測定方法の二つの特徴が、これを割り引いて考えさせます。
第一に、候補となる権利行使価格の段階は、そもそも原資産価格を中心に設定されています。権利行使価格はアット・ザ・マネー付近に上場されており、合計に含まれる契約もそこに集中するため、計算はスポット価格周辺の狭い範囲から始まり、その範囲を大きく外れた答えを返すことはできません。第二の特徴はタイミングです。ここで各行に使用されている契約は、比較対象となる終値と同時期の、満期セッションを含む期間に取引されたものです。同じ期間から計算された数値を同じ期間と比較することは、その期間を説明しているのであって、事前に予測しているわけではありません。
最後の列は、注目すべき対照群です。Apr 17の1週間前のSPYの終値と決済価格の差は4.32%であったのに対し、最小化する権利行使価格の差は0.42%でした。May 15では、両者の差はわずかで、0.21%対0.12%でした。満期日に計算された統計は、1週間前の価格を大きく上回る精度を持つべきです。この図表では試みていませんが、誠実なテストは、1週間前にチェーンを固定し、その権利行使価格が、同じ日の画面に表示されている価格よりも終値を正確に予測できるかどうかを問うものです。
公表されたマックス・ペイン数値を読む際の注意点
- どの契約が含まれているかを確認してください。週次シリーズと月次シリーズのどちらを使用するか、また同じベンチマークを追跡するインデックス・チェーンとETFチェーンのどちらを使用するかは、情報提供者によって異なります。
- オープン・インタレストがいつ取得されたかを確認してください。清算ファイルは1セッションに1回更新されるため、セッション中に変動する日中数値は、別のデータから再計算されています。
- 最下点がどこかだけでなく、曲線全体がどのような形状かを確認してください。盆地が平坦であれば、公表された権利行使価格は、ほぼ同等の答えのうちの一つに過ぎないことを意味します。
- 近さをスキルと見なす前に、単純な代替案と比較してください。
満期のメカニズムによって、特定の日にどの契約が合計に含まれるかが決まります。オプションの満期時期では、そのカレンダーについて説明しています。同じチェーンから構築されるもう一つのポジショニング統計として、プット・コール・レシオは、コールとプットの構成比を直接測定します。
マックス・ペインに関するFAQ
オプション取引において、マックス・ペインとは何を意味するのか?
マックス・ペインとは、単一の満期における未決済オプションの保有者への総支払額が最小となる権利行使価格のことです。これは、上場されている全ての権利行使価格を仮の決済価格として想定し、最も安価なものを保持するという方法で、オープン・インタレストから計算されます。この数値は、オプション・チェーンの形状を表すものであり、予測を含むものではありません。
株価は常にマックス・ペインの権利行使価格で引けるのか?
いいえ。上記で測定した6回のSPY月次満期において、最小化する権利行使価格と終値の差は、最大でも0.53%以内でした。これは、単純なベンチマークや、候補となる権利行使価格が既に価格付近に集中しているという事実と比較すると、一見タイトに見えます。スポットを中心とした価格帯での近さは、弱いテストに過ぎません。
マックス・ペインの数値はどのくらいの頻度で変わるのか?
オープン・インタレストは、取引終了後の清算データから1取引セッションに1回公開されるため、公表されるマックス・ペインの数値のほとんどは、最大でも1日1回しか変動しません。セッション中に数値が変動するダッシュボードは、確定したオープン・インタレストではなく、取引高や日中チェーンのスナップショットから再計算しています。
マックス・ペインとガンマ・エクスポージャーは同じものか?
いいえ。両者は同じオプション・チェーンを読みますが、異なる質問に答えます。マックス・ペインは価格を特定するものであり、オープン・インタレストのみを使用し、価格モデルは必要としません。ガンマ・エクスポージャーは、1%の変動に対するヘッジフローの規模をドル建てで示すものであり、インプライド・ボラティリティ・サーフェスと、各契約のどの側をディーラーが保有しているかに関する仮定を必要とします。
マックス・ペインは個別株でも機能するのか?
計算自体は上場されている全てのチェーンで実行可能です。しかし、オープン・インタレストの大部分が少数の権利行使価格に集中している薄いチェーンでは、その出力はノイズが多くなります。また、この理論の一部を支持するピンニングに関する研究は、オプションのオープン・インタレストが取引可能な株式数に比べて大きい銘柄に集中しています。
上記の全ての図表は保存されたクエリであり、そのSQLはワンクリックで表示できます。Strasmoreターミナル上で、任意のチェーンに対して同じ権利行使価格ごとの分析を実行できます。