上級編 7. Local Volatility Model とStochastic Volatility Model
7.3 Stochastic Volatility Model
7.3.2 Displaced Log-Normal Heston Model ("DLN-H")
7.3.2.5 フーリエ積分の、高速で精確な数値積分のテクニック
前のセクションで述べた通り、DLN-H Model では、フーリエ積分の形で、ヨーロピアン Call Option価格を求める事ができました(7.62式)。そのフーリエ積分は、数値積分で求めますが、それの誤差を小さくするテクニックがいくつか紹介されています。その中で、Andersen-Piterbarg本では、DLNモデルの解析解を制御変数として使って、非常に精度の高い数値積分を求める方法を紹介しています。以下にそれを解説します。制御変数の役割については、モンテカルロシミュレーションの高速化テクニックの所で、解説しているので、そちらを参考にして下さい(Section 6.6.4.3)。
Andersen-Piterbargによる高速化アルゴリズムの考え方は以下のようなものです。
- DLN-H モデルである 7.40、7.41式について、7.41式の η を 0 と置けば、Stochastic Volatilityの特性が消え、単なる Displaced Log-normal(“DLN”)モデルになる。
- そこで 7.49式から、η=0 の場合の \(\ln X(t)\) の特性関数を求めれば、7.62 式のフーリエ積分を使って、DLN モデルによる数値積分で導出した価格が求まる。
- 一方、DLNモデルは、Blackの公式を使った解析解でも導出できる(Section 7.2.4の7.8式)。
- DLN モデルにおける、2.と3.の誤差は、数値積分による誤差と看做せる。
- DLN モデルによるオプション価格と、DLN-H モデルによるオプション価格は、高い相関があると推定される。そこで、2.と 3.の誤差を使って、DLN-H モデルのフーリエ積分の数値解を修正すれば、より精度の高いオプション価格が導出できる。
これを、より具体的に解説します。
1. DLN-Hモデルから変数変換により、Payoff関数を書き換え
まず、前のセクションで解説したフーリエ積分を使ったよるヨーロピアンオプション価格の導出方法を使って、DLN-H モデルによるヨーロピアンオプションの価格式を導出します。7.52式で求めた特性関数は、7.40式で S(t) を X(t)に変数変換した後の、\(\ln X(t)\) の特性関数だったので、Payoff 関数を、変数変換後の\(\ln X(t)\) を使った形に修正します。その為に、まず次のような変数変換を行います。 \[ bS(0)+(1-b)L=S',~~~~~~~~~~ bK+(1-b)L=K'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \] すると、7.46式から、S(T) と K は、\(S'~と~K'\) を使って、それぞれ下記のように書き換えられます。 \[ S(T)=\frac 1 b \left(S'~ X(T)-(1-b)L\right),~~~~~~~~~K=\frac 1 b \left(K'-(1-b)L\right)~~~~~~~~~ \] これをヨーロピアンCallオプションのPayoffの期待値演算(7.53式)に代入すると、 \[ \begin{align} Call_{DLN-H} (0,S;T,K) &=E\left[(S(T)-K)^+ \right]~~~~~~~~~~~ \\ & =E\left[\left( \frac 1 b \left(S'X(T)-(1-b)L\right)- \frac 1 b \left(K'-(1-b)L\right)\right)^+ \right] \\ & =\frac 1 b E \left[(S' X(T)-K' )^+ \right] =\frac {S'}{b} E\left[ \left(e^{\ln X(T)} - e^{\ln (K'/S')} \right)^+ \right] \\ & =\frac {S'}{b} E\left[\max (e^ξ-e^k,0) \right]=\frac {S'}{b} E\left[e^ξ-e^k \left(\min (e^{ξ-k},1) \right)\right] \\ & ~~~ 但し~~~ ξ=\ln X(T),~~~~~k=\ln {\frac {K'}{S'}} \tag{7.63} \end{align} \] これで、7.53式による表現方法での Payoff 関数に書き換えられました。
2. DLN-H モデルによるヨーロピアンオプションの価格式(フーリエ積分形式)
すると、この期待値演算は 7.62式のフーリエ積分による導出式を使って以下のようになります。 \[ \begin{align} Call_{DLN-H} & (0,S;T,K) ~~~~~~~~~~~~~~~~~~\\ & =\frac {S'}{b} \left[1-\frac {K'}{2πS'}∫_{-∞}^∞\frac {e^{-(α+iω)\ln (K'/S')} Ψ_X(α+iω;T)}{(α+iω)(1-(α+iω))} dω\right], \tag{7.64} \end{align} \]
( 注 : 7.62式にある \(Ψ_ξ(1)=E\left[e^{\ln X(t)} \right]~は、X(T)\) の期待値に相当し、X は初期値 1の指数マルチンゲールになる(7.46,7.47式参照)ので、7.64式では \(Ψ_ξ(1)=1\) となります。)
この段階で既に、右辺の特性関数に、7.52式を代入し、フーリエ積分を数値積分すれば DLN-H モデルのオプション価格を導出可能です。但し、精度を上げるには数値積分の間隔を狭めるなど、計算時間がより多くかかります。
3. DLN モデルによるヨーロピアンオプションの価格式(フーリエ積分形式)
次に、DLN-H モデルである 7.40、7.41式について、7.41式の η を 0 と置けば、Stochastic Volatilityモデルの特性が消え、単なる DLN モデルになります。η=0 とした場合の、特性関数を \(Ψ_x^0\) と表記すると、7.49式から、 \[ Ψ_x^0(u;T) := E \left[e^{u∙ \left(λ~b\sqrt{z_0}~W(T)-\frac 1 2 λ^2 b^2 z_0 T \right) } \right] =e^{\frac 1 2 λ^2 b^2 z_0 T (u^2-u) }, \tag{7.65} \] となり、これを7.62式に代入すれば下記のようになります。 \[ \begin{align} Call_{DLN-Fourier} & (0,S;T,K) ~~~~~~~~~~~~~~~~~~~\\ & =\frac {S'}{b} \left[1-\frac {K'}{2πS'}∫_{-∞}^∞ \frac {e^{-(α+iω)\ln (K'/S')}Ψ_x^0 (α+iω;T)}{(α+iω)(1-(α+iω))}dω\right] \\ & =\frac {S'}{b} \left[1-\frac {K'}{2πS'}∫_{-∞}^∞ \frac {e^{-(α+iω)\ln (K'/S')}e^{\frac 1 2 λ^2 b^2 z_0 T (u^2-u) } }{(α+iω)(1-(α+iω))}dω\right] \tag{7.66} \end{align} \]
4. DLN モデルによるヨーロピアンオプションの価格式(解析解)
一方で、7.8式の通り(Section 7.2.3.2 参照 )、DLNモデルの解析解は Blackの公式を使っても表現できて、その値は、フーリエ積分での Call価格とほぼ一致します。この時、Blackの公式には、変数変換後の \(S'~と~K'\) を当てはめます。 \[ Call_{DLN-Fourier}(t,S;T,K,β,ζ) ≈ \frac 1 b Call_{DLN-Black} (0,S';T,K',λb ) \]
5. DLNの解析解を制御変数として使い、フーリエ積分の誤差を修正
\(Call_{DLN-Fourier}~と~Call_{DLN-Black}\) の差は、数値積分の誤差に相当すると看做せます。すると、\(Call_{DLN-H}を\) フーリエ積分で求めた場合に、その誤差を差し引いて修正すれば、より真の値に近くなると推定されます。すなわち \[ \begin{align} Call & =Call_{DLN-H}-\left(Call_{DLN-Fourier}-\frac 1 b Call_{DLN-Black}\right) \\ & =\frac 1 b Call_{DLN-Black}(0,S';T,K',λb )-(Call_{DLN-H}-Call_{DLN-Fourier}) \\ & =\frac 1 b Call_{DLN-Black}(0,S';T,K',λb) -\frac {K'}{2πb} ∫_{-∞}^∞ \frac {e^{-(α+iω) \ln (K'/S')}q(α+iω)}{(α+iω)(1-(α+iω))}dω, \\ & ~~~但し~~~~~ q(α+iω)=Ψ_X (α+iω;T)-Ψ_X^0 (α+iω;T) \tag{7.67} \end{align} \] あとは、式中にある特性関数に、7.52式と、7.65式を代入し、フーリエ積分を行えば価格が求まります。この場合、台形則などの、シンプルな数値積分のテクニックを使ったとしても、制御変数のおかげで、かなり精度の高い値が求まります。
Andersen-Piterbarg本によれば上式の α については、経験的に 0.5 程度が適当とされています。