始める無料で始める

価格と利回りの関係をプロットする

価格と利回りの関係は逆相関ですが、直線的ではありません。つまり、利回りが上がる場合と下がる場合とで、利回り変化による価格の変化幅は大きく異なり得ます。この重要なポイントは、第3章でコンベクシティ(曲率)を扱う際に再び取り上げ、債券価格と利回りの曲線的な関係を反映するための調整について学びます。ここではまず、この逆相関が非線形であることを押さえておいてください。

この演習では、額面$100、クーポン率10%、満期20年の債券を想定します。これまで扱ってきた債券とは異なる点に注意してください。ワークスペースに用意されている bondprc() 関数を使って、さまざまな利回り水準でこの債券の価値を計算することが目標です。

この演習はコースの一部です

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

コースを見る

演習の手順

  • seq() 関数を使って、2%(0.02)から40%(0.40)までを1%(0.01)刻みで並べたベクトル prc_yld を作成します。
  • data.frame() を使って prc_yld をデータフレームに変換します。
  • 事前に用意された bondprc() を用いる for ループで、prc_yld の各利回り水準における債券価格を計算します。ループの挙動を理解するようにしましょう。
  • prc_yld オブジェクトには、利回り(prc_yld)と価格(price)の列が含まれています。満期利回り(YTM)に対する価格の関係を確認するため、用意済みのコードでこのオブジェクトをプロットしましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Generate prc_yld
prc_yld <- seq(___, ___, ___)

# Convert prc_yld to data frame
prc_yld <- data.frame(___)

# Calculate bond price given different yields
for (i in 1:nrow(prc_yld)) {
     prc_yld$price[i] <- bondprc(100, 0.10, 20, prc_yld$prc_yld[i])  
}

# Plot P/YTM relationship
plot(___,
     type = "l",
     col = "blue",
     main = "Price/YTM Relationship")
コードを編集して実行