スマホのアプリから計算できますが、週末はメンテナンスしていることも多いので、他の方法としてPythonを使ってGoogle Colaboratoryで計算してみます。間違いがあるかもしれませんので、ご注意下さい。
テストです。
原資産28143.97
短期金利 -0.03%としています
4月限 26500 プット IV19.486% Priceは230です
セータパラメータは365日とするか、営業日ベースとするかでかなり差が出てきてしまいます。営業日ベースが多くの場合用いられていると思います。
プット26500の計算
Google Colaboratoryでのオプション計算式の実装
エクセルのVBAの方が早いですが、Google Colaboratoryの場合はOfficeを必要としませんので、すぐに確認できます
オプション価格計算はBlack_scholes方程式が用いられます。
import numpy as np
from scipy.stats import norm
def black_scholes(S, K, T, r, sigma, q, option_type):
d1 = (np.log(S/K) + (r - q + sigma**2/2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
if option_type == 'call':
price = S*np.exp(-q*T)*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)
elif option_type == 'put':
price = -S*np.exp(-q*T)*norm.cdf(-d1) + K*np.exp(-r*T)*norm.cdf(-d2)
return price
def implied_volatility_put(price, S, K, T, r, q):
tol = 1e-6
max_iter = 100
sigma = 0.5
for i in range(max_iter):
d1 = (np.log(S/K) + (r - q + sigma**2/2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
vega = S*np.exp(-q*T)*norm.pdf(d1)*np.sqrt(T)
diff = black_scholes_put(S, K, T, r, sigma, q) - price
if abs(diff) < tol:
return sigma
sigma = sigma - diff/vega
return None
S = 27500.0
K = 26500.0
T = 24.74/280.0
r = -0.03
q = 0.0
price = 230.0
sigma = implied_volatility_put(price, S, K, T, r, q)
if sigma is not None:
print(f"Implied volatility: {sigma:.2%}")
else:
print("Could not compute implied volatility.")
S 原資産価格
K オプション行使価格
T セータ 残存日数/365日か営業日ベースで計算するかでだいぶ変わります
r 金利 -0.03%
q 配当 0として計算しました
price オプション価格 を入力して計算すると
Implied volatility: 18.10%
とIV(Implied volatility)が計算できます
IVからオプション価格を計算する
# Define the Black-Scholes option pricing formula
S = 27855
K = 26500.0
T = 24.74/280.0
r = -0.03
iv = 0.1857
q = 0.0
option_type = 'put'
# Calculate option price using implied volatility
price = black_scholes(S, K, T, r, iv, q, option_type)
# Print the result
if iv is not None:
print(f"The implied volatility is: {iv:.2%}")
print(f"The option price using the implied volatility is: {price:.2f}")
else:
print
The implied volatility is: 18.57%
The option price using the implied volatility is: 163.51
金曜日の引けの値で計算してみるとだいたい同じ値になったので計算は大丈夫なようです。
残存100日以上であったり、合成ポジションのグリークスが正確にでないなど限界もありますが多くのオプション価格予測ソフトは上記のようなモデルで行われています。
相場急変時は理論価格との乖離や誤差が問題になるので、注意して下さい。
また、コードに間違いがあるかもしれません。注意して下さい。