債券利回りの計算

Pythonで学ぶ債券の評価と分析

Joshua Mayhew

Options Trader

利回り計算の目的

  • 満期利回りは想定収益率を示す
  • 特性の異なる債券の比較に有用
Pythonで学ぶ債券の評価と分析

ゼロクーポン債の利回り式

ゼロクーポン債の価格式を思い出しましょう:

$PV = \frac{FV}{(1 + r)^n}$

この式を並べ替えて利回り $(r)$ を解きます:

$FV = PV \times (1 + r)^n$

$ \frac{FV}{PV} = (1 + r)^n$

$ \sqrt[n]\frac{FV}{PV} = (1 + r)$

$ \sqrt[n]\frac{FV}{PV} -1 = r$

Pythonで学ぶ債券の評価と分析

ゼロクーポン債の利回り例

同じゼロクーポン債を、逆算で見てみましょう:

  • 満期3年
  • 額面 USD 100
  • 価格 USD 90.19

 

この債券の利回りはいくつですか?

Pythonで学ぶ債券の評価と分析

ゼロクーポン債の利回り計算

満期3年のゼロクーポン債、価格 USD 90.19、額面 USD 100:

$r = \sqrt[n]\frac{FV}{PV} -1$

ytm = (100 / 90.19) ** (1/3) - 1
print(ytm)
0.035

 

満期利回りは ytm を用います。

Pythonで学ぶ債券の評価と分析

クーポン債の利回り式?

クーポン債の式:

$ PV = \frac{C}{(1 + r)^1} + \frac{C}{(1 + r)^2} + ... +\frac{C}{(1 + r)^n} + \frac{P}{(1 + r)^n}$

$ = \sum_{i=1}^n \frac{C}{(1 + r)^i} + \frac{P}{(1 + r)^n}$

この式は $r$ について代数的に解けません

試行錯誤で $r$ を求めます

npf.rate() はこの方法で計算します

Pythonで学ぶ債券の評価と分析

クーポン債の利回り例

先ほどのクーポン債を考えます。

  • 満期3年
  • 年3%のクーポン
  • 価格 USD 97.22

 

満期利回りはいくつですか?

Pythonで学ぶ債券の評価と分析

クーポン債の利回り計算

満期3年、年3%クーポン、価格 USD 97.22:

import numpy_financial as npf
npf.rate(nper=3, pmt=3, pv=-97.22, fv=100)
0.04

PV は負に設定する必要があります。

債券価格は支払い(マイナスのキャッシュフロー)だからです。

Pythonで学ぶ債券の評価と分析

演習に進みましょう!

Pythonで学ぶ債券の評価と分析

Preparing Video For Download...