我正在尝试为一种债券定价,该债券将每半年支付一次息票 (c),为期 4 年(这意味着总共支付 8 次息票)并返还本金 (p) 金额以及第 8 次付款 (c+p)。贴现每个现金流的贴现率 (dr) 将不同。
输入:
dr = [0.10, 0.12, 0.15, 0.22, 0.37, 0.6, 0.8, 0.85], p = 1000, c = 2, T = 4, freq = 2
我在stackoverflow中找到了下面的代码,但这并没有使用不同的“dr”来贴现每个现金流,也没有在贴现后对所有现金流求和。有人可以帮忙吗?'''
par = 1000
coupon_rate = 3
T = 5
freq = 2
def cf_calculator(par, r, T, freq):
for i in range(0,(T * freq)+1):
if i < (T * freq):
coupon = ((r/100) * par) / freq
print(coupon)
else:
coupon = (((r/100) * par) / freq) + par
print(coupon)
print(cf_calculator(par,coupon_rate,T,freq))
'''