オプションを使ったヘッジ
IBM を1銘柄だけ保有する投資ポートフォリオがあるとします。ここでは、IBM のヨーロピアン・プット・オプションを使った「デルタ・ヘッジ」でポートフォリオのリスクを抑えます。
まず、Black-Scholes オプション価格理論を用いて、行使価格 X が 80、満期までの時間 T が半年(1/2 年)のヨーロピアン・プットを評価します。無リスク金利は 2%、スポット価格 S は最初は 70 です。
次に、bs_delta() 関数でこのオプションの delta を計算し、株価が 69.5 に「変化」したときにヘッジを構築します。これにより、オプションと株式を組み合わせたデルタ・ニュートラルなポートフォリオになります。
black_scholes() と bs_delta() の両関数はワークスペースで利用できます。
black_scholes() と bs_delta() のソースコードはこちらで確認できます。
この演習はコースの一部です
Pythonで学ぶ定量的リスク管理
演習の手順
- スポット価格 70 におけるヨーロピアン・プットの価格を計算します。
- 提供されている
bs_delta()関数を使い、スポット価格 70 におけるオプションのdeltaを求めます。 - スポット価格が 69.5 に下落したときの
value_change(オプション価値の変化)を計算します。 - スポット価格の変化額と、1/
deltaを重みとして掛けたvalue_changeの合計が 0(に近い値)になることを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Compute the annualized standard deviation of `IBM` returns
sigma = np.sqrt(252) * IBM_returns.std()
# Compute the Black-Scholes value at IBM spot price 70
value = black_scholes(S = ____, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put")
# Find the delta of the option at IBM spot price 70
delta = bs_delta(S = ____, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put")
# Find the option value change when the price of IBM falls to 69.5
value_change = ____(S = 69.5, X = 80, T = 0.5, r = 0.02,
sigma = sigma, option_type = "put") - ____
print( (69.5 - 70) + (1/delta) * ____ )