Location : Home > Languages > Perl > Package Title : Math::Business::BlackSch |
![]() |
Math::Business::BlackSch - ブラックショールズ式を計算
use Math::Business::BlackSch qw/call_price call_put_prices/; my $call=call_price( $current_market_price, $volatility, $strike_price, $remaining_term, $interest_rate, $fractional_yield ); my $put=Math::Business::BlackSch::put_price( $current_market_price, $volatility, $strike_price, $remaining_term, $interest_rate ); # $fractional_yield はデフォルトでは 0.0 である。 my ($c, $p)=call_put_prices( $current_market_price, $volatility, $strike_price, $remaining_term, $interest_rate, $fractional_yield );
ブラック=ショールズモデル(Black-Scholes model)に従いヨーロピアンオプションの公正市場価格を推計する。
call_price() はコールオプションの価格を返す。
put_price() はプットオプションの価格を返す。
call_put_prices() は第1要素がコールオプション価格で、第2要素が同じパラメータにおけるプットオプション価格である2要素からなる配列を返す。call_price() 及び put_price() を順に同じ引数で計算するよりも効率的に計算を行う。
これらのルーティンは同じパラメータを引数としてとる。
$current_market_price:現在取引されている原証券の価格
$volatility:株価の自然対数の今後1年間における確率的分布の標準偏差
$strike_price:オプションのストライク価格
$remaining_term:オプション終了期限までの残余期間(単位は年)
$interest_rate:(年あたりの)リスクフリーな利子率
$fractional_yield:年あたりの配当利回りによる端数。指定しなければ0に設定される。
$volatility 及び $fractional_yield は通常、履歴データに基づいて設定される。
$interest_rate は通常、現在の米国短期国債利回り(T-bill rate)に等しいと設定される。モデルはオプションの期間中はこれらのパラメータが変化しないことを前提としている。
ヨーロピアンオプションが期限いっぱいまで終了しないのに対し、アメリカンオプションは期限までに終了させることができる。アメリカンオプション価格はしばしばヨーロピアンオプションと同じ価格が設定される。それはオプションの期待値はたいていその内在的価値よりも大きいからである。しかしながら配当が有る場合(コールオプションの場合)または利子率が高い場合(プットオプションの場合)、権利行使時の税金を考慮するのであればアメリカンオプションは保持者にとってもっと価値のあるものとなるであろう。
負の市場価値を認める原資産はショートとみなされる。ショートを買うということは証券を売ることと同等であり、ショートに対するコールオプションはプットオプションと同等である。これは少しややこしいので実行する際には十分に注意すべきである。
負の期間に対するオプションを計算しようとしても、意味がないので croak() の中に結果を出力する。疑わしい引数(たとえば負の利子率)を渡すと警告メッセージを出力する。
これらのメッセージを表示させたくなければ以下のようにするとよい。
{ local($SIG{__WARN__})=sub{}; $value=call_price( ... ); }
Anders Johnson, anders@ieee.org
![]() |
Updated : 2006/08/14 |