実践オプション入門(5) ボラティリティスマイル

まずはこの画面を見てもらいたい

Saxobankより借用

このように、オプションには行使価格に応じて異なったボラティリティが存在する。これをプロットしてみよう

prices = {158.75, 159, 159.25, 159.50, 159.75, 160};
s0 = 159.45;
values = {7.36, 7.18, 7.04, 6.93, 6.87, 6.86};
{prices - s0, values} // Transpose // ListLinePlot

これをボラティリティスマイルと呼ぶ。

ボラティリティスマイルからは市場参加者の相場観が織り込まれている。
下降を見込むときは右肩下がりに、上昇を見込むときは左肩下がりになる。

さて、オプション価格からこのボラティリティスマイルを自分で復元してみよう。

ClearAll[f];
drate = 0.077;
frate = 5.32;
s0 = 159.45;
tau = 5;
f[k_?NumericQ, s_?NumericQ] := 
  FinancialDerivative[{"European", "Put"}, {"StrikePrice" -> k, 
    "Expiration" -> tau/365}, {"InterestRate" -> drate/100*tau/365, 
    "Volatility" -> s, "CurrentPrice" -> s0, 
    "Dividend" -> frate/100*tau/365}];
vls = {0.28950, .36650, .46350, .58050, .720, .8825};
ks = {158.75, 159, 159.25, 159.5, 159.75, 160};
sigmas = ({#1 - s0, x*100} /. 
        Last@NMinimize[{(f[#1, x] - #2)^2, 1 > x > 0}, 
          x] &) @@ # & /@ ({ks, vls} // Transpose);
ListLinePlot@sigmas



Saxoの計算と合わないが、気にしないことにする。
次は
現在のVSに基づいた任意オプションの計算
を扱う。

この記事が気に入ったらサポートをしてみませんか?