파생상품&금융공학

파생상품 가치평가 방법론 #4 Binomial Tree (1) Basic modeling

seungbeomdo 2023. 12. 10. 18:50

 

 

이 시리즈는 파생상품 이론 분야에서 가장 유명한 교재인 Hull(2021)의 "Options, Futures and Other Derivatives (11th)"을 요약한 것일 뿐이다. 아래는 책 구매 링크

 

Options, Futures, and Other Derivatives

ISBN-13: 9780136939917 Options, Futures, and Other Derivatives Published 2021

www.pearson.com

이전 편 링크: 주요 방법론 개요

 

파생상품 가치평가 방법론 #3 주요 방법론 개요

이 시리즈는 파생상품 이론 분야에서 가장 유명한 교재인 Hull(2021)의 "Options, Futures and Other Derivatives (11th)"을 요약한 것일 뿐이다. 아래는 책 구매 링크 Options, Futures, and Other Derivatives ISBN-13: 978013693

seungbeomdo.tistory.com


Numerical 방법 중 하나인 Binomial tree modeling

1. Model

Binomial Tree 방법에서

1) 만기까지의 기간 $[0, T]$는 n개의 구간 $[0, \Delta t]$, $[\Delta t, 2\Delta t]$, $\cdots$, $[(n-1)\Delta t, T]$로 나누어진다.

2) 각 time step에서 기초자산은 u만큼 상승하거나, d만큼 하락한다.

위와 같은 방식으로 기초자산의 움직임을 모델링한다. 초기에 기초자산 가격이 $S_{0}$이었다면, 그 다음 step에서는 $p$의 확률로 $uS_{0}$가 되거나 $1-p$의 확률로 $dS_{0}$이 된다. 그 다음에는 $u^{2}S_{0}$, $udS_{0}$, 또는 $d^{2}S_{0}$가 된다.


2. Parameters

그렇다면 p, u, d의 값은 어떻게 정해야 할까? Binomial model을 공식화한 CRR(1979) 논문에서는 실제 기초자산 가격의 확률분포를 잘 나타내기 위하여 u와 d를 다음의 값으로 사용할 것을 제안하고 있다.

 

실제 기초자산 가격의 변동성이 $\sigma$일 때, $u = e^{\sigma \sqrt{\Delta t}}$, $d = e^{-\sigma \sqrt{\Delta t}}$

 

u와 d를 추정한 후 위험중립적 상승확률 $p = \frac{a-d}{u-d}$로 기초자산 가격이 상승한다고 가정한다.

이때 a는 위험중립적 세계에서 $\Delta t$ 동안의 기초자산 가격의 기대상승률 $e^{(r-q)\Delta t}$이다.

r은 무위험이자율, q는 자산수익률이다. 

 

왜 위험중립적 상승확률 p가 저렇게 계산되는지는 이전 포스팅(https://seungbeomdo.tistory.com/37)을 참조


3. Risk-Neutral Valuation

이상의 모형에서 RNV로 파생상품의 가격을 구하려면 다음의 단계를 따르면 된다.

(1) 실제 기초자산 가격 움직임을 모델링할 만큼 충분히 작은 $\Delta t$에 대하여 Binomial tree를 완성한다.

(2) Tree의 마지막 step에서 만기 시점의 기초자산 가격들을 구한 후, 대응하는 파생상품의 payoff를 구한다.

(3) 각 payoff가 발생하는 위험중립적 상승확률에 따라 위험중립적 기대 payoff를 구한 후, 무위험이자율 r로 할인한다.

 

n개의 time step으로 파생상품의 잔존만기를 분할했을 때, 만기 시점에서 기초자산 가격은 n+1개 존재한다.

이 중 i번째 node에서 기초자산의 가격은 $S_{n,i} = S_{0}u^{i}d^{n-i}$, $i = 0, 1, ... , n$

 

만기 시점 i번째 node에서의 payoff는 곧 파생상품의 가치 $f_{n,i}$이다.

 

만기 시점에 i번째 node에 도달할 위험중립적 확률은 $_{n}C_{i} * p^{i}(1-p)^{n-i}$

 

따라서 위험중립적으로 평가한 초기 파생상품의 가격은 $f_{0}= e^{-rT}\Sigma_{i=0}^{n} nCi * p^{i}(1-p)^{n-i}f_{n,i}$


4. Simulation 

설명한 방법이 제대로 먹히는지 한번 구현해보자.

 

주가의 초기 가격이 100, 연간 변동성이 20%, 무위험이자율 5%일 때,

행사가격이 100이고 만기가 1년인 콜옵션의 가격을 구해보자. 

 

S0 = 100
K = 100
sigma = 0.2
r = 0.05
T = 1
n = 5

u = np.exp(sigma*np.sqrt(T/n))
d = 1/u
a = np.exp(r*T/n)
p = (a-d)/(u-d)

ST = []
fT = []
PT = []
for i in np.arange(0,n+1):
  v = S0 * u**i * d**(n-i)
  ST.append(v)
  payoff = np.maximum(v - K, 0)
  fT.append(payoff)
  prob = math.comb(n, i) * p**i * (1-p)**(n-i)
  PT.append(prob)

df = pd.DataFrame({'Stock price':np.round(ST,3), 'payoff':np.round(fT,3), 'risk-neutral prob':np.round(PT,3)})
df

 

 

만기까지의 기간을 우선 n=5개의 interval로 분할할 때 만기 주가의 상태와

그에 대응하는 콜옵션의 payoff 및 risk-neutral probabaility는

 

 

각 payoff에 위험중립확률을 곱하여 무위험이자율로 할인하면 10.806 정도가 나온다.

 

잔존만기를 더 잘게 쪼개서(n을 키워서) 어떤 값으로 수렴하고 있는지 여부를 알아보자.

 

S0 = 100
K = 100
sigma = 0.2
r = 0.05
T = 1

F = []
for n in np.arange(1, 50):
  u = np.exp(sigma*np.sqrt(T/n))
  d = 1/u
  a = np.exp(r*T/n)
  p = (a-d)/(u-d)

  ST = []
  fT = []
  PT = []
  for i in np.arange(0,n+1):
    v = S0 * u**i * d**(n-i)
    ST.append(v)
    payoff = np.maximum(v - K, 0)
    fT.append(payoff)
    prob = math.comb(n, i) * p**i * (1-p)**(n-i)
    PT.append(prob)
  f0 = np.exp(-r*T)*np.sum(np.array(fT)*np.array(PT))

  F.append(f0)

def BSMcall(S, K, r, sigma, T):
  d1 = (np.log(S/K) + (r + (sigma**2)/2)*T)/(sigma*np.sqrt(T))
  d2 = d1 - sigma*np.sqrt(T)
  call = S * norm.cdf(d1) - K * np.exp(-r*T) * norm.cdf(d2)
  return call

plt.plot(np.arange(1, 50), F, label = 'Binomial model')
plt.axhline(BSMcall(S0, K, r, sigma, T), color = 'black', linestyle = '--', label = 'BSM')
plt.xlabel('n')
plt.ylabel('estimated call price')
plt.legend()
plt.show()

 

 

 

n이 1일 때부터 50일 때까지 각각 binomial model로 추정한 가격이 발산하지 않고 수렴하고 있음을 알 수 있다. 그리고 그 수렴값은 Black-Scholes-Merton Model의 가격이라는 것도 알 수 있다.

 

이 점은 어찌보면 당연하다. binomial model에서 만기까지의 기초자산 수익률은 이항분포를 따른다. 그런데 n의 값이 충분히 커지면 이항분포는 정규분포로 수렴한다. 만기까지의 수익률이 정규분포를 따른다는 것은 BSM 모형의 가정과 동일하다. 결국 n이 충분히 클 때 이항모형은 기초자산 수익률이 정규분포를 따를 때 옵션의 payoff를 위험중립적으로 평가한 것이며, 이는 BSM 모형과 완전히 동일하다.

 

아래는 n = 20일 때 이항모형 하에서의 확률분포와 BSM 모형에서의 확률분포를 비교한 것이다.