pythonで学ぶ金融工学(3項ツリー_リスク中立確率の算出)
前回の記事で2項ツリーを作成したが、その拡張として3項ツリーがある。一般的には3のほうが精度が高く、実務でも好まれる(らしい)。ので今日は3項ツリーの作成を試みる。
このとき、上昇(u)、変化なし(m)、下降(d)の3つがあるので、それぞれの変動率をu、m、d、リスク中立確率をPu、Pm、Pdとすると、いくつかの条件を満たす必要がある。
まず、確率の和は1なので、Pu+Pm+Pd=1。次に、期待値が無リスク資産の上昇率と等しくなければいけないので、u×Pu+m×Pm+d×Pd=(r-0.5sigma^2)dt。最後に、分散に関してV(x)=E(x^2)-{E(x)}^2より、u^2×Pu+m^2×Pm+d^2×Pd-(r-0.5sigma^2)^2=sigma^2dt。見づらいのではてなTeXを使って真面目に書くと、
ただし、これだと5変数(u,d,Pu,Pm,Pd。mは実質的に0)に対して3つしか式がないので解けない。そこで、どれかを与えてやる必要があるが、とするのが一般的らしい。これを用いて方程式を解き、リスク中立確率を得る。あとは実装だけ…基本的な考え方は変わらないが、実装にあたっては大きく分けて(多分)2点変更が必要。
・ノード数
当然ながら3項になるとノード数が変わる。2だと、nステップ後はn+1のノードが並んでいるが、3だと2n+1コ並んでいるはず。
・後ろから戻ってくるときの確率
上記の話から、1期前に戻すときにかけ合わせる確率の部分がことなる。
なのでこれらさえ変更すれば、3の場合の実装も容易なハズ・・・だけどそちらは次回。