デルタ・ヘッジの仕組みを実務で理解する
デルタ・ヘッジの実務を解説します。ショート・オプションのブックが各引けで売買する株式と、往復取引がヘッジャーの損失になる理由を説明します。
デルタ・ヘッジとは、オプションデスクが方向性を中立に保つ方法です。オプションのデルタを相殺する株式ポジションを持ち、原資産が動くたびにそのポジションを売買し直します。オプションを売っているブックは、株価が上昇した後に株式を買い、下落した後に売ることになります。デスクの損益は、株価が最終的にどこで終わったかではなく、どれだけの値幅を動いたかに連動します。
デルタ・ヘッジとは
デルタは、原資産が1ドル動いたときのオプション価格の変化です。コールでは0から1、プットでは0からマイナス1で示します。米国株のオプション1契約は100株を対象とするため、デルタに100を掛けると株数になります。これは、その時点で契約が株式何株分に相当するかを示す数値です。オプションのデルタに関するガイドでは、この換算方法を詳しく説明しています。
デルタ・ヘッジでは、その株数に対して反対方向の株式ポジションを設定します。デルタ0.50のコールを1契約売ると、ブックは50株の空売りに相当するポジションを持つことになります。50株を買えば、デルタはゼロになります。ここでいう「ヘッジ済み」とは、狭い意味での中立を指します。つまり、その瞬間、その価格水準での小幅な値動きに対して中立ということです。デルタは固定値ではありません。株価の変動や満期までの時間の経過に伴って変化するため、株式ポジションもそれに合わせる必要があります。
ヘッジが固定されない理由
権利行使価格ごとのデルタは、段差ではなく曲線を描きます。以下のパネルは、2026年6月について、残存期間が25〜35日の契約を対象に、スポット価格から権利行使価格がどれだけ離れているかごとに、SPYのコールとプットのデルタを平均したものです。
各数値の背後にある正確なSQL
SELECT
concat(if(pct_from_spot >= 0, '+', ''), toString(pct_from_spot), '%') AS strike_vs_spot,
round(avgIf(delta, is_call), 3) AS call_delta,
round(avgIf(delta, is_put), 3) AS put_delta
FROM
(
SELECT
toInt16(round((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 100)) AS pct_from_spot,
lower(option_type) IN ('call', 'c') AS is_call,
lower(option_type) IN ('put', 'p') AS is_put,
delta
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND iv_converged = 1
AND volume > 0
AND underlying_close > 0
AND days_to_expiry BETWEEN 25 AND 35
AND date >= '2026-06-01'
AND date < '2026-07-01'
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.05
)
GROUP BY pct_from_spot
HAVING countIf(is_call) > 0 AND countIf(is_put) > 0
ORDER BY pct_from_spot曲線を左から右へ見ると、問題の全体像が分かります。権利行使価格がスポット価格から-5%離れたコールの平均デルタは0.839でした。+5%では、同じ満期期間の平均デルタは0.099でした。プットの線はその鏡像となり、低い権利行使価格の-0.164から高い権利行使価格の-0.864まで推移します。株価がこの曲線上を移動すると、ヘッジに必要な株数はその位置ごとに変わります。ガンマとは、この曲線の傾き、つまりデルタ自体の変化率を指します。
強制される売買はどれほどの規模か
ガンマがリバランスの規模を決めます。以下のパネルは、ガンマをデスクが実際に売買する単位へ換算したものです。SPYのアット・ザ・マネー契約を対象に、満期までの残存期間ごとに、原資産が1%動いた場合に100契約がヘッジャーへ強いる売買株数を示しています。
各数値の背後にある正確なSQL
SELECT
multiIf(bucket = 1, '0-2 days',
bucket = 2, '3-7 days',
bucket = 3, '8-21 days',
bucket = 4, '22-45 days',
'46-90 days') AS expiry_window,
toUInt32(round(avg(shares_per_contract) * 100)) AS hedge_shares
FROM
(
SELECT
multiIf(days_to_expiry <= 2, 1,
days_to_expiry <= 7, 2,
days_to_expiry <= 21, 3,
days_to_expiry <= 45, 4,
5) AS bucket,
toFloat64(gamma) * toFloat64(underlying_close) AS shares_per_contract
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND iv_converged = 1
AND volume > 0
AND underlying_close > 0
AND days_to_expiry BETWEEN 0 AND 90
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.01
AND date >= '2026-06-01'
AND date < '2026-07-01'
)
GROUP BY bucket
ORDER BY bucket残存期間が0-2 daysの契約では、原資産が1%動くとヘッジが約3429株変化しました。同じ100契約でも、46-90 daysでは約587株変化しました。契約数も原資産も同じでも、強制される売買量は大きく異なります。短期契約のブックは大きく、頻繁にリバランスします。長期契約のブックは緩やかに変化します。時間経過に伴うグリークスの変化では、満期に近づくにつれてこの傾きが急になる過程を確認できます。
五つの終値と、その裏側にある株式
一連の仕組みを、架空の値動きで最初から最後まで確認します。価格は計算を簡単にするために設定したもので、各デルタはモデルで算出せず、単純に示しています。デスクは、株価100ドルの銘柄について、アット・ザ・マネーのコール10契約を1株当たり2.00ドルで売り、2,000ドルを受け取ります。10契約、1契約当たり100株、1株当たり2.00ドルです。各終値でヘッジを中立に戻します。
- 終値1。株価は100.00ドル、デルタは0.50です。ブックはデルタ500のショートなので、ヘッジとして500株を買います。ヘッジ・ポジションは500株のロングです。
- 終値2。株価は103.00ドル、デルタは0.62です。目標株数は620株なので、ヘッジは120株を追加購入します。上昇局面を保有した500株は1,500ドルの利益となりました。
- 終値3。株価は99.00ドル、デルタは0.44です。目標株数は440株に減るため、ヘッジは180株を売却します。下落局面を保有した620株は2,480ドルの損失となり、ヘッジは980ドルの損失超過になりました。
- 終値4。株価は102.00ドル、デルタは0.58です。目標株数は580株なので、ヘッジは140株を買います。440株の利益は1,320ドルとなり、ヘッジは340ドルの利益超過になりました。
- 終値5。株価は100.00ドル、デルタは0.48です。目標株数は480株なので、ヘッジは100株を売却します。580株の損失は1,160ドルとなり、ヘッジは820ドルの損失超過で終わりました。
株価は出発点とまったく同じ水準で終わりました。ヘッジャーは103ドルと102ドルで買い、99ドルと100ドルで売りました。オプションがまだ残っている状態で、受け取った2,000ドルのプレミアムに対し、株式ポジションでは820ドルの損失です。どの取引も誤りではありません。その時点では、機械的に正しい取引でした。数値が変わっても残るのは、売買の方向です。上昇した終値の後には必ず買い、下落した終値の後には必ず売っています。オプションを売っているブックでは、このパターンを逆転できません。契約数を倍にすればガンマも倍になるため、一覧の各取引も倍になり、同じ値動きに対するコストも倍になります。マーケットメーカーが損失を出す理由では、プレミアムでこのコストを賄えない場合を説明しています。
時間価値の減少も損益の一部です。この五つの終値の間に、オプションの時間価値も減少しました。売り手が得たその利益が、ヘッジ損失の原資になります。値動きが穏やかなら、プレミアムは使われずに残ります。値動きが不規則ならプレミアムが消費され、十分に不規則な場合はプレミアム全額を上回るコストになります。
重要なのは経路であり、到達点ではない
ヘッジャーは純変化ではなく、値動きの経路に対して取引します。以下のパネルは、2026年6月について、身近な四銘柄の両方を測定したものです。経路の長さは、毎日の騰落率から符号を除いて合計した値です。純変化は、最初の終値から最後の終値までの単純な距離です。
各数値の背後にある正確なSQL
SELECT
ticker,
round(path, 1) AS path_length_pct,
round(net, 1) AS net_move_pct,
round(path / greatest(net, 0.05), 1) AS path_to_net_ratio
FROM
(
SELECT
ticker,
arraySum(arrayMap((a, b) -> abs(a / b - 1) * 100,
arraySlice(px, 2),
arraySlice(px, 1, length(px) - 1))) AS path,
abs(px[-1] / px[1] - 1) * 100 AS net
FROM
(
SELECT
ticker,
arrayMap(t -> t.2, arraySort(t -> t.1, groupArray((session_date, session_close)))) AS px
FROM
(
SELECT
ticker,
date AS session_date,
toFloat64(max(close)) AS session_close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'KO')
AND date >= '2026-06-01'
AND date < '2026-07-01'
GROUP BY ticker, date
)
GROUP BY ticker
)
)
ORDER BY path_to_net_ratio最も差が小さい銘柄であるMSFTでさえ、開始時点から19%の位置で終わるまでに、日々の値動きとして43.2%を動きました。これは1に対して2.3の比率です。パネルの反対側では、SPYが自身の純変化の11.4倍の値幅を動きました。方向性を取るトレーダーが収益の基準とするのは二つ目の数値です。デルタ・ヘッジャーが負担するのは一つ目の数値です。
プレミアムが実際に支払うもの
売り手が受け取るプレミアムは、市場が予想する値動きであるインプライド・ボラティリティを基に価格付けされます。一方、ヘッジコストは、実際に生じた値動きである実現ボラティリティで決まります。以下のパネルは、SPYについて直近1年間の月ごとの両方を同じ軸に示したものです。
各数値の背後にある正確なSQL
WITH
monthly_iv AS
(
SELECT
toStartOfMonth(date) AS m,
round(avg(implied_volatility) * 100, 1) AS implied_vol_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND iv_converged = 1
AND volume > 0
AND underlying_close > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
AND date >= '2025-08-01'
AND date < '2026-08-01'
GROUP BY m
),
monthly_rv AS
(
SELECT
m,
round(arrayReduce('stddevPop', rets) * sqrt(252) * 100, 1) AS realized_vol_pct
FROM
(
SELECT
m,
arrayMap((a, b) -> log(a / b),
arraySlice(px, 2),
arraySlice(px, 1, length(px) - 1)) AS rets
FROM
(
SELECT
toStartOfMonth(session_date) AS m,
arrayMap(t -> t.2, arraySort(t -> t.1, groupArray((session_date, session_close)))) AS px
FROM
(
SELECT
date AS session_date,
toFloat64(max(close)) AS session_close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2025-08-01'
AND date < '2026-08-01'
GROUP BY date
)
GROUP BY m
)
WHERE length(rets) > 5
)
)
SELECT
toString(iv.m) AS month,
iv.implied_vol_pct AS implied_vol_pct,
rv.realized_vol_pct AS realized_vol_pct
FROM monthly_iv AS iv
INNER JOIN monthly_rv AS rv ON rv.m = iv.m
ORDER BY iv.mこのチャートの直近月では、満期まで20〜45日のSPYのアット・ザ・マネー契約について、インプライド・ボラティリティは平均14.8%でした。一方、原資産の実現ボラティリティは12.1%でした。実現ボラティリティの線がインプライド・ボラティリティを下回る月は、値動きによるヘッジコストが、減少したプレミアムを下回った月です。上回る月はその逆です。この差こそが、相場の方向ではなく、デルタ・ヘッジされたオプション・ブックが負うエクスポージャーです。マーケットメーカーが利益を上げる方法では、これに加わるスプレッド収益を説明し、ガンマ・エクスポージャーでは、市場全体で強制される売買を集計しています。
デスクが実際にヘッジする方法
ほとんどのデスクは、毎回の終値でリバランスするわけではありません。一定の時間間隔で機械的に取引するデスクも少数です。継続的にヘッジすればデルタを正確に追随できますが、手数料とスプレッドの支払いでプレミアムが失われます。通常はバンドを設定します。ネット・デルタが許容範囲内にある間はポジションを維持し、範囲を外れたときに中立へ戻す方向で取引します。バンドを広くすれば取引回数は減りますが、取引間の乖離は大きくなります。デスクは、取引前にブック全体をネットします。そのため、ある満期のコール・ショートと別の満期のコール・ロングは、株式を1株動かす前に相殺できます。ベータ加重ポートフォリオ・デルタでは、異なる原資産間で同じネット計算を行う方法を説明しています。
FAQ
デルタ・ヘッジを簡単に説明すると?
オプションの方向性エクスポージャーを相殺する株式ポジションを保有することです。デルタに100を掛けると1契約に相当する株数になり、ヘッジャーはその反対のポジションを持ち、デルタの変化に合わせて更新します。
マーケットメーカーは売ったオプションをすべてヘッジするのですか?
契約ごとではなく、ブック全体のネット・エクスポージャーをヘッジします。相殺できるポジションはまず内部で相殺し、残ったデルタだけが株式取引として原資産に反映されます。
値動きの荒い銘柄では、なぜデルタ・ヘッジが損失を出すのですか?
オプションを売っているブックでは、上昇後に買い、下落後に売る形でリバランスします。往復する値動きでは、買値が売値を上回るため、その差額が実現コストになります。あらかじめ受け取ったプレミアムが、そのコストの原資です。
トレーダーはどの程度の頻度でデルタ・ヘッジをリバランスしますか?
実務上、決まった間隔はありません。頻繁にリバランスすればデルタをより正確に追随できますが、スプレッドや手数料の支払いが増えます。そのため、多くのデスクはデルタの許容バンドを設定し、ポジションが範囲を外れた場合だけ取引します。
デルタ・ヘッジされたポジションはリスクフリーですか?
いいえ。ある瞬間の小幅な値動きを中立化するだけです。ギャップや急変、インプライド・ボラティリティの変化、配当、資金調達コストは残ります。原資産が動く過程で、ヘッジ自体もコストを実現させます。
これらのパネルの測定方法
オプションのパネルでは、1契約当たりの日次グリークスを参照し、実際に取引され、インプライド・ボラティリティを正常に算出できた契約に絞っています。「アット・ザ・マネー」は、売買規模のパネルでは当日の原資産終値から権利行使価格が1%以内、デルタ曲線では5%以内の契約を指します。強制売買の数値はガンマを株数に換算したものです。1契約のヘッジは、原資産が1%動くと、おおよそガンマに株価を掛けた分だけ変化します。パネルではこれを100契約分に拡大しています。2026年6月と直近1年間の期間は固定日付であるため、後日アクセスしても数値は変わりません。五つの終値による例は架空のもので、各デルタは価格モデルから導出せず、数値を直接設定しています。
このページの各パネルには、作成に使ったSQLがそのまま掲載されています。パネルを開けば数値の集計方法を確認できます。また、Strasmore terminalで同じ質問を平易な英語で入力することもできます。