コードを債券評価の関数に変換しましょう
これまでの演習では、債券の価値をどのように計算するかを段階的に学びました。しかし、多くの債券を評価するたびに同じ手順を繰り返すのは手間がかかります。幸い、同じ計算を異なる債券に対して繰り返し行う関数を作成できます。
作成する関数は、債券の主要な特徴を入力できる柔軟性が必要です。先ほどの例に即して言えば、額面、クーポン率、満期までの年数、利回りを取り込める関数にする必要があります。
この演習では、これら4つの入力を受け取って債券価格を計算する関数 bondprc を作成します。関数を作成するには、function(input 1, input 2, ...) { [lines of code] } を使えることを思い出してください。
この演習はコースの一部です
Rで学ぶ債券の評価と分析
演習の手順
- 作業スペースには、未完成の関数
bondprcが用意されています。function()コマンドを構成し、4つの入力の名前を指定して関数を完成させてください。入力は、額面を表すp、クーポン率のr、満期までの年数のttm、利回りのyです。 - 額面が $100、クーポン率 5%、満期 5 年、満期利回り 6% の債券について、
bondprc関数が価格 $95.79 を返すことを確認してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create function
bondprc <- ___(___, ___, ___, ___) {
cf <- c(rep(p * r, ttm - 1), p * (1 + r))
cf <- data.frame(cf)
cf$t <- as.numeric(rownames(cf))
cf$pv_factor <- 1 / (1 + y)^cf$t
cf$pv <- cf$cf * cf$pv_factor
sum(cf$pv)
}
# Verify prior result
bondprc(___, ___, ___, ___)