オプション価格と原資産
オプションは本質的に、原資産の価格が将来どのように動くかに対する「ベット」です。
たとえば、プットオプションは、スポット(市場)価格が権利行使価格を「下回る」ほど価値が高まります。オプション保有者は、権利行使価格 \(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()