悬赏 1 个论坛币 未解决
计算 到期收益率,条件是bp市场价格=110, F面值=100, Cf现金流=2.5元,N期数=10,
程序如下:
bpd<-function(cf,F,y,n){
t=1:n
a=cf/(1+y)^t
b=F/(1+y)^n
p=sum(a,b)
}
byield<-function(n,cf,bp){
accu=1e-5
maxinter=200
bot=0.00;top=1.00
res=0.00
while(res>bp){top=top*2}
y=0.5*(top+bot)
res=bpd(2.5,100,y,10)
for(i in 0:maxinter){
diff=res-bp
if(abs(diff)<accu){return(y)}
if(diff>0.00)
bot=y
else
top=y
y=0.5*(top+bot)
res=bpd(2.5,100,y,10)
}
{return(y)}
}
问题是byield(10,2.5,110)的输出结果是0???
请问哪里有问题?!??!?