Mímisbrunnr知恵の泉

← 金融工学 一覧

🎓 レベル:標準 | 重要度:A(必須)

📎 前提:オプションの基礎 | 関連:ブラックショールズ公式と解釈

要点(BLUF)

1. パリティの主張

コールとプットは別物に見えますが、価格は独立ではありません。同じ K,TK, T について

CP=S0KerTC - P = S_0 - K e^{-rT}

が成り立ちます(配当なし・ヨーロピアン型)。右辺の S0KerTS_0 - Ke^{-rT} は「現物を持ち、KK を満期に払う約束をした」状態の価値——つまり先渡しの価値です。コールの買いとプットの売りを組み合わせると、原資産の先渡しと同じになる、というのがこの式の意味です。

2. 無裁定による導出

満期ペイオフが必ず一致する2つのポートフォリオを作ります。

満期 TT でのそれぞれの価値を場合分けすると:

満期の状態① コール+現金② プット+現物
ST>KS_T > K(STK)+K=ST(S_T-K) + K = S_T0+ST=ST0 + S_T = S_T
STKS_T \le K0+K=K0 + K = K(KST)+ST=K(K-S_T) + S_T = K

どちらも満期価値は max(ST,K)\max(S_T, K)完全に一致します。満期で必ず同じ価値になるものは、無裁定なら今日も同じ価値でなければなりません。

C+KerT=P+S0CP=S0KerTC + K e^{-rT} = P + S_0 \qquad\Longrightarrow\qquad C - P = S_0 - K e^{-rT}

確率も期待リターンも一切登場しないことに注目してください。純粋に「満期で同じなら今も同じ」という論理だけです。

3. 数値検証

ブラック–ショールズ(第5章)でコールとプットを別々に計算し、パリティを満たすか確かめます。

import numpy as np
from scipy.stats import norm

S0, K, r, sigma, T = 100.0, 100.0, 0.05, 0.2, 1.0

d1 = (np.log(S0/K) + (r + 0.5*sigma**2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
C = S0*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)      # コール価格
P = K*np.exp(-r*T)*norm.cdf(-d2) - S0*norm.cdf(-d1)    # プット価格

print(f"Call = {C:.4f}, Put = {P:.4f}")
print(f"C - P          = {C - P:.4f}")
print(f"S0 - K e^(-rT) = {S0 - K*np.exp(-r*T):.4f}")

出力:

Call = 10.4506, Put = 5.5735
C - P          = 4.8771
S0 - K e^(-rT) = 4.8771

出力の意味:コール 10.4506・プット 5.5735 を独立に計算したのに、その差 CP=4.8771C-P=4.8771S0KerT=4.8771S_0-Ke^{-rT}=4.8771完全に一致します。ブラック–ショールズの公式はパリティを内蔵しているのです(実際、両式の差を取ると N(d1)+N(d1)=1N(d_1)+N(-d_1)=1 などからこの関係が出ます)。逆にいえば、市場でコールとプットの価格差がこの値からズレていれば、割高な方を売り・割安な方を買い・現物と債券で調整して、確実な利益を取れます。

4. 使いどころ

パリティは実務の便利な道具です。

⚠️ よくある誤解

関連ノート