我需要生成一个算术序列,但我无法理解它。 cf
是20x20矩阵。我正在复制矩阵的前几行。我正在尝试编写一个程序,使用bootstrapping创建即期汇率。
head(cf)
# [3,] 4.25 4.25 104.25
# [4,] 4.50 4.50 4.50 104.50
# [5,] 5.50 5.50 5.50 5.50 105.50
# [6,] 4.75 4.75 4.75 4.75 4.75 104.75
Price
是每个时期债券价格的载体。
bond_data$Price
# [1] 96.15 92.19 99.45 99.64 103.49 99.49
对于第3个时期,即cf
中的第3行,计算看起来与此类似:
Z[3] = bond_data$Price[3] - CF[3,1]/(1+z[1]/2)^1 - CF[3,2]/(1+z[2]/2)^2
对于CF矩阵中第4行的第4个周期,计算看起来与此类似:
Z[4] = bond_data$Price[4] - CF[4,1]/(1+z[1]/2)^1 - CF[4,2]/(1+z[2]/2)^2 - CF[4,3]/(1+z[3]/2)^3
Z[1]
和Z[2]
是已知值,我尝试只生成Z
一段时间才开始,这就是我写的:
for(for k in 3:5){
seq( from = (cf[k,1]) / (1+(z[1]/2))^1, to = (cf[k,k-1])/(1+(z[k-1]/2))^k-1 )
}
这不符合我的想法。不确定我的逻辑在哪里不正确。