Excelを使ってオプション価格やインプライド・ボラティリティを簡単な例題で求めてみる。
実務的な理由で15 桁精度 以上の高精度計算が必要な場合、Excel 365にはPython が標準搭載されているので、 decimal(任意精度) mpmath(多倍長)
scipy.optimize(高精度の root-finding)などが利用できる。
文末にフリーのソフトRとMAXIMAの利用例を紹介している。
計算例は文末に掲載してある参考文献 Fundamentals of Futures and Options Markets の例題を使っている。
・権利行使価格exercise price 40
・残存期間(time to maturity)は年数に換算で0.5年)
・ボラティリティvolatilityは20%
・金利interest rateは10%(連続複利ベースc.c.)
という条件でブラック・ショールズ・モデルによりコールとプットの価格をエクセルを使って求めてみる。
(ワークシート)
エクセルを使って計算すると
コール価格call premiumは4.75
プット価格put premium は0.81となる。
もし、通貨オプションについてオプション価格を計算する場合には、金利のセルに(自国通貨金利−外国通貨金利)、つまり金利差を入れて計算する。
次に、エクセルのゴールシークを使ってボラティリティを変化させて、プレミアムが 市場プレミアムに等しくするようなインプライドボラティリティ(IV) を求める。例えばコールオプション時価が1.9の場合のIVをゴールシークで求めるには、メインメニューの「データ」からWhat-If分析を選び、サブメニューのゴールシークを選ぶ。コール価格を指定しゴールシークを起動しインプライドボラティリティを計算する。うまく収束すれば解(IV)が見つかるが収束しなければ解は見つからない。
・権利行使価格exercise price 20
・残存期間(time to maturity)は年数に換算で0.25年)
・ボラティリティvolatilityは未知数
・金利interest rateは10%(連続複利ベースc.c.)
ここの例ではIV=0.242 と計算できた。
(ワークシート)
(ワークシート数式表示)
参考文献
John Hull (2005)
Fundamentals of Futures and Options Markets Fifth ed Pearson Prentice Hall
このテキストファイルを開いて全てを選択(Ctl + a)してコピーしExcelの新しいシートの
セルA1にそのまま貼りつければ計算例のワークシートが再現できる。(Excel2016以降であれば可能、それより以前のversionではセルの分割作業が必要かもしれない)
具体的な手順は以下のとおり
1 このテキストファイルを開く
2 すべてテキストを選択する(Ctl + a)
3 Excelの新しいシートのセルA1に貼りつける
ワークシートでなくテキストファイルを添付した理由などについてはエクセルのワークシートをテキスト化して簡単に通信
を御参照
コストをかけずに高精度計算をするにはフリーの数学ソフトMAXIMAが便利かもしれない。
数学ソフトMAXIMAを使ったオプション・グリークスについては
ブラック・ショールズ・モデルのデルタ導出過程とリスク中立世界でのN(d1)、N(d2)の考え方 deriving Black Scholes option's Delta