評価モデルを運用するクオンツやトレーダーは、市場で価格の見えるオプションにモデルを合わせてから、価格の付かない商品を評価します。パラメータが日々大きく動くと、ヘッジが悪くなる危険が増えます。

市場の価格にモデルのパラメータを合わせる

評価にモデルを使うのは、市場で価格の付かない商品の値を出すためで、価格の付く商品の価格は入力に回します。主要な指数、為替、株のコール・オプションとプット・オプションのように取引の多いオプションは、価格が市場で見えるため、モデルの出す値を使わず、その価格を入力にします。その市場価格にモデルの価格が合うように、パラメータを決める手続きがキャリブレーションです1。決めたモデルで、店頭で取引するエキゾチック・オプションや、取引の少ないオプションの価格を出します。モデルは、価格の見える商品から見えない商品へ、裁定の機会が生じないように価格を延ばす規則の役目をします1。

モデルで価格を出す向きを逆にして、市場の価格からパラメータを解くため、数学では逆問題といいます2。インプライド・ボラティリティも、ブラック・ショールズの式の価格が市場価格と等しくなるボラティリティを逆算する点で、同じ向きの逆算です。パラメータがボラティリティ 1 つだけの場合に当たります。逆算の手順はインプライド・ボラティリティで扱います。

パラメータは、過去の価格の動きから推定する方法もあります。ただし、確率的ボラティリティのモデルでは、原資産の価格だけを見て推定しても、デリバティブの価格を正しく出せません。ボラティリティのリスクに市場が付ける価格を、原資産の過去の価格からは推定できないためです。バニラ・オプションのスマイルに合わせれば、この値は市場の価格に織り込まれているため、別に推定する必要がありません3。ヘストン・モデルを扱う論文は、リアルタイムの評価とリスク管理に使われるのは、ある時点のボラティリティ・サーフェスに合わせる方法だと書いています4。

入力にする商品の選び方

入力にする商品は、市場で価格が見え、評価の対象のヘッジに使う商品から選びます。確率的ボラティリティのキャリブレーションの標準的な進め方は、満期と行使価格の違うバニラ・オプションの価格との誤差に重みを付けて、最小になるパラメータを探すものです。使う商品は、ボラティリティ・サーフェスを作るのに使う商品で、トレーダーが持高のヘッジに使う商品と同じです5。FX のバリア・オプションの研究では、満期 18 か月のバリア・オプションに対し、満期 1 か月から 2 年までの 7 つを使っています。これに、10 デルタのプットとコール、25 デルタのプットとコール、アット・ザ・マネーの 5 つを組み合わせます。7 × 5 で 35 本のインプライド・ボラティリティに、ヘストン・モデルを合わせた例です6。

入力は、評価する取引ごとに変えることもあります。2 年で 6 か月ごとに支払いのあるエキゾチックは、満期 2 年のバニラだけではヘッジしないため、満期の違うバニラに合わせるほうが筋が通ります7。

金利のモデルでは、入力ごとに決めるパラメータを分けることがあります。LIBOR マーケット・モデル(LMM)のような市場モデルでは、市場のキャップのキャップレットの価格で、フォワードレートのボラティリティの水準を決めます。そのうえで、スワップションの価格か過去のフォワードレートの相関から、個々のボラティリティを、キャップレットの制約のもとで決める進め方が、よく使われる 1 つです。スワップションの価格はフォワードレートの間の相関にも依るため、キャップレットだけでは相関が決まりません8。

モデルの価格を速く出せるかも、入力の選び方に効きます。パラメータを変えるたびに価格を計算し直すためです。解析的な近似式があるスワップションは入力にしやすく、モンテカルロ法でしか値を出せないと、合わせるのに時間がかかります8。

誤差の測り方と最小にする方法

キャリブレーションは、モデルの価格と市場価格の差を 1 つの数にまとめ、それが最小になるパラメータを探す問題として解きます。この数を作る式を目的関数といいます。よく使われるのは、商品ごとの差の二乗に重みを掛けて足した値です910。

計算の手順は次のとおりです。

  1. 入力にする商品の市場価格を集める。
  2. 今のパラメータで、同じ商品のモデルの価格を出す。
  3. 目的関数で、市場価格との誤差を測る。
  4. 誤差が大きければ、パラメータを動かして手順 2 に戻る。
  5. 誤差が小さくなれば、パラメータを決め、市場で価格の付かない別の商品の評価に使う。

パラメータをまとめて θ\theta、ii 番目の商品のモデルの価格を Ci(θ)C_i(\theta)、市場価格を Ci∗C_i^{*}、重みを ωi\omega_i とすると、目的関数は次の式です。

f(θ)=∑i=1nωi(Ci(θ)−Ci∗)2f(\theta) = \sum_{i=1}^{n} \omega_i \left( C_i(\theta) - C_i^{*} \right)^2

キャリブレーションは、この f(θ)f(\theta) を最小にする θ\theta を探します11。ヘストン・モデルのキャリブレーションでは、商品の数がパラメータの数よりずっと多く、式の数が未知数より多い状態(資料の言葉で overdetermined)です10。目的関数の値は、モデルの価格と市場価格の差の大きさを表します。

価格の差の代わりに、インプライド・ボラティリティの差を測る方法もあります。ボラティリティは商品によらず大きさが似ていますが、価格はイン・ザ・マネーとアウト・オブ・ザ・マネーで数桁違うことがあります。重みを付けて、アット・ザ・マネーの近くか、アウト・オブ・ザ・マネーの適合を重く見ることもできます12。差の二乗の和でなく、差の絶対値の最大や合計を誤差とする測り方もあります13。

最小にする方法には、次のものが資料で使われています。

方法 資料での使われ方
勾配(目的関数の傾き)を使う方法 ジャンプ拡散モデルの最小二乗で、通常使われます9
レーベンバーグ・マルカート法 ヘストン・モデルの 5 つのパラメータの最小二乗に使い、解析的な勾配で、数値で求める勾配より約 10 倍速くしています14
シンプレックス探索 FX のスマイルに、ヘストン・モデルの 3 つのパラメータを合わせるのに使われています12

勾配を使う方法で、目的関数の勾配を求めるのに、AAD(随伴自動微分)が使えます。計算の仕組みはAAD(随伴自動微分)で扱います。

計算例:平らなボラティリティを合わせる

原資産の価格 100、満期 1 年のコールで、行使価格 90、100、110 のインプライド・ボラティリティが 18%、20%、23% の架空の例で考えます。パラメータが平らなボラティリティ σ\sigma の 1 つだけのモデルを合わせます。目的関数は、式の CiC_i をインプライド・ボラティリティに置き換えた、ボラティリティの差の重みつき二乗和です。

このモデルでは、目的関数を最小にする σ\sigma が、市場のボラティリティの重みつき平均になります。重みが 3 つとも 1 なら (18+20+23)/3=20.33(18 + 20 + 23) / 3 = 20.33(%)です。アット・ザ・マネーの重みを 4 にすると、(18+4×20+23)/6=20.17(18 + 4 \times 20 + 23) / 6 = 20.17(%)です。

重み(90、100、110) σ\sigma(%) 差:行使価格 90(ポイント) 差:行使価格 100(ポイント) 差:行使価格 110(ポイント) 重みつき二乗和
1、1、1 20.33 2.33 0.33 −2.67 12.67
1、4、1 20.17 2.17 0.17 −2.83 12.83

差は、モデルのボラティリティから市場のボラティリティを引いた値です。平らなボラティリティでは、3 つのインプライド・ボラティリティを同時に再現できず、誤差が残ります。アット・ザ・マネーの重みを 4 にすると、その行使価格の差は 0.33 から 0.17 に縮みます。行使価格 90 の差も 2.33 から 2.17 に縮みますが、行使価格 110 の差は −2.67-2.67 から −2.83-2.83 に広がります。重みの置き方で、合わせた結果が変わります15。

深掘り重みつき二乗和の最小値が重みつき平均になる理由

市場のインプライド・ボラティリティを yiy_i とすると、目的関数は f(σ)=∑iωi(σ−yi)2f(\sigma) = \sum_i \omega_i (\sigma - y_i)^2 です。σ\sigma で微分して 0 とおきます。

dfdσ=2∑iωi(σ−yi)=0\frac{df}{d\sigma} = 2 \sum_i \omega_i (\sigma - y_i) = 0

これを σ\sigma について解くと、次の重みつき平均になります。

σ∗=∑iωiyi∑iωi\sigma^{*} = \frac{\sum_i \omega_i y_i}{\sum_i \omega_i}

ff は σ\sigma の二次式で、二乗の係数が正なので、この点が最小です。

シミュレーター市場のボラティリティへの最小二乗の合わせ方(平らなボラティリティと直線)
入力
合わせるモデル
%
%
%
18192021222390100110インプライド・ボラティリティ(%)行使価格18.0020.0023.00
  • 合わせたモデル(平らなボラティリティ(σ))
  • 市場

行使価格ごとの市場とモデル(ボラティリティ、%)

行使価格市場モデル差重み
9018.0020.332.331
10020.0020.330.331
11023.0020.33−2.671
σ(%)
20.33
重みつき二乗和(目的関数)
12.67
差の二乗和(重みなし)
12.67
差の絶対値の最大(ポイント)
2.67
参考: 平らなボラティリティの重みつき二乗和
12.67
参考: 直線の重みつき二乗和
0.17

単純化している点

  • 行使価格 90、100、110 の 3 つのインプライド・ボラティリティに合わせます。平らなボラティリティは、重みつき二乗和を最小にする σ が市場の重みつき平均になります。直線は、行使価格の位置 x(90、100、110 で −1、0、1)の直線 a + b·x を、重みつき最小二乗で合わせます。
  • 目的関数は、モデルのボラティリティと市場のボラティリティの差の、重みつき二乗和です。差は「モデル − 市場」で、単位はポイント(%)です。価格でなくボラティリティで測っています。
  • 市場とモデルが一致する(差が 0 の)ときは、グラフで 2 本の線が重なります。
  • 重みは 1〜10 で、0 にはしません(重みが 0 の点があると、直線の解が 1 つに決まらない場合があるため)。
  • 実際のモデルではなく、説明のための単純な形です。実際のキャリブレーションは、非線形のモデルを数値計算で最小化し、局所解や平らな方向、日々の変化への対処が要ります。

このシミュレーターは学習のために単純化した計算で、実際の取引の評価やリスク管理には使えません。(免責事項)

シミュレーターの説明

3 つの行使価格の市場のインプライド・ボラティリティと重みを動かし、平らなボラティリティか直線を合わせて、解と差の変わり方を見ます。初期値は上の計算例と同じです。アット・ザ・マネーの重みを変えると、σ と、行使価格ごとの差の広がり方が変わります。モデルを直線に替えると、重みつき二乗和が平らなボラティリティ以下に下がります。直線は平らなボラティリティを含むためです。重みが同じなら、a は 3 つの平均、b は両端の差の半分です。市場の値をそろって上げるか、中央と右端を上げるかで、動くのが a だけか、a と b の両方かを見比べます。

解の安定性と過剰適合

最小にするパラメータが 1 つに決まり、市場価格が少し変わっても大きく動かない、とは限りません。ジャンプ拡散モデルの研究では、同じ価格に二乗誤差の最小化を適用しても、最小化の出発点が違うと、結果が大きく違う例が示されています。ジャンプの強さを出発点で 1 と 5 に変えたところ、合わせたジャンプの分布の形が別になりました16。

パラメータが少ないマートン・モデルでも、ジャンプの強さを増やしながら拡散のボラティリティを下げると、誤差がほぼ同じ水準で残ります。目的関数に、誤差がほとんど変わらない平らな方向ができるのです。数値計算では、パラメータの数より目的関数が凸かどうかのほうが効きます17。

ヘストン・モデルでは、分散のボラティリティ ξ\xi と平均回帰の速さ κ\kappa が互いに打ち消し合い、別の組でも似た適合になることがあります。局所解があるとする研究と、出発点によらず 1 つの解に収束するとする研究があり、合意はありません18。局所解を報告した研究について、ある論文は、目的関数が底の平らな細い谷の形で、反復を早く止めたことが原因だとしています19。金利の市場モデルでも、二乗和は一般に凸でなく、局所解が多くあります8。

安定させる手当てには、次のものがあります。

  • 一部のパラメータを固定します。ヘストン・モデルで κ\kappa を外から与える方法がその例で、理由はヘストン・モデルのページで扱います20。
  • 目的関数に罰則を足します。ジャンプ拡散モデルの研究は、誤差に、事前に選んだモデルとの相対エントロピーの罰則を足して、解を 1 つに決まる安定なものにしています21。
  • 前回のパラメータからの動きに罰則を足すか、前回のパラメータを出発点に局所的に最小化し直します。後者でも遠くへ動かないとは限らないため、パラメータに範囲の制約を置くことがあります22。
  • パラメータの桁をそろえるか、反復を止める許容誤差を小さくします。ヘストン・モデルの数値実験では、κ\kappa と長期の分散の方向で、目的関数の曲がり方(二階微分)の比が約 10−610^{-6} になりました23。

パラメータを増やして適合を良くすると、入力の価格に合わせすぎていないか、という過剰適合の問いが出ます。パラメータの期間構造は、満期の区間ごとに別の値のパラメータを持たせる形です。市場価格への適合は良くなりますが、パラメータが多くなり、日々の使い方でモデルが不安定になる機会も増えます24。日々の使い方では、次の 3 つが問いになります24。

  • 過剰適合になっていないか。
  • パラメータは日ごとに安定か。
  • そのパラメータの変動を、どうヘッジするか。

ヘストン・モデルにジャンプを足した提案も、より良い適合を得る代わりに、同じスマイルから合わせるパラメータを増やす例です25。

パラメータの日々の変化とヘッジ

市場が動くと、合わせ直すたびにパラメータが変わります。2006 年に掲載された論文の時点では、オプションの価格が動くたびにモデルを合わせ直すのが実務の慣行でした26。ヘストン・モデルを毎営業日に合わせ直すとパラメータが毎回変わり、変動が大きく頻繁だと、ヘッジが悪くなる危険が増え、モデルがやや不安定になる、と Le Floc'h は指摘しています27。

計算例の続きとして、説明のための単純な形を使います。ボラティリティが行使価格の位置 xx(90、100、110 で −1-1、0、1)の直線 a+bxa + b x で表せるとし、パラメータ aa(水準)と bb(傾き)を、毎日 3 つの行使価格のインプライド・ボラティリティに、重みを同じにして合わせます。実際のモデルではありません。xx が左右対称なので、aa は 3 つの平均、bb は両端の差の半分です。

日 市場(行使価格 90、100、110、%) aa(%) bb(ポイント) 差の二乗和
1 日目 18、20、23 20.33 2.50 0.17
2 日目 19、21、24 21.33 2.50 0.17
3 日目 18、20.5、25 21.17 3.50 0.67

2 日目は 3 つの価格がそろって 1 ポイント上がり、aa だけが 1 ポイント動きます。3 日目は 1 日目と比べて、中央が 0.5 ポイント、右端が 2 ポイント上がり、aa は 0.83 ポイント、bb は 1.00 ポイント動きます。市場の動きの形によって、動くパラメータが違い、誤差の大きさも変わります。

大きな変動を抑える方法には、前節の罰則と、前回のパラメータからの局所的な最小化があります。罰則の大きさの選び方は難しい点です。決め方の 1 つは、罰則を入れた全体の誤差が罰則なしの誤差の 2 倍になるように大きさを決めるものです。その場合、罰則なしの誤差が小さいと、新しいパラメータが前回から遠く動きえます。一方、市場が大きく動いたときは、パラメータが大きく動けなければならないため、罰則は強すぎてもいけません22。合わせ直す頻度も論点です。全バニラに合わせる方法では、基準になるバニラの価格が動いていなければ、その場で合わせ直す理由はありません28。

合わせても残るモデル・リスク

入力の商品の価格をすべて再現できても、そのモデルがエキゾチック・オプションの価格を正しく出すとは限りません。モデル・リスクは、この食い違いの形で現れます。

2006 年の論文の数値例では、ユーザーが与えた、ジャンプのあるモデルについて、そのモデルの、満期 0.1〜1 年、現在の価格の ±10% の行使価格のコールの価格に、ローカル・ボラティリティ・モデルを合わせています。2 つのモデルは、この範囲のコールの価格を同じ値で再現します。たとえば満期 0.2 年のアット・ザ・マネーのコールは、どちらも 3.5408 です。一方、満期 0.2 年、バリア 110 のノックアウト・コールは、ローカル・ボラティリティ・モデルで 2.73、ジャンプのあるモデルで 1.63 です。差の 1.10 は、高いほうの価格の約 40% にあたります。論文は、この差の理由を、ローカル・ボラティリティ・モデルがコールの価格に合わせるために、短期のボラティリティを高くする必要があることに求めています29。

どちらのモデルを使うかで、取引の評価損益の向きが変わります。このノックアウト・コールを買い手が 2.00 で買った架空の例で考えます。2.73 のモデルで評価すれば、買い手に 0.73 の評価益、売り手に 0.73 の評価損です。1.63 のモデルで評価すれば、買い手に 0.37 の評価損、売り手に 0.37 の評価益になります。入力にしたバニラの価格だけでは、どちらのモデルが市場を表すかを決められません。

標準的なキャリブレーションの手続きは、1 つの解、つまり 1 つのモデルを返します。モデルの種類ごとに別々に合わせて結果を比べる方法と、解が複数ありうると見て確率的な探索で複数の解を探す方法があります30。

注

  1. Rama Cont "Model uncertainty and its impact on the pricing of derivative instruments"(2006 年に Mathematical Finance 誌に掲載。掲載前の版)の 3.2 節 "Benchmark instruments vs illiquid products"(11 ページ)。 ↩ ↩2

  2. Rama Cont、Peter Tankov "Calibration of jump-diffusion option-pricing models: a robust non-parametric approach"(2002 年 9 月の第 2 版)の 1 節(3 ページ)の "Calibration Problem 1"。"inverse problem" の語を使っています。 ↩

  3. Janek ほか "FX smile in the Heston model"(2010 年)の 1.4.2 節 "The calibration scheme"(13 ページ)。ボラティリティのリスクの市場価格 λ\lambda の扱いを書いています。 ↩

  4. Cui、del Baño Rollin、Germano "Full and fast calibration of the Heston stochastic volatility model"(2016 年 5 月の第 2 版)の 2 節(3 ページ)。2 つの方法のうち後者を "real-time pricing and risk management" の方法としています。 ↩

  5. Fabien Le Floc'h "How to choose my stochastic volatility parameters? A review" の 2.1 節 "Textbook approach"(3 ページ)。 ↩

  6. Le Floc'h の同じ節(3 ページ)。Griebsch と Pilz(2010 年)の FX のバリア・オプションの例の "cross product" です。35 は 7 × 5 の計算です。 ↩

  7. Le Floc'h の "Live calibration vs. up-front calibration" 節の終わり(7 ページ)。"a two year exotic contract paying every 6 months" の例です。 ↩

  8. Martin Haugh "Market Models"(Term Structure Models: IEOR E4710)の "Calibration" 節(9 ページ)。同じ資料の 4 ページは、期間構造モデルの合わせ方に、過去のデータと市場価格の両方を使うことがあると書いています。 ↩ ↩2 ↩3

  9. Cont、Tankov の 3.1 節 "Non-linear least squares"(13 ページ)の式 (30)。誤差に重み ωi\omega_i を付けた二乗和を、通常は勾配に基づく方法で最小にするとしています。 ↩ ↩2

  10. Cui ほかの 3 節(5 ページ)の式 (2)〜(5)。残差 ri(θ)=C(θ;Ki,Ti)−C∗(Ki,Ti)r_i(\theta) = C(\theta; K_i, T_i) - C^{*}(K_i, T_i) の二乗和 f(θ)=12∥r(θ)∥2f(\theta) = \frac{1}{2} \lVert r(\theta) \rVert^2 を最小にし、"n ≫ m"(商品の数がパラメータの数よりずっと多い)ので "overdetermined"(式が未知数より多い)だと書いています。 ↩ ↩2

  11. 記号は、Cont と Tankov の式 (30)(重みは ωi\omega_i)に合わせています。Cui らは重みを付けず、全体に 12\frac{1}{2} を掛けています。 ↩

  12. Janek ほかの 1.4.2 節(14 ページ)。誤差の二乗和(SSE)をボラティリティの差で作る理由と、重みで適合を調整できること、最小化に MATLAB の fminsearch(シンプレックス探索)を使うこと、v0v_0 と κ\kappa を固定して 3 つのパラメータを合わせることを書いています。 ↩ ↩2

  13. Cont(2006)の 5 節(24 ページ)の式 (5.3)、(5.4)。モデルの価格と市場価格の差のノルムとして、差の絶対値の最大と合計を、"calibration error" の測り方に挙げています。 ↩

  14. Cui ほかの要旨(1 ページ)。解析的な勾配は数値の勾配より約 10 倍速いとし、レーベンバーグ・マルカート法を使っています。 ↩

  15. 表の値は小数第 2 位に丸めています。差と二乗和は、丸めた差から計算し直しても同じ値になります(たとえば重み 1、1、1 では 2.332+0.332+2.672=12.672.33^2 + 0.33^2 + 2.67^2 = 12.67)。 ↩

  16. Cont、Tankov の 3.1 節(13〜14 ページ)の図 1。DAX のオプションの価格に非線形最小二乗を適用した例です。 ↩

  17. Cont、Tankov の 3.1 節(14 ページ)の図 2 と、その前後の説明。 ↩

  18. Cui ほかの 2.1 節 "Recognised difficulties"(3 ページ)。資料の記号は、分散のボラティリティが σ\sigma、長期の分散が vˉ\bar v で、このサイトの ξ\xi に当たります。 ↩

  19. Cui ほかの 5 節(22 ページ)。局所解は、"narrow valley with a flat bottom and a premature stopping criterion" が原因だと書いています。 ↩

  20. Le Floc'h の 2.2 節 "Fixing one parameter"(3 ページ)。 ↩

  21. Cont、Tankov の 3.2 節 "Regularization"(14 ページ)の式 (31)。誤差に相対エントロピーの罰則 αF(Q,Q0)\alpha F(Q, Q_0) を足し、α\alpha を "regularization parameter" と呼んでいます。 ↩

  22. Le Floc'h の 2.3 節 "Further stabilization"(3 ページ)。 ↩ ↩2

  23. Cui ほかの 5 節(24 ページ)。パラメータを同じ桁にそろえることと、許容誤差を小さくすることを、2 つの対処として挙げています。比 10−610^{-6} は、∂2f/∂κ2\partial^2 f / \partial \kappa^2 と ∂2f/∂vˉ2\partial^2 f / \partial \bar v^2 の比です。 ↩

  24. Le Floc'h の "Term-structure of parameters" 節(5〜6 ページ)。区分ごとに一定(piecewise-constant)の形を期間構造と呼び、3 つの問いを挙げています。「過剰適合の問い」は 1 つ目("aren't we overfitting?")の言い換えです。 ↩ ↩2

  25. Janek ほかの 1.5.2 節 "Jump-diffusion models"(19 ページ)。Bates(1996 年)らの、ジャンプと確率的ボラティリティを組み合わせる提案について書いています。 ↩

  26. Cont(2006)の 6.3 節 "Updating with new information"(28〜29 ページ)。 ↩

  27. Le Floc'h の 2.3 節(3 ページ)。 ↩

  28. Le Floc'h の "Live calibration vs. up-front calibration" 節の終わり(7 ページ)。"classical implied calibration" の場合です。 ↩

  29. Cont(2006)の例 4.4 と表 1(19〜20 ページ)。表は、満期 0.2、バリア 110 のノックアウト・コールに、ローカル・ボラティリティ・モデルで 2.73、ジャンプのあるモデルで 1.63、差 1.1 を示しています。1.1 は 2.73 の約 40% で、論文は "40% of its selling price" と書いています。 ↩

  30. Cont(2006)の 6.2 節 "Specifying the class of models"(28 ページ)と例 4.3(18 ページ)。例 4.3 は、進化的アルゴリズムで複数の解を探しています。 ↩