Derivatives analytics with Python の学習ノート 3章

Derivatives Analytics with Python
スポンサーリンク

前回の続きです。

読んでいる本はこちら。少しでも興味をお持ちになったら、ここでは詳細には触れませんのでぜひ購入を検討してみてください。この本を片手に参考程度に見てもらえればと思っています。本当は全部公開したいのですが、書籍の営業の邪魔しないように一部のみに留めておきます。見てみたいというかたはご一報いただければ個別に対応しようと思います。

[rps-include post="2280"]

3. Market Stylized Facts

3.1 Introduction

この章でこういう事項を扱いますという説明。ランダムな場合の相場と、実際の相場を比較し、実際の相場だけに現れる傾向を検証していくことになる。実際には、stylized factsをしっかりと理解して、モデルに必要な要素を身につけましょうという感じ。
[auth]
この章では、更なるモデリングや実装の取り組みとして実際の世界での分析を実施する。DAXやEURO STOXX 50を主要な分析の対象とする。

この章の最初では、equity markets やequity derivatives の相関やボラティリティのような主要な概念を紹介する。それから、研究室の流行りであるブラック・ショールズメルトンの基準となる幾何的ブラウン運動モデルを基幹とした仮想化の研究を実施する。DAXの時系列解析の結果の単純化と再現可能性を対象としたチュートリアルを行う。その後、セクション3.5ではオプションマーケットを焦点とする。ここでは、価格付けの慣習(Pricing Conventions?)や実践、Volatility smile/skew、そして その期間構造をメインのトピックとする。セクション3.6では、簡潔にshort ratesに関係する市場の現実を簡単に説明する。
[/auth]

Volatility smile/skewとは

3.2 Volatility Correlation and Co.

ボラティリティと相関について。ボラティリティがオプションとデリバティブの解析における一番の概念。それは単一のボラティリティの概念ではなく、”undirected dispersion/risk measure” (無方向性分散とリスク尺度?)に関係する概念の組み合わせである。ここでは、以下のボラティリティの概念を区別する。常に確率的処理や金融の時系列と関係がある。

これから登場するlog値[latex]r_n[/latex]は以下のように定義する。おそらく、[latex]S_n[/latex]は実際の時系列データの観測値。
[latex]r_n \equiv \log Sn – \log S{n-1} = \log(Sn/S{n-1})[/latex]

これから考慮するlog値[latex]r_n[/latex]というのはlog変換した偏差だということは念頭に置いておいたほうがいい。
historical volatility いわゆる平均と標準偏差。
instantaneous volatility 瞬時ボラティリティ。拡散処理のボラティリティ要素として言及される。ブラック・ショールズメルトンでは、instantaneous volatility[latex]\sigma[/latex]は以下の公式(the respective Stochastic Differential Equation)で使われている。
[latex]dS_t = rS_t dt + \sigma S_t d Z_t[/latex]
implied volatility 予想変動率。オプション取引において、現在のオプション価格によって暗示される将来価格が変動するであろうという市場の期待値。ブラック・ショールズメルトンオプション価格算出公式を用いて、オプションの価格を算出し、ヨーロピアンオプションの価格が[latex]C^*_0[/latex]だったとき、implied volatility [latex]\sigma^{imp}[/latex]は以下の等式を暗に満たす。
[latex]C^*_0 = C^{BSM}(S_0, K, T, r, \sigma^{imp})[/latex]

これらのボラリティには変数と呼ばれる、平方に相当するものが使われている。例を上げれば、金融モデルの一部では、ボラティリティを確率変数をして扱っており、ブラック・ショールズメルトン推定では、ボラティリティの代わりに変数がモデル化されている。

以下の2つの(サンプルの)モーメント分布は重要である。

skewness 歪度。
サンプルの値が平均値に対してどのような位置にあるかという尺度。[latex]r_n[/latex]:観測値 [latex]\hat{\mu}[/latex]:平均値 [latex]\hat{s}[/latex]:歪度
[latex]$\displaystyle \hat{s} = \frac{\frac{1}{n}\Sigma^N_{n=1}(r_n-\hat{\mu})^3}{(\frac{1}{n}\Sigma^N_{n=1}(r_n-\hat{\mu})^2)^{3/2}}$[/latex]
kurtosis 尖度。

相関も重要である。以下2つを主要な種類として扱う。

historical correlation 一般的な相関係数
instantaneous correlation 瞬時相関係数。算出する the quadratic variation process があるらしい。

これらの定義を実装すれば、人工的なデータに対しても、実際のデータに対してもこれらを適用できるようになる。

3.3 Normal Returns As The Benchmark Case

基礎的な事例として、SDE(the respective Stochastic Differential Equation)によって与えられるBSM(Black-Sholes-Merton)の幾何的ブラウン運動を考える。実際に完全にランダムな相場のモデリングを行う。

[auth]
[latex]dS_t = rS_t dt + \sigma S_t d Z_t[/latex]

簡単にシミュレートしやすい離散的な場合では、違った等式が与えられる。

[latex]St = S{t-\Delta_t}e^{(r-\frac{1}{2}\sigma^2)\Deltat+\sigma\sqrt{\Delta t}z_t}[/latex]

以下のようにパラメータを設定する。詳細は3.8.1にPythonコードがある。
[latex] S_0 = 100, T = 10.0, r = 0.05, \sigma = 0.2[/latex]

5.2でBSMについてのチャプターがあるから、そこでBSMについての解説があるのかな?ここでもBSMについてはコードだけでさらっと流されてる。

[/auth]

コードをみた所見
・np.random.seed(250000)にてランダムの数値が固定されているため、実行を繰り返しても同じデータが得られる。
・2004年からの時系列データとして定義されているが、ブラウン運動を想定した仮想値。
・qqplotは引数が一つしかなければ、理論分位数に対する標本分位数のQQプロットを行う。

[auth]
図3.1はインデックスの価格とlog値のグラフ。図3.2はlog値の正規分布。ブラウン運動はもともと正規化された正規分布に等しくなるので、グラフはよく一致する。

図3.3はQ-Qプロット(Quantile-quantile plot 分位数-分位数プロット)。

QQプロットは、2 つの標本が同じ分布によるものであるかどうかを判定するために使われる。
得られた所見
volatility 設定した[latex]σ=0.2[/latex]に近づく
skewness 歪度はほとんどゼロになり、高いp値はログ値の分布が正規化されていることを示す。
kurtosis 尖度は若干プラス。高いp値は分布の正規性を示す。
normality 0.426というp値が得られた
0.426というのは0.374472の誤植?

[/auth]

結局のところ、予期した通りの結果が得られる。

realized volatilityを rolling volatility(おそらく移動標準偏差)として描写し、log値の移動平均も描写して移動相関をとってみたのが図3.5。価格とボラティリティの相関とってどうするのというのは謎・・・。
→だったけど、次の章でstylized factsの一つとして紹介される。

[auth]
realized volatilityと変数とは?まずはじめに、現実化されたボラティリティとは、ヒストリカルボラティリティの特別な形であり、処理過程として見ることができる。ヒストリカルボラティリティは固定化された時間窓や固定化された観測数によって計算される一方で、realized volatilityは、時間を通して導き出される。2004年1月からスタートし、5つの観測値があり、初めてサンプルのボラティリティの計算をしたと想定しよう。今、6つ目の観測値が可能になった一日後となったら、私たちはボラティリティの値を6つ目の値を含めて更新する。この方法で、realized volatilityは継続的に更新される。

図3.4はrealized volatilityの時間経過による進化を描写した。これは明確に上記で述べた0.202に収束しており、これは瞬時ボラティリティとほぼ等しい。

最後に、図3.5は252日、すなわち1年間rolling meanとrolling realized volatilityの値を示している。更に、2つの値の同じ長さを持つ移動相関を表示した。realized volatilityと全区間ボラティリティは一定の瞬時ボラティリティと一致する。移動ボラティリティは20%以下になると大きく変わる。このボラティリティと移動平均は時々陽方向に一致し、時々陰方向に一致する。平均相関率は-0.0529となった。
[/auth]

3.4 Indices and Stocks

オプションに取り掛かる前に、このセクションでは株やインデックスの形式化された要素の再現をする。多分この章で一番重要なセクション。

3.4.1 Stylized Facts

このセクションで紹介される stylized facts は今後の学習の基本となるのでしっかりと理解したほうが良い。
[auth]
簡単なストックインデックスの話をする。Stylized Factsはこのように表現される。

"多くの金融商品や市場、時間軸にまたがって共通する(統計の)プロパティの組み合わせは独立した調査や分類付けによってstylized facetsとして観察されている"

そのような重要なStylized Factsを以下に列挙する。

stochastic volatility ボラティリティが確率的であること
volatility clustering ボラティリティには実証されたデータによる正の自己相関性がある。
volatility mean reversion ボラティリティは平均回帰する性質がある
leverage effect ボラティリティにはアセットのリターンと負の相関がある(価格が上がるとボラティリティが下がる)
fat tails 正規分布と比べて正と負のインデックスのリターンの頻度が多い
jumps ガウスでは説明できない大きな変動がある。

[/auth]

3.4.2 DAX Index Returns

Stylized facts が存在するかDAXを使って検証する。

[auth]

図3.6では一見すると違いは大きくないように見えるが、日々のリターンを見ると大きなピーク値の差が見て取れる。(volatilitiy clustering)

図3.7ではピークが高くなっていることと、しっぽが重くなっていることがみてとれる。歪度は参考にならない。

図3.8のQ-Q plotでは、その違いがわかりやすい。

図3.9でRealized Volatilityを描写しているが、明確には収束していないことが見て取れる。時間を経るごとにvolatilityが変化しているのが確認できる。

図3.10では"volatility clustering"と"mean reverting"、"leverage effect"が確認できる。

これらのことから、DAXのモデリングをしたければ、以下のことを考慮するべきだろう。

autocorrelated stochastic volatility 確率的自己相関性
mean reversion of volatility 平均回帰性
leverage effect, i.e. negative correlation between returns and volatility レバレッジエフェクト
fat tails of and jumps in the index returns 価格の飛びやファットテール性

[/auth]

3.5 Option Markets

この章ではオプション市場を取り上げ、とりわけBid Ask スプレッドとimplied volatility について扱う。

3.5.1 Bid/Ask Spreads

[auth]
市場ベースのequity derivatives の評価(バニラ、エグゾティックともに)では、十分に性格な価値を提供するべきである。しかし、市場は完全ではない。Bid Askの2つの値を提供する。

テーブル3.1はダウ・ジョーンズのインデックスの1996年から2010年の期間のコールオプションの平均価格表。テーブル3.2はプット・オプションの価格表。オプション価格は価格は3ドル以下では5セントずつ、以上では10セントずつ動く。
[/auth]

3.5.2 Implied Volatility Surface

[auth]
[latex]
\begin{equation}
C^*_0 = C^BSM(S_0, K, T, r, \sigma^{imp}) \tag{3.1}
\end{equation}
[/latex]

[latex]C^*_0[/latex]のmarket quote を持つヨーロッパコール・オプションの implied volatility は BSMコールオプションの公式によって与えられる implicit equation を解く[latex]\sigma^{imp}[/latex]である。Capter 5 でモデル、公式、公式の感度を input volatility (vegaよ呼ばれる)に関して詳細に議論する。今回の段階で知っておくべき重要なことは、ボラティリティに関する最初の数学公式のデリバティブである vega はコール価格とボラティリティの関係性とさらに(3.1)式の唯一の答えを厳密に正に導き出していることである。サブセクション3.8でBSM公式をコールオプションと implicit equation を解くための実数の繰り返し処理のために実装したPython Scriptを提供する。

この知識を身につけたので、私たちは今、real volatility surfaceを簡単に分析したい。 Volatility surface とは、異なったオプションのストライク価格や期限を同じ基準で暗示された volatilities である。学習の私達の目標はEURO STOXX 50 stock index のヨーロピアンコールオプションの implied volatilities である。

index returns のように、stock indices の volatility surfaceについての stylied facts がある。

smiles implied volatilities はsmileの形をしている。
term structure 短期間のほうが smile が際立つ。volatility term structure と呼ばれることがある。

3.8.4のサブセクションにあるスプリクトは異なったストライク価格や期限のオプションの組み合わせを使っている。オプションはEURO STOXX 50のヨーロピアンコールオプションで、quotes は2014/9/30からである。以下は、データの小さな抜粋である。そのスプリクトでは異なったオプションのimplied volatilitiesを計算し、グラフ化したものが図3.11で、これはstylized facts をよりよく反映している。
[/auth]

3.6 Short rates

[auth]
Short rates と associated discount factores はオプションの評価に重要なだけではない。short rates は ある意味、すべての asset pricing models の最低限の共通の分母で、再優先のアセットクラス(株やbonds、先物等)かデリバティブアセットになり、完全か完全ではないマーケットモデルの中にある。チャプター4で大きく議論することになるが、short rates とその対応するdiscount factors は基本的に risk-neutral valuation approachとFundamental Theorem of Asset Pricing の基本的な建築用ブロック(積み木)である。

しかしながら、動的なshort ratesについての経験的証拠は、それが期待するよりも明確ではない。最近のBali-Wuによる経験的研究では、以下のように述べている。

"理論的、経験的の両方の金融学では、そのアセットの価格付けをするという中心的な役割からshort-tem interest rate は基本的な欠かせない変数である。莫大な量の取り組みはshort-term interest rates の確率的振る舞いの理解に向かって方向付けされている。それにも関わらず、異なったデータセットや異なったパラメータのもしくはパラメータではない仕様書にもとづいて、これらの研究は混乱するような時には、衝突する結論を導き出す。"

にもかかわらず、いくつかの stylized facts はshort rates と比較した報告をする価値がある。金融のモデリングに必要とされる点でもっとも重要とされることは、以下である。

positivity (normal) 金利は一般的に正である。
stochasticity 一般的な金利ととりわけshort ratesはrandom fashion な動きをする。高い自信を持って金利の動きを予想する手段はない。
mean reversion interest rates は長期的にはゼロや無限大に向かうものではない。
term structure 公債のベンチマークの収益は – German bunds のような – インターバンクの貸付レートも同様に、時間を経て maturity implying different (instataneous) forward rates、すなわち different future short rate levelsに変化する。

Euribor(Euro InterBank Offered Rate) は インターバンクの貸付のベンチマークとなるレートである。1週間から1年間までの異なった満期期限のEuriborレートがある。図3.12は1999年1月から2014年9月までの1週間のEuriborの日々のquotesとlog return を示す。日々の変化から、数多くの外れ値が見て取れ、何か volatility clustering のようなものを観測することができる。この図は最初の3つのstylized factsを支持を提供している。この図は3.8.5のPython script で描写した。エクセルワークブックを読み取ってる。図3.13ではhigh peakを読み取れる。

図3.14はdaily log return のQQ図。

図3.15は1週間、6ヶ月、1年間のquotes 値の比較。2008年から2009年にかけての金融危機が全体のEuribor Ratesを大きく引き下げた。
[/auth]

3.7 Conclusions

[auth]
realistic market model は

  • インデックスのボラティリティを考慮しなければならない。
  • インデックスの構成の中で価格のジャンプを考慮しなければならない。
  • 金利を考慮しなければならない。
    – 時間で変化する(正・確率的・平均回帰)
    – 異なったtime horizons で変化する(term structure)

ゆえにモデルは以下を含有すする。

a stochastic volatility component 確率的ボラティリティ要素
a jump component 価格の飛び要素
a stochastic short rate component 確率的short rate 要素

[/auth]

コメント

タイトルとURLをコピーしました