始める無料で始める

オプション価格と原資産

オプションは本質的に、原資産の価格が将来どのように動くかに対する「ベット」です。

たとえば、プットオプションは、スポット(市場)価格が権利行使価格を「下回る」ほど価値が高まります。オプション保有者は、権利行使価格 \(X\) で原資産を「売る」権利を行使し、スポット \(S < X\) で買い戻すことで、利益 \(X - S\) を得られます。

この演習では、IBM 株式のヨーロピアンプットオプションを、ブラック–ショールズの価格式を用いて、スポット \(S\) の変化に応じて評価・可視化します。

権利行使価格 X = 140、満期までの時間 T は 1/2 年、無リスク金利は 2% です。

IBM の年率ボラティリティは sigma として与えられており、プロット用の軸 option_axis も用意されています。

black_scholes() 関数のソースコードはこちらで確認できます。

この演習はコースの一部です

Pythonで学ぶ定量的リスク管理

コースを見る

演習の手順

  • IBM のスポット価格の時系列データから最初の100観測を取り出し、IBM_spot に設定します。
  • IBM_spot を列挙しながら反復し、black_scholes() の価格式を使って Numpy 配列 option_values を計算します。
  • スポット価格の変化(青)とオプション価値の変化(赤)の関係がわかるように、option_values をプロットします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Select the first 100 observations of IBM data
IBM_spot = IBM[:____]

# Initialize the European put option values array
option_values = np.zeros(IBM_spot.size)

# Iterate through IBM's spot price and compute the option values
for i,S in enumerate(____.values):
    option_values[i] = black_scholes(S = ____, X = 140, T = 0.5, r = 0.02, 
                        sigma = ____, option_type = "put")

# Display the option values array
option_axis.plot(____, color = "red", label = "Put Option")
option_axis.legend(loc = "upper left")
plt.show()
コードを編集して実行