채권 현재가치(PV)와 듀레이션(Duration) 산출방법

금리가 오르면 채권 가격은 하락하고, 금리가 내리면 채권 가격은 상승하는 반비례 관계가 있다. 그리고 듀레이션을 짧게 유지하면 금리 변동에 덜 민감해지고, 길게 유지하면 수익률을 극대화할 수 있지만 금리 변화의 리스크가 커진다.이 때문에 금리 리스크를 관리하고자 현재 가치(PV, Present Value)와 듀레이션(Duration) 같은 개념을 사용하는데, 대략 어떻게 산출되는지 정리해보려한다.

현재가치(Present Value)

채권의 현재 가치는 미래에 받을 예상 수익(쿠폰 이자와 원금)을 현재의 금리로 할인하여 현재 시점의 가치를 계산한 것이다. 간단히 말해, 투자자가 오늘 채권에 투자했을 때 기대할 수 있는 가치를 나타낸다. 산식은 아래와 같다.

\[ PV = \sum_{t=1}^{n} \frac{C_t}{(1+r)^t} + \frac{F}{(1+r)^n} \]
  • \(C\) : 쿠폰 이자, \(r\) : 할인율(시장 금리), \(n\) : 채권의 만기 기간, \(F\) : 채권의 액면가(원금)

수식을 조금 더 풀어서 작성해보면, 아래와 같다.

\[ PV = \frac{C_1}{(1 + r)} + \frac{C_2}{(1 + r)^2} + \cdots + \frac{C_n}{(1 + r)^n} + \frac{F}{(1 + r)^n} \]

산식만 안다면, R프로그래밍으로도 쉽게 산출할 수 있다. cashflow 정보가 있어야, 검증도 할 수 있기 때문에 데이터프레임 형식으로 만들어봤다.

# no : 회차
# term : 기간. 1년단위면, 1, 2 이고, 6개월단위면 1/2, 1, 3/2, 2 
# prcp_amt : 원금회수금액
# face_amt : 이자계산기준금액. 쿠폰금액계산 당시 원금기준금액임.
# cpn_rt : 이자율
# cpn_amt : 이자금액(=쿠폰금액)
# tot_amt : 회수원금 + 이자금액
# dsc_rt : 할인율
# pv : 회차별현재가치
# sum_pv : 최종현재가치
tibble(no = seq(1,bond_period_year / interest_payment_frequency))|> 
    mutate(term = no * interest_payment_frequency, 
           prcp_amt = principal_amount, 
           face_amt = bond_amount - cumsum(prcp_amt) + prcp_amt) |> 
    mutate(cpn_rt = coupon_rate * interest_payment_frequency, 
           cpn_amt = face_amt * cpn_rt) |> 
    mutate(tot_amt = prcp_amt + cpn_amt, 
           dsc_rt = discount_rate * interest_payment_frequency) |> 
    mutate(pv = tot_amt / (1 + dsc_rt)^no |> num(digits = 5)) |> 
    mutate(sum_pv = sum(pv)) 

예를 들어보자. 액면가액은 100만원, 이표율 12%, 만기2년, 할인율은 15%라고 가정하면, 현재가격은 95.12만원으로 출력된다.

# A tibble: 2 × 10
     no  term prcp_amt face_amt cpn_rt cpn_amt tot_amt dsc_rt        pv    sum_pv
  <int> <dbl>    <dbl>    <dbl>  <dbl>   <dbl>   <dbl>  <dbl> <num:.5!> <num:.5!>
1     1     1        0      100   0.12      12      12   0.15  10.43478  95.12287
2     2     2      100      100   0.12      12     112   0.15  84.68809  95.12287

듀레이션 (Duration)

듀레이션은 채권의 가격 민감도를 측정하는 지표로, 단순히 채권의 만기와 혼동할 수 있지만, 듀레이션은 현금 흐름의 가중 평균 기간으로 이해해야 한다. 즉, 듀레이션은 채권의 수익을 회수하는 데 걸리는 평균 기간을 뜻합니다.

아래는 맥컬레이 듀레이션 (Macaulay Duration) 공식이다. 이 공식은 각 현금 흐름에 시간이 얼마나 걸리는지를 가중 평균하여 계산한다.

$$ D = \frac{\sum_{t=1}^{n} \frac{t \cdot C_t}{(1+r)^t} + \frac{n \cdot F}{(1+r)^n}}{\sum_{t=1}^{n} \frac{C_t}{(1+r)^t} + \frac{F}{(1+r)^n}} $$

예를 들어보자. 액면가액은 100만원, 이표율 12%, 만기2년, 할인율은 15%라고 가정하면, 현재가격은 95.12만원이다. 이때, 듀레이션은 다음과 같이 구해진다.

$$ D = \frac{1년 \times \frac{12만원}{(1 + 0.15)} + 2년 \times \frac{12만원}{(1 + 0.15)^2} + 2년 \times \frac{100만원}{(1 + 0.15)^2}}{95.12만원} = 1.89년 $$

아까 위의 예시를 가지고, 듀레이션을 추가 계산해서 출력해봤다.

# A tibble: 2 × 12
     no  term prcp_amt face_amt cpn_rt cpn_amt tot_amt dsc_rt        pv    sum_pv      drtn  sum_drtn
  <int> <dbl>    <dbl>    <dbl>  <dbl>   <dbl>   <dbl>  <dbl> <num:.5!> <num:.5!> <num:.5!> <num:.5!>
1     1     1        0      100   0.12      12      12   0.15  10.43478  95.12287   0.10970   1.89030
2     2     2      100      100   0.12      12     112   0.15  84.68809  95.12287   1.78060   1.89030

수정듀레이션

수정 듀레이션은 금리 변화에 따른 채권 가격 변화를 근사적으로 예측하는 도구이다. 그리고 수정 듀레이션은 선형 근사값을 사용하므로, 실제 가격 변동과는 약간의 차이가 발생할 수 있다. 특히 금리 변동이 클수록 이 차이가 커진다.

원래 우리가 알고 있는 듀레이션을 가지고 가격예측할 때는 아래 공식으로 표현된다.

$$ \frac{\Delta P}{P} \approx - D \times \frac{\Delta i}{1+i} $$
  • \(D\) : 듀레이션, \(\Delta P\) : 채권 가격의 변화량, \(P\): 채권의 현재 가격, \(\Delta i\): 금리 변화량

수정듀레이션은 듀레이션값에 1 + 만기수익율을 나눈 값이다.

$$ D_m = \frac{D}{1 + i} $$

이 수정듀레이션을 이용하면, 채권의 현재가격변화율을 아래의 식으로 구할 수 있게 된다.

$$ \Delta P \approx - D_m \times P \times \Delta i $$

다만, 채권의 가격은 금리와의 관계가 선형이 아닌 볼록한 형태(Convexity)를 띈다. 금리 변화가 클수록, 이 비선형성이 커지면서 수정 듀레이션을 이용한 근사값과 실제 변동값 사이에 차이가 발생한다. 다이나믹한 차이를 보기위해서, -30~+30% 정도의 변화량을 가지고 그래프를 그려보았다. 파란색이 실제 개별 계산한 현재가치이고, 빨간색이 수정듀레이션을 이용한 현재가치이다.

r  finance 

더 보면 좋을 글들