第88回 確率ボラティリティとジャンプ ― 別の方向からスマイルを説明する

第88回 確率ボラティリティとジャンプ ― 別の方向からスマイルを説明する

位置: 第8部 第88回 / 前提: 第63回、第86回、第87回 / 数学編: M28 / この回でできるようになること: 確率ボラティリティとジャンプがスマイルやスキューをどう作るかを、パラメータを動かして確かめることができる。実践: オプションの価格の一覧からインプライド・ボラティリティのスマイルを描き、自分のポジションのグリークスをスマイルに合わせて計算できる

目次

0. 物語 ― 相関が0だとスキューが出ない

手元に100万円分の株を持っていて、3か月後の暴落が怖いとします。行使価格が今より10パーセント低い保険(プット)を買おうとしたら、同じだけ高い行使価格の宝くじ(コール)よりずっと高い値段を提示されました。市場では「下方向の保険は高い」のが当たり前です。この左右の非対称を「スキュー」と呼びます。

「ボラティリティが一定」という古いモデルでは、この非対称は出ません。では、ボラティリティを確率的に揺らせば解決するでしょうか。

答えは「揺らすだけでは足りない」です。株価の動きとボラティリティの動きを無関係にしたモデルで計算すると、行使価格90と110の逆算ボラティリティの差はわずか1パーセント未満にとどまります。左右にほぼ対称な形が出るだけで、市場で見えるような急な傾きは現れません。

ところが、「株が下がるときにボラティリティが上がる」という関係をモデルに入れると、同じ差が5パーセント近くに広がります。相関をさらに強めれば7パーセントを超えます。

仕組みはこうです。株が下がると揺れ幅が大きくなり、さらに下がりやすくなるので、下方向に大きく動く確率が高くなります。逆に株が上がると揺れ幅は小さくなり、上方向の極端な動きは抑えられます。このフィードバックが分布を左に偏らせ、スキューを作ります。

相関がなければスキューは出ない。相関を入れて初めてスキューが生まれる。この回では、その仕組みを式で証明し、数値で確かめます。

1. 動機 ― スマイルをモデルの側から作れるか

この回を読み終えると、確率ボラティリティとジャンプがスマイルやスキューをどう作るかを、パラメータを動かして確かめることができます。

第87回までで、市場のオプション価格から逆算するとインプライドボラティリティが行使価格によって変わる「スマイル」が現れることを見ました。ブラック・ショールズモデルでは、ボラティリティは定数ですから、スマイルは「モデルと市場のずれ」です。

ずれを確認するだけでは先に進めません。モデルの側を拡張して、スマイルを内側から生み出せるようにするのが今回の目標です。拡張の方向は2つあります。

  • ボラティリティ自体を確率過程にする(確率ボラティリティモデル)。
  • 価格にまれな大きなジャンプを加える(ジャンプ拡散モデル)。

この2つがスマイルをどう生むのかを、ヘストンモデルを軸に証明し、数値で確認します。

この記事で証明すること

  • THM-SV-1 分散を平均回帰する過程にし、原資産との相関を与えると、スキューのある分布が生まれます。
  • THM-SV-2 原資産と分散の相関が負のとき、下落時にボラティリティが上がり、左の裾が厚くなります。
  • THM-SV-3 まれなジャンプを加えると、短い満期でも急なスマイルが生成されます。確率ボラティリティだけでは短期のスマイルを再現しにくいことを示します。

2. 設定と仮定 ― 分散自体を確率過程にする

ブラック・ショールズモデルでは が定数でした。これを確率過程 に拡張します。以下の仮定をすべて明示します。

  • 原資産の動き: リスク中立測度 のもとで
  • 分散過程(ヘストンモデル):
  • 分散過程は正の値を保つものとします。これは (フェラー条件)が満たされるとき保証されます。
  • 2つのブラウン運動には一定の相関を与えます。、。
  • ジャンプは複合ポアソン過程として扱い、構造の詳細は参考文献に譲ります。強度 、ジャンプサイズの対数が に従うとします。
  • 数値実験では乱数のシードを固定します(再現性のため)。

(1.1) の が平均回帰項です。 が長期水準 より大きければ引き下げ、小さければ引き上げます。 がその速さ、 が分散のランダムな揺れの大きさ(ボラティリティのボラティリティ)です。

まとめると、ヘストンモデルは「ボラティリティが確率的に変動し、原資産と相関を持つ」という最小限の拡張です。

3. 主張 ― 相関がスキューを生む

3つの定理を正確に述べます。

定理 THM-SV-1(ヘストンモデルの構造) 分散 が (1.1) の平均回帰過程に従い、原資産の駆動ブラウン運動 と分散の駆動ブラウン運動 の相関が であるとき、スマイルは対数マネーネス ( はフォワード価格)について対称でなくなり、スキューが生じる。

定理 THM-SV-2(相関がスキューを生む) のとき、原資産が下落する局面でボラティリティが上昇し、 の分布は左の裾が厚くなる。結果として、低い行使価格のインプライドボラティリティが高い行使価格のそれより大きくなる。

定理 THM-SV-3(ジャンプによる説明) ヘストンモデルに複合ポアソン型のジャンプを加えると、短い満期でも急なスマイルが生成される。確率ボラティリティのみでは、短期のスマイルの急さを十分に再現できない。

証明を読む(読まなくても記事は完結します)

4. 証明 ― 下落時にボラティリティが上がる仕組みを見る

この節は読まなくても記事は完結します。

この証明を追いたい人は、数学編 第28回「変数変換で熱方程式に帰着する」へ。

THM-SV-1 の証明

ヘストンモデルで のとき、 の分布にスキューが生じることを示します。

まず、 の場合を考えます。このとき と は独立です。 の経路が決まったとき、 の条件付き分布は

と書けます。ここで は実現分散の時間平均です。 が と独立なので、 の経路を条件づけると (2.1) の確率積分は平均ゼロのガウス確率変数になります。したがって の経路を条件づけたコール価格は、ボラティリティ のブラック・ショールズ価格です。 の経路について平均を取ると、コール価格はブラック・ショールズ価格の混合になります。ただし (2.1) の平均に入る も経路ごとに違うので、 の分布そのものが左右対称になるわけではありません。対称になるのはスマイルの方です。フォワード価格を とすると、どのボラティリティでもブラック・ショールズ価格はコールとプットの対称関係 を満たします。この関係は価格について線形なので、平均を取った混合価格でも成り立ちます。インプライドボラティリティは価格から一意に決まるため、 と で同じ値になります。つまりスマイルは について左右対称(左右に均等に裾が広がる形)です。

次に の場合を考えます。 を分解します。

ここで は と独立なブラウン運動です。(2.2) を (1.1) に代入すると

となります。 の動きに が入っているため、もはや の経路を条件づけても は独立にはなりません。 の上昇・下落と の増減が連動するので、上の混合の議論が使えなくなり、スマイルは について対称でなくなります。これがスキューの源です。 ∎

THM-SV-2 の証明

のケースで、左の裾が厚くなることを示します。

が負の方向に動く(原資産が下落する)とき、(2.2) より には の寄与が入ります。 なので、 のとき となり、 は正の方向に押されます。(1.1) より が正に動くと は増加します。

つまり、原資産が下落 → が上昇 → が大きくなる → さらに大きな変動が起きやすくなる、というフィードバックが生じます。逆に原資産が上昇するときは が減少し、変動が抑えられます。

この非対称なフィードバックを定量的に確認します。微小時間 の間に (、下落方向)が実現したとき、分散の変化は

です。 なので です。 の寄与を平均すると、分散には の正のドリフトが加わります。

一方、(上昇)のとき、()なので、分散は減少方向に押されます。

結果として、 の分布は左に長い裾を持ちます。低い行使価格(OTM プット)のインプライドボラティリティが高くなり、高い行使価格(OTM コール)のそれが低くなります。これが市場で観察されるスキューの仕組みです。 ∎

THM-SV-3 の証明(要点)

確率ボラティリティだけでは短い満期のスマイルを再現しにくい理由を説明します。

分散過程 は連続な拡散過程です。開始点 からの乖離は のオーダーで広がるため、満期 が短いとき は の近くに留まります。短期間では分散がほとんど動かないので、 の分布は定数ボラティリティの場合に近づきます。そのため、行使価格を満期までの標準偏差( に比例する幅)を単位として測ると、スマイルは平坦に近づきます。言い換えると、対数マネーネスに対するスマイルの傾きは満期を短くしても有限の値にとどまり、市場の短期スマイルのように急になっていきません。

一方、ジャンプはポアソン過程に従うため、短い期間でも一定の確率で発生します。ジャンプが起きると原資産は不連続に動き、裾の厚い分布が即座に生まれます。これにより短期でも急なスマイルが形成されます。

数値節で、同じパラメータの下でジャンプの有無によるスマイルの違いを確認します。 ∎

5. 反例 ― 市場が不完備になる

CEX-SV-1: ボラティリティが取引できないため完全ヘッジできない

ブラック・ショールズモデルでは、原資産と安全資産の2つでオプションを完全に複製できました。ヘストンモデルでは不確実性の源が と の2つに増えます。ところが取引できる資産は原資産と安全資産の2つだけで、(ボラティリティ)そのものは市場で直接売買できません。

取引可能な資産の数(2つ)がリスクの源(2つのブラウン運動)より少ないため、すべてのリスクを消すことができません。市場は不完備です。

数値で確認します。ヘストンモデル()のもとで、原資産のみによるデルタヘッジを行いました。パラメータは 、、、初期ボラティリティ です。

  • オプション価格(初期ボラティリティ のブラック・ショールズ価格で売ったとします):
  • ヘッジ後の損益の平均:
  • ヘッジ後の損益の標準偏差:
  • 標準偏差のオプション価格に対する比率:

オプション価格の約 に相当する損益のばらつきが残っています。完備市場ならこの値はゼロに近づくはずです。ボラティリティのリスクが消せないことが数値に表れています。

CEX-SV-2: 相関が0でもスキューが出る、という理解は誤り

のとき、THM-SV-1 の証明で見たように、スマイルは について対称になります。満期 でのスキュー( と のインプライドボラティリティの差)を相関ごとに比べます。

相関 スキュー()

ではスキューは小さく、対称なスマイルが出ています。残る はモンテカルロ誤差ではありません。フォワード価格は で より大きいので、 の方が よりフォワードから対数で遠く、対称なスマイルの上で高い位置に来るためです。スキューを生むには負の相関が必要です。

CEX-SV-3: 確率ボラティリティだけで全満期を説明できる、という期待は誤り

満期 (約1か月)で、ジャンプなし(確率ボラティリティのみ)とジャンプあり(、、)のスマイルを比較します。

行使価格 ジャンプなし ジャンプあり

スキュー()は、ジャンプなしで 、ジャンプありで です。ジャンプを加えると短期のスマイルが全体的に急になり、とくに低い行使価格で大きく膨らみます。確率ボラティリティだけでは連続過程の限界により、短期で十分な急さを出せません。

まとめると、確率ボラティリティはスキューの「形」を作り、ジャンプは短期の「急さ」を加える役割を持っています。

6. 数値例 ― 相関を変えてスマイルを描く

ヘストンモデルのパラメータを 、、()、、、 に固定し、相関 を変えてインプライドボラティリティを計算しました。乱数のシードは で固定しています。

満期1年のスマイル

行使価格

では左右がほぼ対称なスマイルです。 を 、 と下げると、左が高く右が低い「スキュー」がはっきり出てきます。 と のインプライドボラティリティの差は、 で 、 で 、 で です。

満期別の比較(相関マイナス0.5)

行使価格

同じ行使価格どうしで比べると、短い満期ほど傾きは急です( と の値は、 で と 、 で と )。短い満期では同じ行使価格でも標準偏差で測った距離が大きくなるためで、標準偏差を単位にして測れば THM-SV-3 の証明のとおり平坦に近づきます。

ヘッジ誤差

原資産のみでデルタヘッジした場合の損益のばらつき(、、):

  • 損益の標準偏差: (オプション価格 の )

この数字が、確率ボラティリティモデルにおける市場の不完備さの定量的な証拠です。

まとめると、相関 がスキューの強さを制御し、負の相関が大きいほど左裾が厚くなります。ジャンプは短い満期のスマイルを急にする役割を担います。

7. 実践 ― オプションの価格表からスマイルを描く

この回までに積み上げたプット・コール・パリティ(第50回)、ブラック・ショールズの価格式(第78回)、ニュートン法による逆算(第79回)、ベガとデルタ(第80回、第85回、第86回)を、オプションの価格表1枚に全部当てます。価格の一覧からインプライド・ボラティリティのスマイルを描き、自分のポジションのグリークスをスマイルに合わせて計算できるようになります。

手順

全工程は4段階です。

  1. フォワード価格の推定。 プット・コール・パリティ は全行使価格で成り立ちます。 を の1次関数として回帰し、切片と傾きからフォワード価格 と割引係数 を推定します。
  2. インプライド・ボラティリティの逆算。 行使価格ごとに、アウト・オブ・ザ・マネー側( ならプット、 ならコール)の価格を使い、ニュートン法で逆算します。
  3. 2次式の当てはめ。 逆算した点に ()を最小二乗法で当てはめます。
  4. 無裁定チェック。 コール価格が行使価格について単調減少かつ凸であることを確かめます。

架空の価格表を使います(、、、行使価格 から まで5刻み、呼値 )。既知のスマイルからブラック・ショールズ価格を計算し、呼値に丸めたものです。実データに差し替えるときは、取引所の清算価格ファイルの行使価格・コール価格・プット価格の3列を読み替えるだけです。

推定結果は 、 です。逆算できたのは価格が正の から までの9本です。当てはめ係数は 、、 です。無裁定条件(単調減少・凸)は成立しています。

価格表を作るときに使った真の値は 、、スマイルの係数は 、、 です。フォワードと割引係数は呼値への丸めの分だけずれ、曲がり方を表す は真の値の3倍以上に出ています。端の行使価格ほど丸め誤差が逆算値を大きく動かし、それが2次の係数に集中して現れるためです。仕組みは下の CEX-PR88-1 で数値で確かめます。

コード

import math, numpy as np
S0, T, r, tick = 100.0, 0.25, 0.02, 0.5
a0, a1, a2 = 0.25, -0.10, 0.30
Ks = np.arange(70, 135, 5, dtype=float)
F0 = S0 * math.exp(r * T)

def N(x): return 0.5 * (1 + math.erf(x / 2**0.5))
def phi(x): return math.exp(-0.5*x*x) / (2*math.pi)**0.5
def bs(S,K,r,T,s,cp=1):
    d1=(math.log(S/K)+(r+.5*s**2)*T)/(s*T**.5)
    d2=d1-s*T**.5
    return cp*(S*N(cp*d1)-K*math.exp(-r*T)*N(cp*d2))
def vega(S,K,r,T,s):
    d1=(math.log(S/K)+(r+.5*s**2)*T)/(s*T**.5)
    return S*phi(d1)*T**.5
def iv(price,S,K,r,T,cp=1):
    s=0.25
    for _ in range(100):
        v=vega(S,K,r,T,s)
        if v<1e-12: break
        s=max(0.001,s-(bs(S,K,r,T,s,cp)-price)/v)
    return s

board=[]  # 価格表を生成(実データならここを読み替える)
for K in Ks:
    m=math.log(K/F0); sig=a0+a1*m+a2*m**2
    c=round(bs(S0,K,r,T,sig,1)/tick)*tick
    p=round(bs(S0,K,r,T,sig,-1)/tick)*tick
    board.append((K,c,p))

cp=np.array([c-p for _,c,p in board])
Ka=np.array([K for K,_,_ in board])
A=np.column_stack([np.ones(len(Ka)),Ka])
ab=np.linalg.lstsq(A,cp,rcond=None)[0]
D_est=-ab[1]; F_est=ab[0]/D_est  # 段階1: フォワード推定
print(f"F={F_est:.4f}, D={D_est:.6f}")

ms,ivs=[],[]  # 段階2-3: 逆算と当てはめ
for K,c,p in board:
    otm,side=(p,-1) if K<=F_est else (c,1)
    if otm<=0: continue
    s=iv(otm,S0,K,r,T,side)
    m=math.log(K/F_est); ms.append(m); ivs.append(s)
    print(f"K={K:6.0f} m={m:+.3f} iv={s:.4f}")
coef=np.polyfit(ms,ivs,2)
print(f"fit: a2={coef[0]:.4f} a1={coef[1]:.4f} a0={coef[2]:.4f}")

calls=np.array([c for _,c,_ in board])  # 段階4: 無裁定チェック
print(f"monotone: {bool(np.all(np.diff(calls)<=0))}")
print(f"convex:   {bool(np.all(np.diff(calls,n=2)>=0))}")

50行です。実データへの差し替えは board を作る部分をファイル読み込みに変えるだけです。

結果の読み方

逆算したスマイルを行使価格の順に並べると、アット・ザ・マネー付近( から )は真のスマイルに近い値が出ていますが、端の行使価格では丸め誤差が大きくなっています。グラフに描くときは、figures/plot_smile_practice.py のように横軸を 、縦軸を逆算値にして、真のスマイルと重ねると違いが一目で分かります。

CEX-PR88-1: 深いアウト・オブ・ザ・マネーで丸め誤差が拡大する

「価格表のどの行使価格から逆算した値も同じくらい信頼できる」という理解は間違いです。丸め幅が同じ でも、ベガが小さい行使価格ほど IV の誤差は大きくなります。

価格誤差 IV 誤差 ベガ 価格誤差 ベガ

ではベガが と小さいため、価格誤差 が IV の誤差 に拡大しています。 のベガ と比べると、同程度の価格誤差でも IV の誤差は3倍近くになります。IV の誤差は「価格誤差 ベガ」で近似でき、ベガが小さいほど拡大します。

CEX-PR88-2: アット・ザ・マネーのボラティリティ1本ではヘッジがずれる

のプットを1単位売り、 のコールを1単位買ったポジションを考えます。ATM ボラティリティ を全オプションに使った場合と、行使価格ごとのスマイル上のボラティリティ( に 、 に )を使った場合を比較します。

ATM 1本 スマイル対応 差
ポジションのデルタ
ポジションのベガ

デルタの差 は、株が1動いたときにヘッジが約4銭ずれることを意味します。ベガは ATM 1本では ですがスマイル対応では に減り、ボラティリティ変動に対する感応度を過大評価してしまいます。行使価格が離れたポジションほど、スマイルに合わせた計算が必要です。

8. 次回へ ― 金利とクレジットの世界

今回は株のオプションのスマイルを、確率ボラティリティとジャンプという2つの道具で説明しました。ヘストンモデルでは相関 が左右非対称のスキューを生み、ジャンプが短い満期の急なスマイルを補います。

次回(第89回)からは第9部に入り、株のオプション以外の世界――金利とクレジット――へ進みます。金利が確率的に動くモデルで債券やスワップションをどう価格付けするか、という問題に向かいます。

この回で、5つ目のマイルストーンに到達しました。

よくある質問

確率ボラティリティとローカルボラティリティはどちらが良いのですか

目的によります。今日の価格に合わせるならローカル、将来の動きを問う商品なら確率ボラティリティです。

市場が不完備になると何が困るのですか

価格が一意に決まらなくなります。ヘッジも完全にはできません。

ジャンプは必要ですか

短い満期のスマイルを説明するには必要です。連続的な動きだけでは急な形が作れません。

参考文献

  1. Heston S. L.、A Closed-Form Solution for Options with Stochastic Volatility、The Review of Financial Studies、1993年、DOI 10.1093/rfs/6.2.327
  2. Merton R. C.、Option Pricing when Underlying Stock Returns are Discontinuous、Journal of Financial Economics、1976年、DOI 10.1016/0304-405X(76)90022-2

数値例は compute.py によるモンテカルロシミュレーション(20万パス、シード42)で計算。インプライドボラティリティはブラック・ショールズ公式の逆算による。

目次