qkit4: Portfolio Risk and Hedging
Greeks統合、VaR/CVaR、Delta-Gammaヘッジ、そして深層ヘッジング
pt.1〜3では個別のオプションを分析してきた。pt.4ではこれらをポートフォリオとして統合管理する。複数のオプションと原資産を組み合わせたポジション全体のリスクを定量化して、ヘッジでコントロールする技術の話。
ポートフォリオリスク管理には2つの柱がある。第一はGreeksによる感応度管理(局所的・微分的アプローチ)、第二はVaR/CVaRによる分布的リスク定量化(大域的・統計的アプローチ)。実務ではこの両方を組み合わせて、さらにストレステストで補完するよ。
1. ポートフォリオGreeksの集約
ポートフォリオが 個のオプションポジション で構成されるとする。 は保有枚数(正=ロング、負=ショート)。ポートフォリオ価値は、
Greeksの線形性から、ポートフォリオGreeksは各ポジションのGreeksの加重和になる。
原資産(株式)自体もポジションに含む場合、株式1株のGreeksは 、、、。シンプル。
複数の原資産 に依存するオプションを含む場合はGreeksがベクトル/行列になる。 は対称行列(クロスガンマを含む)。
実務ではGreeksをドル建てで表現することが多くて、
Dollar Deltaは「原資産が1%動いたときのポートフォリオP&L」の近似を与える。
2. Delta-Gammaテイラー展開
原資産の変動 に対するポートフォリオの損益を、テイラー展開で近似する。
Delta近似(一次)は線形で、小さな に対して有効。だけどオプションポートフォリオでは非線形性(Gamma)が重要だから、Delta-Gamma近似(二次)が標準になる。
を仮定すると、Delta-Gamma近似によるP&L分布は正規分布じゃなくてカイ二乗分布の線形結合になる。 とおくと、
、。 の分布は一般に非正規だけど、最初の4モーメントからCornish-Fisher展開でVaR分位点を近似できる。
Delta-Gamma近似が破綻するケースもある。デジタルオプション(ペイオフが不連続でGammaが無限大になる)、満期直前のATMオプション(Gammaが非常に大きい)、大きなギャップ/ジャンプ(テイラー展開の前提が成立しない)。こういう場合はフルリプライシング(完全再計算)MCが必要。
3. ヘッジ戦略
Delta-Neutralヘッジ
ポートフォリオ にすることで、原資産の小幅な変動に対するリスクを消去する。必要な原資産のポジション量は、
たとえば (Call 10枚ロング、各 、乗数100として)の場合、株式を350株ショートする。
Delta-Gammaヘッジ
だけだと大きな に対してリスクが残る( 項)。Gammaもゼロにするには、もう1つのオプション(ヘッジ・インストゥルメント)が必要。
ヘッジ・インストゥルメント (Gamma = 、Delta = )を 枚追加するとき、連立方程式を解く。
Delta-Gamma-Vegaヘッジ
の3つを同時にゼロにするには、2つの追加オプションと原資産が必要。
残ったDelta残差は原資産でヘッジ。一般に 個のGreeksをゼロにするには 個の独立なインストゥルメント(+原資産)が必要になる。
離散時間ヘッジとリバランス
BSMの連続ヘッジは理論上の理想。実際には離散的にリバランスする。リバランス間隔 のヘッジ誤差は、
リバランス頻度にはトレードオフがある(Leland, 1985)。高頻度だとヘッジ誤差は小さいけど取引コストが大きい。低頻度だとヘッジ誤差が大きいけど取引コストは小さい。
Leland (1985) の取引コスト調整ボラティリティは、
はラウンドトリップ取引コスト率。 はレランド数と呼ばれて、 だとヘッジ自体が損失を生む。
リバランス・トリガーとしては、Deltaバンド法( が閾値を超えたらリバランス)がある。Sepp (2017) の最適バンドは、
4. Value at Risk (VaR)
信頼水準 でのVaRは、損失分布 の 分位点。
「 の確率で、損失は を超えない」。たとえば95% VaR = $1Mは「95%の確率で1日の損失は$1Mを超えない」。
分散共分散法(パラメトリックVaR)
リターンが正規分布 に従うと仮定して、
は正規分位点(95%で 、99%で )。
マルチアセットの場合、ポートフォリオの分散はウェイトベクトル と共分散行列 から、
計算が高速なのが利点。だけど正規分布仮定によりテールリスクを過小評価するのが欠点。
ヒストリカルVaR
過去 日のリターンを損失に変換して、経験分布の分位点を取る。分布仮定不要なのがいいけど、過去データに依存するから将来が過去と異なる場合に弱い。
EWMA重み付きヒストリカルVaR(Boudoukh, Richardson & Whitelaw, 1998)は、
(典型的には 〜)。近い過去に大きな重みを与えて市場環境の変化に適応する。
Cornish-Fisher VaR
正規分布からのズレをスキューネス とカートシス で補正する。
Delta-Gamma近似のP&L分布は非正規だから、Cornish-Fisher展開でVaR分位点を補正するのが定番。
モンテカルロVaR
リスクファクター(株価、IV、金利)の将来分布をシミュレートして、各シナリオでポートフォリオをフルリプライシング、P&L分布の分位点を取る。最も柔軟だけど計算コストが高い。非線形リスク(Gamma、エキゾチック)を正確に捕捉できるのが強み。
VaRの限界
VaRはコヒーレントなリスク測度ではない(Artzner et al., 1999)。劣加法性(sub-additivity)が一般に成立しないから、
が成り立たない場合がある。分散効果(ポートフォリオ構築によるリスク低減)を過大評価する可能性があって、この欠点を克服するのがCVaR。
5. Conditional VaR (CVaR) / Expected Shortfall
連続分布の場合、CVaRはVaRを超える損失の条件付き期待値。
一般の分布(不連続含む)ではRockafellar & Uryasev (2000) の定義で、
CVaRは常に を満たす。
CVaRのコヒーレント性
Artzner, Delbaen, Eber & Heath (1999) のコヒーレント・リスク測度には4つの公理がある。単調性、平行移動不変性、正斉次性、劣加法性。VaRは最初の3つは満たすけど劣加法性を満たさない。CVaRは4つ全部を満たすコヒーレントなリスク測度。バーゼルIII/IVではVaRからCVaR(Expected Shortfall)への移行が進んでいる。
正規分布でのCVaR閉形式
のとき、
は標準正規密度、 はその逆関数。
Rockafellar-Uryasev最適化
Rockafellar & Uryasev (2000) の核心的な結果として、CVaRは補助関数を最小化することで計算できる。
はポートフォリオ配分、 は不確実性(市場リスクファクター)、 は損失関数。 が に対して線形(凸)なら も凸で、線形計画法(LP)で効率的に解ける。これが大規模ポートフォリオでCVaR制約付き最適化が実用的な理由。
6. ストレステスト
特定の市場シナリオ( が 、 が 、 が )を想定して、ポートフォリオをフルリプライシング。
ヒストリカル・ストレステストでは、過去の実際の危機イベント(2008年リーマンショック、2020年3月コロナショック、2022年利上げ等)のリスクファクター変動を現在のポートフォリオに適用する。こっちのほうがシナリオに説得力がある。
P&Lプロファイルとしては、 をx軸、 をy軸にプロットした2次元プロファイルを描く。固定 のスライスと 変動を含むサーフェスの2種類が基本。
7. 深層ヘッジング(Deep Hedging)
Hull & White (2017)、Buehler et al. (2019) が提唱した手法。強化学習やニューラルネットワークで、取引コスト・離散リバランス・不完全市場を考慮した最適ヘッジ戦略を直接学習する。
状態 (株価、条件付き分散、前期の保有量、残存期間)から、ニューラルネットワークがヘッジポジション を出力する。
目的関数はリスク測度(CVaR等)の最小化。
は比例取引コスト率、 はオプションの満期ペイオフ。
BSM Deltaヘッジとの違いをざっくり言うと、BSM Deltaは取引コスト無視、連続リバランス(理論)、GBM固定、リスク測度なし(完全複製)、学習不要(解析解)。Deep Hedgingは取引コストを明示的にモデル化、離散リバランス(現実的)、任意のモデル(GARCH、ジャンプ等)、CVaR等を最小化、大量のMCパスで訓練。
Francois et al. (2024) はIVサーフェスの情報をフィードバックとして含めることでDeep Hedgingの性能を改善した。
Pythonで書くとこうなる
ポートフォリオGreeks集約
from quant.pricing.bsm import BSM
positions = [
{"type": "call", "S": 230, "K": 235, "T": 30/365, "r": 0.043, "sigma": 0.22, "qty": 10},
{"type": "put", "S": 230, "K": 225, "T": 30/365, "r": 0.043, "sigma": 0.24, "qty": -5},
{"type": "stock", "qty": -350},
]
portfolio_delta = 0
portfolio_gamma = 0
portfolio_vega = 0
for pos in positions:
if pos["type"] == "stock":
portfolio_delta += pos["qty"]
continue
m = BSM(S=pos["S"], K=pos["K"], T=pos["T"], r=pos["r"], sigma=pos["sigma"])
mult = 100
if pos["type"] == "call":
portfolio_delta += pos["qty"] * mult * m.call_delta()
portfolio_gamma += pos["qty"] * mult * m.call_gamma()
portfolio_vega += pos["qty"] * mult * m.call_vega()
else:
portfolio_delta += pos["qty"] * mult * m.put_delta()
portfolio_gamma += pos["qty"] * mult * m.put_gamma()
portfolio_vega += pos["qty"] * mult * m.put_vega()
hedge_shares = -portfolio_delta
VaR/CVaR計算
import numpy as np
from scipy.stats import norm
returns = provider.get_daily_returns("SPY", period="2y")
# パラメトリックVaR (95%)
mu, sigma = returns.mean(), returns.std()
var_95 = -(mu + norm.ppf(0.05) * sigma)
# ヒストリカルVaR (95%)
var_hist_95 = -np.percentile(returns, 5)
# パラメトリックCVaR (95%)
cvar_95 = -(mu - sigma * norm.pdf(norm.ppf(0.05)) / 0.05)
# モンテカルロVaR
N = 100_000
mc_returns = np.random.normal(mu, sigma, N)
var_mc_95 = -np.percentile(mc_returns, 5)
cvar_mc_95 = -mc_returns[mc_returns <= -var_mc_95].mean()
参考文献
- Artzner, P., Delbaen, F., Eber, J.-M. & Heath, D. (1999). "Coherent Measures of Risk." Mathematical Finance, 9(3), 203-228
- Rockafellar, R.T. & Uryasev, S. (2000). "Optimization of Conditional Value-at-Risk." J. Risk, 2(3), 21-42
- Rockafellar, R.T. & Uryasev, S. (2002). "Conditional Value-at-Risk for General Loss Distributions." J. Banking & Finance, 26(7), 1443-1471
- Jorion, P. (2006). Value at Risk (3rd ed.). McGraw-Hill
- Leland, H.E. (1985). "Option Pricing and Replication with Transactions Costs." J. Finance, 40(5), 1283-1301
- Zhao, Y. & Ziemba, W.T. (2007). "On Leland's Option Hedging Strategy with Transaction Costs." Finance Research Letters, 4(1), 49-58
- Sepp, A. (2017). "How to Optimize Volatility Trading and Delta-Hedging Strategies."
- Hull, J. & White, A. (2017). "Optimal Delta Hedging for Options." J. Banking & Finance, 82, 180-190
- Buehler, H. et al. (2019). "Deep Hedging." Quantitative Finance, 19(8), 1271-1291
- Francois, P. et al. (2024). "Enhancing Deep Hedging of Options with Implied Volatility Surface Feedback." arXiv:2407.21138
- Imaki, S. et al. (2021). "No-Transaction Band Network: A Neural Network Architecture for Efficient Deep Hedging." arXiv:2103.01775
- Alexander, G.J. & Baptista, M.A. (2004). "A Comparison of VaR and CVaR Constraints on Portfolio Selection." Management Science, 50(9), 1261-1273
- Boudoukh, J., Richardson, M. & Whitelaw, R. (1998). "The Best of Both Worlds: A Hybrid Approach to Calculating Value at Risk." Risk, 11(5), 64-67
- Vorobets, A. (2024). "Portfolio Construction and Risk Management." SSRN:4807200