今回はRを使ってブラックショールズモデルの関数を作ってみます。
今回は公式の通り、原資産額(S)・行使価格(K)・ボラティリティ(σ)・無リスク金利(r)・期間(T)を使ってコールオプションの価格(原資産額Sの金融商品をt期間後に行使価格Kを買う事のできる権利)を計算していきます。
###ブラックショールズモデルによってコールオプション価格を計算する関数を作る###
> blackscholes <- function(S,K,r,sigma,T)
+ {
+ d1 <- (log(S/K)+(r+sigma^2/2 )*T) / (sigma*sqrt(T))
+ d2 <- d1 - sigma*sqrt(T)
+ C0<-S*pnorm(d1)-exp(-r*T)*K*pnorm(d2)
+ return(c(“コールオプション価格”=C0))
+ }
これで関数が完成しました。次はこれに引数(S,K,r,sigma,T)に適当な数値を入れて関数を動かします。
###無リスク金利が0.05のとき、原資産額100の金融商品(ボラティリティ0.3)を7期間後に行使価格100を買う事のできる権利の価格を計算する###
> blackscholes(100,100,0.05,0.3,7)
コールオプション価格
43.41978
コールオプションとは原資産価格Sの商品を、一定期間後に行使額Kで購入して売却するものなので、行使額Kが低ければ低いほど利益は大きくなるということになります。(行使額が原資産額を上回ってしまった場合は権利を行使しないことにより権利購入額分の損をすることになります。)
なので、行使額Kの値を低くすればするほどそのコールオプションの価値は上昇することになります。
> blackscholes(100,50,0.05,0.3,7) ##行使価格50のとき
コールオプション価格
66.73609> blackscholes(100,30,0.05,0.3,7) ##行使価格30のとき
コールオプション価格
79.18537
> blackscholes(100,10,0.05,0.3,7) ##行使価格10のとき
コールオプション価格
92.95525
次にプットオプション(売る権利)の価格を計算していきます。
コメント