Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

AM決済とPM決済の指数オプションの違い

AM決済は木曜に取引終了、PM決済は金曜の終値まで取引できます。決済価格の違いと、2024年から2026年の差額を具体的に測定します。

AM決済とPM決済の指数オプションは、契約がどの価格を基準に現金決済されるかという一点で異なる。古典的な第三金曜日のS&P 500オプションなど、AM決済の契約は、金曜朝の寄り付きの約定値から算出した特別な始値を基準に決済される。最終取引は木曜午後に終了する。一方、SPXWのウィークリーやSPY ETFのオプションなど、PM決済の契約は、東部時間午後4時の終値を基準に決済され、取引は大引けまで続く。

この違いは事務的なものに聞こえる。しかし、保有者がもはや取引できないポジションを抱えたまま過ごす時間数を左右し、その他の条件が同じ契約でも、同じ日に異なる決済額となる可能性がある。以下では、各決済方式の仕組みを説明し、2024年1月から2026年7月までのすべての月次満期を対象に、その差の大きさを測定する。

AM決済とは何か

AM決済では、契約の決済価格に寄り付きの値を用いる。ただし、ここでいう寄り付きは、実際に誰かが取引した価格ではなく、算出された値である。満期日の朝、取引所は指数構成銘柄すべてについて、各銘柄で通常取引の最初に成立した価格を、その成立時点にかかわらず取得する。そして、それらを単一の数値にまとめる。これが、S&P 500ではティッカーSETで公表される特別始値である。同指数のAM決済契約はすべて、この一つの数値だけを基準に現金決済される。

この定義から、四つの仕組みが導かれる。

  • 最終取引セッションは木曜日に終了する。AM決済の第三金曜日限月契約は、満期日の前日の午後が最終取引となる。木曜日の取引終了後は、ポジションを決済、ロール、調整できない。
  • 決済は現金で行われる。指数オプションでは差額がドルで支払われ、株式の受け渡しは発生しない。行使方式はヨーロピアン方式で、満期時にのみ行使できる(保有者にとっての違いはアメリカン・オプションとヨーロピアン・オプションで解説している)。
  • この気配値は一時点のスナップショットではない。構成銘柄はそれぞれ異なる時刻に寄り付き、各銘柄の最初のプリントが成立した時点で、その価格が算入される(各銘柄の当日最初の価格がどのように決まるかは寄り付きオークションで解説している)。
  • 数値の公表は遅れる。最後の構成銘柄が寄り付いた後に公表されるため、取引開始から数分後になることもある。

PM決済とは何か

PM決済では、満期日の原資産の終値を用いる。東部時間午後4時時点の価格で、引けのオークションによって決定される。これは多くの取引日において最大の単一約定となる(引けのオークションでは、その価格がどのように形成されるかを説明している)。契約は取引終了時まで売買される。午後3時55分にポジションを手仕舞いたい保有者は、翌朝まで価格の確定を待つのではなく、リアルタイムの市場で売却できる。

PM決済は、個人投資家が取引する商品の大半を対象とする。SPXWの週次契約や月末の指数契約に加え、SPY、QQQ、IWMなどの上場ETFオプションも含まれる。ETFオプションにはもう一つ違いがある。米国式で、株式で決済されるため、割り当てを受けると現金ではなくファンドが引き渡される。オプションの満期では、週次、月次、四半期のサイクルを整理している。

最終取引から決済までの間に、市場はどこまで動くのか

AM決済の保有者にとって、最後の判断時点は木曜日の終値である。決済値の形成は、その17時間半後に始まる。下のパネルは、S&P 500連動ETFであるSPYについて、この時間帯の値動きを月次満期ごとに一行で示している。木曜日の終値から金曜日の寄り付きまでの夜間の値動きと、寄り付きから金曜日の終値までの値動きを並べた。

クエリ2024年1月以降の毎月限月:オーバーナイト・ギャップ、その後のセッション
各数値の背後にある正確なSQL
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(argMin(open, window_start)) AS first_print,
           toFloat64(argMax(close, window_start)) AS last_print
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
sequenced AS (
    SELECT session_date,
           first_print,
           last_print,
           any(last_print) OVER (ORDER BY session_date ASC
                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM sessions
)
SELECT session_date AS expiration_date,
       formatDateTime(session_date, '%b %e, %Y') AS expiry_label,
       round((first_print / prior_close - 1) * 100, 2) AS overnight_gap_pct,
       round((last_print / first_print - 1) * 100, 2) AS friday_session_pct
FROM sequenced
WHERE prior_close > 0
  AND session_date >= toDate('2024-01-01')
  AND toDayOfWeek(session_date) = 5
  AND toDayOfMonth(session_date) BETWEEN 15 AND 21
ORDER BY expiration_date
Run this yourself

二つの列は、別々のリスクとして読む必要がある。この期間の29回の月次満期を通じて、Jan 19, 2024の寄り付きは木曜日の終値から0.25%動き、その後の取引時間中には1%動いた。Jul 17, 2026では、同じ二つの値がそれぞれ-1.16%と0.15%だった。PM決済の保有者は二つ目の列の値動きを受け入れつつ、その時間帯に取引できる。AM決済の保有者が受け入れるのは一つ目の列であり、その時間帯には取引できない。

同じ行使価格、二つの清算価格

清算方法以外の条件をすべて固定する。木曜日の終値に最も近い整数ドルを行使価格とするコールを一つ取り上げる。これは、AM清算の保有者が取引できる最後の水準である。AMのペイオフは、金曜日の寄り付きの約定値から行使価格を引いた額とし、ゼロを下限とする。PMのペイオフは、金曜日の終値から行使価格を引いた額とし、ゼロを下限とする。同じ行使価格、同じ原資産、同じ満期日でも、結果は二つに分かれる。

クエリ同一のアット・ザ・マネー・コールを2通りで決済:2024年1月以降の乖離幅上位十件
各数値の背後にある正確なSQL
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(argMin(open, window_start)) AS first_print,
           toFloat64(argMax(close, window_start)) AS last_print
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
sequenced AS (
    SELECT session_date,
           first_print,
           last_print,
           any(last_print) OVER (ORDER BY session_date ASC
                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM sessions
),
expirations AS (
    SELECT session_date,
           first_print,
           last_print,
           round(prior_close, 0) AS strike,
           abs(first_print / prior_close - 1) * 100 AS gap_abs_raw
    FROM sequenced
    WHERE prior_close > 0
      AND session_date >= toDate('2024-01-01')
      AND toDayOfWeek(session_date) = 5
      AND toDayOfMonth(session_date) BETWEEN 15 AND 21
)
SELECT formatDateTime(session_date, '%b %e, %Y') AS expiry_label,
       round(gap_abs_raw, 2) AS gap_abs_pct,
       round(greatest(first_print - strike, 0), 2) AS am_settlement_usd,
       round(greatest(last_print - strike, 0), 2) AS pm_settlement_usd,
       round(abs(greatest(last_print - strike, 0) - greatest(first_print - strike, 0)), 2) AS settlement_spread_usd
FROM expirations
ORDER BY settlement_spread_usd DESC
LIMIT 10
Run this yourself

29満期の中で最も大きな差が生じたのはDec 20, 2024だった。寄り付きの約定値が木曜日の終値から0.74%離れていたためだ。このコールのAM版は$0で清算され、PM版は$4.87で清算された。差額は1株当たり$4.87となる。上場オプションの1契約は100株を対象とするため、1契約当たりの現金差額はその100倍になる。ランキング第10位のJun 20, 2025でも、1株当たり$1.38の差が生じた。

この契約は仮想的なものだ。実際の市場ではSPYのオプションはPM清算であり、この試算は行使価格、原資産、対象日を固定したまま、清算価格だけを切り分けている。

トリプルウィッチングの朝に差が集中する理由

トリプルウィッチングとは、株価指数先物、株価指数オプション、個別株オプションが同時に満期を迎える四半期ごとの取引日である(仕組みはトリプルウィッチングで説明し、日程は2026年のトリプルウィッチング日にまとめている)。そのうち午前の値段で決済される契約は、同じ始値の気配値を参照する。この気配値は一度だけ算出される。

クエリ毎セッション同じ仮想取引:限月日の寄り付きとそれ以外のテープ
各数値の背後にある正確なSQL
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(argMin(open, window_start)) AS first_print,
           toFloat64(argMax(close, window_start)) AS last_print,
           toFloat64(sumIf(volume, (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                + toMinute(toTimeZone(window_start, 'America/New_York'))) = 570)) AS open_minute_shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
sequenced AS (
    SELECT session_date,
           first_print,
           last_print,
           open_minute_shares,
           any(last_print) OVER (ORDER BY session_date ASC
                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM sessions
),
labelled AS (
    SELECT session_date,
           multiIf(toDayOfWeek(session_date) = 5
                       AND toDayOfMonth(session_date) BETWEEN 15 AND 21
                       AND toMonth(session_date) IN (3, 6, 9, 12), 'triple witching Friday',
                   toDayOfWeek(session_date) = 5
                       AND toDayOfMonth(session_date) BETWEEN 15 AND 21, 'other monthly expiration',
                   'ordinary session') AS bucket,
           abs(first_print / prior_close - 1) * 100 AS gap_abs_raw,
           abs(greatest(last_print - round(prior_close, 0), 0)
               - greatest(first_print - round(prior_close, 0), 0)) AS spread_raw,
           open_minute_shares / 1000000 AS open_minute_millions
    FROM sequenced
    WHERE prior_close > 0
      AND session_date >= toDate('2024-01-01')
)
SELECT bucket,
       count() AS group_size,
       round(quantileDeterministic(0.5)(gap_abs_raw, cityHash64(session_date)), 2) AS median_gap_abs_pct,
       round(quantileDeterministic(0.5)(spread_raw, cityHash64(session_date)), 2) AS median_settlement_spread_usd,
       round(quantileDeterministic(0.5)(open_minute_millions, cityHash64(session_date)), 2) AS median_open_minute_volume_m
FROM labelled
GROUP BY bucket
ORDER BY group_size ASC
Run this yourself

618の通常取引日すべてで同じ仮説を検証しても、計算結果自体は目立ったものではない。決済価格の差の中央値は、トリプルウィッチングの金曜日が$0、その他の月次満期日が$0.8、通常取引日が$0.95だった。夜間のギャップの中央値も同じ傾向を示し、それぞれ0.49%と0.28%だった。

朝の値動きを特徴づけるのは、取引の集中である。トリプルウィッチングの金曜日には、SPYの取引開始後一分間の売買高が中央値で0.95百万株に達した。通常取引日では0.62百万株だった。四半期分の午前決済対象の指数ポジションが、この時間帯の約定価格を基準に決済される。これに加え、指数先物のロールや、その日の午後に満期を迎える個別株オプションの取引も重なる。行使価格別の建玉の分布については、別の論点となる(マックスペイン)。

指数が一度も付けなかった水準に清算値が位置する理由

公表される指数水準は、直近の約定価格から連続的に算出されるため、同じ時点で実際に存在した価格だけを示す。これに対し、特別始値は、同時には存在しなかった一連の価格から一度だけ算出される。最も速い構成銘柄は9時30分00秒に約定するが、最も遅い銘柄では数分かかることがあり、その間にも指数は動く。この気配値は、指数そのものの観測値ではなく、各銘柄の最初の約定価格を算術的に組み合わせた値である。

保有者がティックデータで確認できる点は二つある。

  • 清算値が、午前中に公表された指数のレンジの外側に位置することがある。そうなっても異常ではない。その数値は、誰も取引したことのない水準である。
  • 各銘柄の最初の約定価格のばらつきが大きいほど、特別始値は指数の最初のティックから離れやすい(寄り付きでスプレッドが拡大する理由では、寄り付き直後がそのセッションで最も気配値の幅が広くなりやすい理由を説明している)。
方法とデータに関する注記

現物指数は取引されないため、上記の測定では、各基準時点の指数水準の代替としてS&P 500連動ETFのSPYを使用している。価格には通常取引時間の1分足を用いた。午前の約定価格には東部時間午前9時30分のバーの始値を、引けには午後4時直前の最後のバーの終値を使用している。月次満期は15日から21日の間にある金曜日とし、トリプルウィッチングの金曜日は、そのうち3月、6月、9月または12月に該当するものとする。

想定コールの行使価格は木曜日の終値に最も近い整数ドルとし、満期ごとに再計算した。いずれのペイオフも、清算時点の本質的価値をゼロ以上に切り上げたものとする。プレミアム、時間価値、権利行使コストは計算対象外である。

クエリ計算の基礎となる価格:木曜の終値、権利行使価格、金曜の始値と終値
各数値の背後にある正確なSQL
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(argMin(open, window_start)) AS first_print,
           toFloat64(argMax(close, window_start)) AS last_print
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
sequenced AS (
    SELECT session_date,
           first_print,
           last_print,
           any(last_print) OVER (ORDER BY session_date ASC
                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM sessions
)
SELECT session_date AS expiration_date,
       formatDateTime(session_date, '%b %e, %Y') AS expiry_label,
       round(prior_close, 2) AS thursday_close,
       round(prior_close, 0) AS strike_usd,
       round(first_print, 2) AS friday_open,
       round(last_print, 2) AS friday_close
FROM sequenced
WHERE prior_close > 0
  AND session_date >= toDate('2024-01-01')
  AND toDayOfWeek(session_date) = 5
  AND toDayOfMonth(session_date) BETWEEN 15 AND 21
ORDER BY expiration_date
Run this yourself

行使価格の列は、木曜日の終値をドル単位に丸めた値である。二つの清算値の参照値は、その隣の列にある。

AM決済とPM決済の指数オプション:違いは何か

  • AM決済:S&P 500(SPX)、Nasdaq 100(NDX)、Russell 2000(RUT)の標準的な第三金曜日限月。最終取引は木曜日午後で、金曜日の始値を基準に現金決済される。
  • PM決済:SPXWのウィークリーおよび月末の指数契約。東部時間午後4時の終値を基準に現金決済され、取引は取引終了時刻まで続く。
  • PM決済かつ現物決済:SPY、QQQ、IWMなどの上場ETFオプション。アメリカン・スタイルで、権利行使の割り当てを受けると株式で受け渡される。
  • 水曜日の例外:VIXオプションと先物は、金曜日ではなく水曜日朝の特別な始値を基準に決済される。

ルートシンボルを見れば判別できる。S&P 500では、SPXがAM決済の第三金曜日限月、SPXWがPM決済のウィークリーだ。同じ指数に二つのルートがあり、異なる価格を基準に数時間の差を置いて決済される。

よくある質問

オプションでAM決済とは何を意味しますか?

AM決済とは、終値ではなく、満期日の朝に成立した寄り付きの約定値から算出した特別な始値気配に基づいて、契約を現金決済する仕組みです。S&P 500では、この数値がティッカーSETで公表されます。契約の最終取引は、前日の午後に行われます。

AM決済のオプションは満期日に取引されますか?

いいえ。標準的な第三金曜日満期の指数オプションは、満期日前の木曜日の午後に最終取引を迎えます。決済値は翌朝に算出され、その間にポジションを決済したり、期先へロールしたりすることはできません。

SPYオプションはAM決済ですか、それともPM決済ですか?

PM決済です。SPY、QQQ、IWMなどの上場ETFオプションは、東部時間午後4時の終値に基づいて決済されます。取引は引けまで続き、権利行使時には現金ではなく株式が受け渡されます。

決済価格が指数の始値と異なることがあるのはなぜですか?

指数の始値は、連続的に算出される指数水準の一時点の値です。一方、決済値は、構成銘柄それぞれの通常取引開始後の最初の約定値を組み合わせて算出されます。これらの約定は異なる時刻に成立します。つまり、同時には存在しなかった価格を組み合わせた値であるため、午前中に指数が示した値幅の外側になることもあります。

第三金曜日が取引所の休場日に当たる場合、どうなりますか?

月次の満期は木曜日に前倒しされます。その場合、AM決済の契約は木曜日朝の始値気配に基づいて決済され、最終取引は水曜日の午後に行われます。オプションの満期日では、こうしたカレンダー変更を確認できます。


上記のすべての数値は、通常取引時間の分足データに対して実行した保存クエリから取得したものです。各パネルを開くとSQLを確認できます。同じ期間をStrasmoreターミナルで実行することもできます。