早期行使のあるプレーンバニラの近似的解析解

 プレーンバニラの場合、配当がなければ早期行使されることはありません(注)。したがって、配当がない場合には、\( T \)を満期としてブラック・ショールズ式を適用した評価額が、早期行使を考慮したうえでも正しい評価額となります。
(注)早期行使するよりも満期時で行使するほうが価値が高くなることが数学的に証明されます。

 配当がある場合には早期行使が起こりえます。ストック・オプションの付与対象者には配当が支払われることはないのが通常で、一方、株価は配当の支払いで下落することが予想されるため、満期まで待たずに早期行使するほうが価値が高くなる場合があるためです。

 早期行使を考慮にいれた厳密な解析解は存在しないため、通常は二項モデルを採用することになります。

近似的解析解 その1

 発行後即時に行使が可能となる場合には、近似的な解析解がいくつも存在します。
 しかしながら、行使可能となるまで待機期間がある場合、例えば、税制適格要件に適合する形で行使期間が「発行後2年後以降10年後まで」などとなっている場合には、この近似的解析解は使用できません。

コード

C_am_1993 <- function(S0, K, sgm, r, q, Y) {

 # q>0 でなければエラーを返す意味合い
  if(q <= 0) return(-Inf)
  
  # 中間変数の計算
  beta <- (1/2 - (r - q) / sgm^2) + sqrt(((r - q) / sgm^2 - 1/2)^2 + 2 * r / sgm^2)
  B0 <- max(K, (r / q) * K)
  Binf <- beta / (beta - 1) * K
  h <- -((r - q) * Y + 2 * sgm * sqrt(Y)) * B0 / (Binf - B0)
  I <- B0 + (Binf - B0) * (1 - exp(h))
  alpha <- (I - K) * I^(-beta)
  
  # phi 関数
  phi <- function(S, Y, gamma, H, I) {
    lambda <- -r + gamma * (r - q) + gamma * (gamma - 1) * sgm^2 / 2
    kappa <- 2 * (r - q) / sgm^2 + (2 * gamma - 1)
    
    d1 <- - (log(S / H) + ((r - q) + (gamma - 1/2) * sgm^2) * Y) / (sgm * sqrt(Y))
    d2 <- d1 - 2 * log(I / S) / (sgm * sqrt(Y))
    
    exp(lambda * Y) * S^gamma * (pnorm(d1) - (I / S)^kappa * pnorm(d2))
  }
  
  # 評価額の計算
  result <- alpha * S0^beta - alpha * phi(S0, Y, beta, I, I) + 
    phi(S0, Y, 1, I, I) - phi(S0, Y, 1, K, I) - 
    K * phi(S0, Y, 0, I, I) + K * phi(S0, Y, 0, K, I)
  
  return(result)
}

C_am_1993(S0, K, sgm, r, q, Y)

使い方

 ブラック・ショールズ式と同様です。

近似的解析解 その2

 近似の精度をより高めた式もあります。当然、計算はより複雑になります。

コード

C_am_2002 <- function(S0, K, sgm, r, q, Y) {
  
  # q>0 でなければエラーを返す意味合い
  if(q <= 0) return(-Inf)
  
  # 諸々中間変数の計算
  beta <- (1/2 - (r-q)/sgm^2) + sqrt( ((r-q)/sgm^2 - (1/2))^2 + 2*r/sgm^2 )

  B0 <- max(K, (r/q)*K)
  Binf <- beta/(beta-1) * K
  t1 <- (sqrt(5)-1)*Y / 2
  
  h1 <- -((r-q)*t1 + 2*sgm*sqrt(t1)) * K^2/((Binf-B0)*B0)
  h2 <- -((r-q)*Y  + 2*sgm*sqrt(Y))  * K^2/((Binf-B0)*B0)
  
  I1 <- B0 + (Binf - B0)*(1-exp(h1))
  I2 <- B0 + (Binf - B0)*(1-exp(h2))
  
  alpha1 <- (I1 - K)*I1^(-beta)
  alpha2 <- (I2 - K)*I2^(-beta)
  
  # phi 関数
  phi <- function(S, Y, gamma, H, I) {
    lambda <- -r + gamma*(r-q) + gamma*(gamma-1)*sgm^2/2
    kappa <- 2*(r-q)/sgm^2 + (2*gamma - 1)
    
    d1 <- ( log(S/H)       + ((r-q) + (gamma - 1/2)*sgm^2)*Y) / (sgm * sqrt(Y))
    d2 <- ( log(I^2/(S*H)) + ((r-q) + (gamma - 1/2)*sgm^2)*Y) / (sgm * sqrt(Y))
    
    
    exp(lambda*Y) * S^gamma * ( pnorm(-d1) - (I/S)^kappa*pnorm(-d2) )
  }
  
  # psi 関数
  psi <- function(S, Y, gamma, H) {
    lambda <- -r + gamma*(r-q) + gamma*(gamma-1)*sgm^2/2
    kappa <- 2*(r-q)/sgm^2 + (2*gamma - 1)
    
    common <- (r-q) + (gamma-1/2)*sgm^2
    
    e1 <- ( log(S0/I1) + common*t1 ) / (sgm*sqrt(t1))
    e3 <- ( log(S0/I1) - common*t1 ) / (sgm*sqrt(t1))
    e2 <- ( log(I2^2/(S0*I1)) + common*t1 ) / (sgm*sqrt(t1))
    e4 <- ( log(I2^2/(S0*I1)) - common*t1 ) / (sgm*sqrt(t1))
    
    f1 <- ( log(S0/H) + common*Y ) / (sgm*sqrt(Y))
    f2 <- ( log(I2^2/(S0*H)) + common*Y ) / (sgm*sqrt(Y))
    f3 <- ( log(I1^2/(S0*H)) + common*Y ) / (sgm*sqrt(Y))
    f4 <- ( log((S0*I1^2)/(H*I2^2)) + common*Y ) / (sgm*sqrt(Y))
    
    rho <- sqrt(t1/Y)
    
    calc_M <- function(e1, e2, e3, e4, f1, f2, f3, f4, rho, n_path) {
      
      x <- rnorm(n_path)
      y <- rnorm(n_path)
      z1 <-  rho*x + sqrt(1 - rho^2)*y
      z2 <- -rho*x + sqrt(1 - rho^2)*y
      
      M1 <- sum(x < -e1 & z1 < -f1) / n_path
      M2 <- sum(x < -e2 & z1 < -f2) / n_path
      M3 <- sum(x < -e3 & z2 < -f3) / n_path
      M4 <- sum(x < -e4 & z2 < -f4) / n_path
      
      return(c(M1, M2, M3, M4))
    }
    
    M <- calc_M(e1, e2, e3, e4, f1, f2, f3, f4, rho, 10000000)
    exp(lambda*Y) * (S0^gamma) * ( M[1] - (I2/S0)^kappa*M[2] - (I1/S0)^kappa*M[3] + (I1/I2)^kappa*M[4] )
  }
  
  # 評価額の計算
  result <- alpha2*(S0^beta) - alpha2*phi(S0, t1, beta, I2, I2) + phi(S0, t1, 1, I2, I2) - 
    phi(S0, t1, 1, I1, I2) - K*phi(S0, t1, 0, I2, I2) + K*phi(S0, t1, 0, I1, I2) +
    alpha1*phi(S0, t1, beta, I1, I2) - alpha1*psi(S0, Y, beta, I1) + 
    psi(S0, Y, 1, I1) - psi(S0, Y, 1, K) - K*psi(S0, Y, 0, I1) + K*psi(S0, Y, 0, K)
  
  return(result)
}

C_am_2002(S0, K, sgm, r, q, Y)

 53行目calc_M()関数は2変量正規分布の累積分布関数について、モンテカルロ・シミュレーションにより4つの数値を計算しています。「2変量正規分布の累積分布関数について」を参照してください。

使い方

 ブラック・ショールズ式と同様です。

評価式

 評価式の形を眺めていても学べることはないのですが、評価式を記載しておきます。
 参考文献Haug, E.『The Complete Guide to Option Pricing Formulas SECOND EDITION』(McGraw-Hill、2006)(P.104)を転載します。ただし、いくつかあるタイポは筆者が修正しました。

$$
\begin{aligned}
C_{am} = & \alpha_2 S(0)^\beta-\alpha_2 \phi\left(S(0), t_1, \beta, I_2, I_2\right) \\
& +\phi\left(S(0), t_1, 1, I_2, I_2\right)-\phi\left(S(0), t_1, 1, I_1, I_2\right) \\
& -K \phi\left(S(0), t_1, 0, I_2, I_2\right)+K \phi\left(S(0), t_1, 0, I_1, I_2\right) \\
& +\alpha_1 \phi\left(S(0), t_1, \beta, I_1, I_2\right)-\alpha_1 \Psi\left(S(0), T, \beta, I_1, I_2, I_1, t_1\right) \\
& +\Psi\left(S(0), T, 1, I_1, I_2, I_1, t_1\right)-\Psi\left(S(0), T, 1, K, I_2, I_1, t_1\right) \\
& -K \Psi\left(S(0), T, 0, I_1, I_2, I_1, t_1\right)+ K \Psi\left(S(0), T, 0, K, I_2, I_1, t_1\right)
\end{aligned}
$$

中間的な変数、関数の定義は以下の通りです。

$$
\begin{aligned}
\alpha_1 & =\left(I_1-K\right) I_1^{-\beta}, \quad \alpha_2=\left(I_2-K\right) I_2^{-\beta} \\
\beta & =\left(\frac{1}{2}-\frac{r-q}{\sigma^2}\right)+\sqrt{\left(\frac{r-q}{\sigma^2}-\frac{1}{2}\right)^2+2 \frac{r}{\sigma^2}}
\end{aligned}
$$

関数\( \phi(S(0), T, \gamma, H, I) \)
$$
\begin{gathered}
\phi(S(0), T, \gamma, H, I)=e^{\lambda T} S(0)^\gamma\left[N(-d)-\left(\frac{I}{S(0)}\right)^\kappa N\left(-d_2\right)\right] \\
d=\frac{\log (\frac{S(0)}{H}) + \left( r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2 \right) T}{\sigma \sqrt{T}} \\
d_2=\frac{\log (\frac{I^2}{S(0) H}) + \left( r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2 \right) T}{\sigma \sqrt{T}} \\
\lambda=-r+\gamma (r-q)+\frac{1}{2} \gamma(\gamma-1) \sigma^2 \\
\kappa=\frac{2 (r-q)}{\sigma^2}+(2 \gamma-1)
\end{gathered}
$$

\(I_1\)、\(I_2\)は行使境界となる値で、
$$
\begin{gathered}
I_1=B_0+\left(B_{\infty}-B_0\right)\left(1-e^{h_1}\right) \\
I_2=B_0+\left(B_{\infty}-B_0\right)\left(1-e^{h_2}\right) \\
h_1=-\left((r-q) t_1+2 \sigma \sqrt{t_1}\right)\left(\frac{K^2}{\left(B_{\infty}-B_0\right) B_0}\right) \\
h_2=-((r-q) T+2 \sigma \sqrt{T})\left(\frac{K^2}{\left(B_{\infty}-B_0\right) B_0}\right)
\end{gathered}
$$

$$
\begin{gathered}
t_1=\frac{1}{2}(\sqrt{5}-1) T, \quad B_{\infty}=\frac{\beta}{\beta-1} K, \quad B_0=\max \left[K,\left(\frac{r}{q}\right) K\right]
\end{gathered}
$$
(注)\(q=0\)だと\(B_0\)が定義されません。

関数\( \Psi\left(S(0), T, \gamma, H, I_2, I_1, t_1\right) \)
$$
\begin{aligned}
& \Psi\left(S(0), T, \gamma, H, I_2, I_1, t_1, r, r-q, \sigma\right) \\
&= e^{\lambda T} S(0)^\gamma\left[M\left(-e_1,-f_1, \rho\right)-\left(I_2 / S(0)\right)^\kappa M\left(-e_2,-f_2, \rho\right)\right. \\
&-\left(I_1 / S(0)\right)^\kappa M\left(-e_3,-f_3,-\rho\right)+\left(I_1 / I_2\right)^\kappa M\left(-e_4,-f_4,-\rho\right)
\end{aligned}
$$

$$
\begin{array}{ll}
e_1=\frac{\log (\frac{S(0)}{I_1}) + \left(r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2\right) t_1}{\sigma \sqrt{t_1}} & e_2=\frac{\log ( \frac{I_2^2}{S(0) I_1}) + \left(r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2\right) t_1}{\sigma \sqrt{t_1}} \\
e_3=\frac{\log (\frac{S(0)}{I_1}) - \left(r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2\right) t_1}{\sigma \sqrt{t_1}} & e_4=\frac{\log ( \frac{I_2^2}{S(0) I_1}) - \left(r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2\right) t_1}{\sigma \sqrt{t_1}} \\
f_1=\frac{\log (\frac{S(0)}{H}) + \left(r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2\right) T}{\sigma \sqrt{T}} & f_2=\frac{\log ( \frac{I_2^2}{S(0) H}) + \left(r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2\right) T}{\sigma \sqrt{T}} \\
f_3=\frac{\log (\frac{I_1^2}{S(0) H}) + \left(r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2\right) T}{\sigma \sqrt{T}} & f_4=\frac{\log ( \frac{S(0) I_1^2}{H I_2^2}) + \left(r-q+\left(\gamma-\frac{1}{2}\right) \sigma^2\right) T }{\sigma \sqrt{T}} \\
\rho = \sqrt{\frac{T}{t_1}}
\end{array}
$$