以下の内容はhttp://blog.livedoor.jp/splus_r/archives/2010-11.htmlより取得しました。


それではオプションのトレーディングでもっとも基本的なデルタ・ヘッジを勉強しましょう。先ほどと同じコール・オプションを考えます。

 行使価格=50円
 満期までの期間=1年間
 ボラティリティ=30%
 金利=1%
 配当利回り=2%

株価が50円の時に、ATMのコール・オプションを100万個買ったとしましょう。BSモデルから計算するとプレミアムは5.63円ぐらいなので、563万円だしてコール・オプションを100万個ロングしたとします。また、この時のデルタは同じくBSモデルより約0.54なので、株価の上下に対してリスクを除去する、つまりデルタ・ヘッジするには、100万x0.54で54万株ショートすればいいのです。

さてそれではこの合成ポジションのPL(損益)は株価の変動に対してヘッジされているかどうか見てみましょう。オプションは100万個ロングしているので、プレミアムが1円上がれば100万円儲かります。逆に1円下げれば100万円損します。株は54万株ショートしているので、1円上がれば54万円損しますし、1円下げれば54万円儲かります。

BS_DeltaHedge1

緑の線がオプションと株の空売りのポートフォリオのPLです。50円付近では確かにほとんど水平になっていて、株価が上下してもほとんどPLはでないようにヘッジされていますね。それでは50円付近のところを拡大してみましょう。

BS_DeltaHedge2

株価が1円や2円動いたところでほとんど利益も損もでないことがわかります。でも5円ぐらい動いて株価が55円ぐらいになると29万円ほど儲かりますし、5円下がって45円になると36万円儲かります。さてここでひとつ面白いことがわかりました。コール・オプションはこのようにデルタ・ヘッジすると株が上がっても下がっても儲かるのです。

さてここで、株価が45円になったとして、もう一回デルタ・ヘッジをやり直して株価の上下に対してリスクを消しましょう。45円になると、オプションのプレミアムは約3.29円になっていますから、100万個を5.63円で買っているので、オプションの方では(5.63-3.29)x100万で234万円の損失になります。しかし54万株を50円で空売りしていますから、ここで270万円儲かりますから、合計では36万円の儲けになります。それではもう一回デルタ・ヘッジするにはどうすればいいでしょうか? 株価が45円の時のデルタは約0.40なので、オプション100万個に対しては株は40万株ショートすればいいことになります。今すでに54万株をショートしているので、14万株を45円で買い戻せば40万株のショート・ポジションが作れます。こうするとまた株価の(少しの)上下では損益がでないポジションになります。こうやってずれたデルタをもう一回ヘッジすることをリヘッジといいます。

BS_DeltaHedge4

コール・オプションをロングして株をショートしてデルタ・ヘッジすると、このように株が上がっても下がっても儲かるのです。もちろんこれは魔法でも何でもなくて、最初にごっそりオプション料金、つまりプレミアムを払っているからです。この場合は、最初に563万円払いましたね。もし1年後の満期で株価が50円以下だったら、このプレミアムはパーになります。しかしデルタ・ヘッジをこのように何度もしていくと、株価が動いてリヘッジするたびに儲かります。つまり、デルタ・ヘッジをしていると株価が激しく上下に動けば動くほど儲かることになります。この時に最終的に最初に払ったプレミアムよりもたくさんリヘッジで儲かれば、このオプション戦略は成功でしょう。それでは成功するかどうかは何が決めるのでしょうか?

それはいろいろな要素がありますが、基本的には実現するボラティリティがオプションを買ったときのボラティリティ、この場合は30%よりも大きくなるか、小さくなるかで決まります。このオプションが取引された時、30%のボラティリティを予測しました。それであなたはオプションが割安だと思って買ったのです。逆にいえば、取引相手はオプションが割高だと思って売ったことになります。オプション価格を計算するためにボラティリティをインプットしましたが、オプションのマーケットではBSモデルやボラティリティなど気にせずにオプションの値段が毎日付いていています。このようなオプション価格から逆算して割り出されるボラティリティをインプライド・ボラティリティといいます。あなたは30%のインプライド・ボラティリティが割安だと思ったわけです。しかしこれは予想なので、実現するボラティリティはこれより大きいかもしれませんし、小さいかもしれません。要するに、オプション取引とは実はボラティリティを予測して、ボラティリティを安く買って高く売るか、あるいは高く売って安く買い戻すゲームなのです。

それでは次はガンマやセータやベガを勉強して、このへんをもっと見ていきましょう。


ブラック・ショールズ・モデルって何だ? その1
ブラック・ショールズ・モデルって何だ? その2
ブラック・ショールズ・モデルって何だ? その3
ブラック・ショールズ・モデルって何だ? その4
Black Scholes Calculator

それではBS式を使っていろいろ計算してみましょう。ここでは次のコール・オプションを考えます。

 行使価格=50円
 満期までの期間=1年間
 ボラティリティ=30%
 金利=1%
 配当利回り=2%

株価(S)を動かして、いろいろなパラメータを観察してみましょう。

まずはプレミアムと満期での儲け(ペイオフといいます)を見てみましょう。

BS_Payoff_Premium

行使価格が50円なので、満期での株価が50円以下なら儲けはゼロですね。50円を超えた分だけ儲けになります。この図で青い線がペイオフを表します。プレミアムは行使価格と株価が同じところで約5.6円になります。つまり5.6円払ってこのコール・オプションを買えば、株価の下落を心配することなく、株価のアップサイドを狙えます。とはいってもオプション代に5.6円払っていますから、株価が5.6円以上あがらないとトータルでは損になってしまいますね。株価が行使価格の50円より満期の時点で下がっていたら、このオプション代がまるまる損失になります。世の中おいしい話はありません。

さてこのプレミアムですけど株価が30円あたりから下になるとほとんどゼロになっています。逆に株価が70円あたりより上になるとペイオフとほとんど同じ傾きになっています。つまり株価が30円で行使価格が50円だと、1年後に株価が行使価格を上回っている確率は絶望的に低いだろうということです。逆に株価が70円ぐらいだと、株価が行使価格より下がることは考えにくいのでほとんど株を直接買っているのと同じになります。つまりダウンサイドをほぼ全て受け入れているということです。ところで現在の株価(スポット)と行使価格が同じオプションをアト・ザ・マネー(At the money, ATM)、スポットが行使価格より安いコール・オプションをアウト・オブ・ザ・マネー(Out of the money, OTM)、スポットが行使価格より高いコール・オプションをイン・ザ・マネー(In the money, ITM)といいます。プット・オプションだとスポットと行使価格の関係が逆になります。要するに、そのまま満期になれば儲かる状態がITM、損する状態がOTMです。

ところでボラティリティの30%というのは、1年後の株価が現在の株価の±30%ぐらいの範囲にだいたい3分の2の確率で収まりますよということをいっています。実は1年後の株価は正規分布じゃなくて対数正規分布なのでちょっとちがうのですが、それはまたあとで勉強しましょう。

次はこのコール・オプションのデルタを見てみましょう。

BS_Delta

デルタというのは、このプレミアムをスポットで微分したものです。つまり株価が1円動くとプレミアムは何円動くのかを表しています。OTMの深いところはほとんどゼロで、ATMで約0.5になって、ITMで株価が上がっていくとほぼ1になっていますね。実はこのデルタはとても大切です。なぜ大切かというと、デルタ・ヘッジするための割合を教えてくれるからです。それではデルタ・ヘッジを簡単に説明しましょう。

たとえばATMのコール・オプションを100個買ったとしましょう。この場合はだいたい5.6円x100で560円ぐらいですね。ここで株価が1円上がると、プレミアムはだいたい0.5円上がります。逆に1円下がるとプレミアムは0.5円さがります。オプションにも株と同じようにマーケットがあって、満期まで待たなくても売ってしまうことができます。つまりこのATMのコール・オプションを買って株価が1円上がれば0.5円儲かるし、1円下がれば0.5円損するのです。ということはコール・オプションを100個買ったら、この株を50株ほど空売りしておけば株価が動いても損得なしにできますね。これがデルタ・ヘッジです。デルタはコール・オプションの買い持ち(ロング)に対して、どれだけ現物を空売り(ショート)すれば株価の上下に対してリスクをなくせるかを教えてくれるのです。


ブラック・ショールズ・モデルって何だ? その1
ブラック・ショールズ・モデルって何だ? その2
ブラック・ショールズ・モデルって何だ? その3
ブラック・ショールズ・モデルって何だ? その4
Black Scholes Calculator

ブラック・ショールズ・モデル(Black-Scholes Model, BSモデル)というのはオプションの値段を計算するモデルです。ここでオプションというのは将来のある時点で何かをあらかじめ決まった価格で買う(コール)、あるいは売る(プット)ことができる権利のことです。

たとえばトヨタ自動車株のコール・オプションを考えましょう。1年後にトヨタ自動車を1株3000円で買う権利があるとしたら、この権利の価値がいくらかというのが、このオプションの価格です。今の株価が3000円だとして、1年後に株価が3500円になれば、この権利を行使してトヨタ株を3000円で買ってすぐに売れば500円の儲けになります。逆に2500円に下がってしまっても「権利」なのでそのまま何もしなければ損しません。要するにコール・オプションというのは前もって決まった価格(行使価格)より対象の資産(原資産)の価格が満期で上がっていれば儲かるし、下がっていれば何もしないので損益がゼロになる金融商品なのです。上がれば儲かるし、下がっても損しないので、すばらしい金融商品です。もちろんすばらしいので証券会社はただでは売ってくれません(笑)。そこでこのコール・オプションがいくらなのか教えてくれるのがBSモデルです。ちなみにオプションはいつでも権利行使できるアメリカン・タイプと、最初に決めた満期の時だけ行使できるヨーロピアン・タイプがありますが、ここではヨーロピアン・タイプを考えます。

このモデルはノーベル経済学賞を取ったくらいですので、導出するのはむずかしいですが、使うのは簡単です。次のパラメータをインプットしてやると、オプション価格がポンとでてきます。スポット(S)、行使価格(K)、ボラティリティ(σ)、満期までの期間(τ)、金利(r)、そして原資産が株の場合は配当(q)です。ところでオプション価格のことをプレミアムといいます。あまり教科書には載っていませんが、株のオプションだと貸株料なんかも重要になってきますがこれは後で考えましょう。さて、BSモデルによるコール・オプションのプレミアムは次のようになります。

    Premium formula using BS model
    d1 in BS model
    d2 in BS model
    The cumulative normal distribution function

これはエクセルでもRでも何でも比較的簡単にプログラムできるのですが、以下にJavaのソース・コードをコピペしておきます。それではこの簡単なプログラムを使って、次はいろいろ計算してみましょう。

ブラック・ショールズ・モデルのJavaのコード
public static double vanillaCall(
       double S, // spot price
       double K, // exercise price
       double vol, // volatility
       double T, // time to maturity
       double r, // interest rate
       double q) // dividend yield
{
  if(T <= 0.0)
  {
    return Math.max(0.0,S-K);
  }
    else
  {
    return S*Math.exp(-q*T)*normsdist(d1(S,K,vol,T,r,q)) - K*Math.exp(-r*T)*normsdist(d2(S,K,vol,T,r,q));
  }
}

public static double d1(
       double S,
       double K,
       double vol,
       double T,
       double r,
       double q)
{
  return (Math.log(S/K)+(r-q+vol*vol/2)*T)/(vol*Math.sqrt(T));
}

public static double d2(
       double S,
       double K,
       double vol,
       double T,
       double r,
       double q)
{
  return d1(S,K,vol,T,r,q)-vol*Math.sqrt(T);
}

public static double normsdist(double z)
{
  double z2 = z*z,
      t = z*Math.exp(-0.5*z2)/Math.sqrt(2*Math.PI),
      p = t;

  for(int i=3;i<200;i+=2)
  {
    double prev = p; t *= z2/i; p += t;
    if(p == prev)
    {
      return 0.5+p;
    }
  }

  return (z>0) ? 1:0;
}


それでは宿題として、エクセルかRでBSモデルを作ってみましょう(笑)。


ブラック・ショールズ・モデルって何だ? その1
ブラック・ショールズ・モデルって何だ? その2
ブラック・ショールズ・モデルって何だ? その3
ブラック・ショールズ・モデルって何だ? その4
Black Scholes Calculator



以上の内容はhttp://blog.livedoor.jp/splus_r/archives/2010-11.htmlより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14