0
$\begingroup$

I would like to find the bond price today which has already been issued but delivered later. Basically, the price won't include some of the coupons till the delivery date.

Let's say 10 year bond issued 2 years ago. Today 1/12/2022. Issue date 1/12/2020. Maturity Date 1/12/2030. Coupon 1.5% semiannual. Forward delivery date 3/27/2025.

I tried the following but not sure if my using the right instrument.

issueDate = 1/12/2020
today = 1/12/2022
maturityDate = 1/12/2030
fwdDeliveryDate = 3/27/2025
tenor = ql.Period(ql.Semiannual)
calendar = ql.UnitedStates()
bussinessConvention = ql.Following
dateGeneration = ql.DateGeneration.Backward
monthEnd = False

schedule = ql.Schedule (issueDate, maturityDate, tenor, calendar, bussinessConvention, bussinessConvention, dateGeneration, monthEnd)

dayCount = ql.Actual365Fixed()
couponRate = 0.015
coupons = [couponRate]

settlementDays = 2
faceValue = 10000000
fixedRateBond = ql.FixedRateBond(settlementDays, faceValue, schedule, coupons, dayCount)

bondEngine = ql.DiscountingBondEngine(discountTermStructure)
fixedRateBond.setPricingEngine(bondEngine)
fwd = ql.FixedRateBondForward(today,fwdDeliveryDate,ql.Position.Long,0,settlementDays,dayCount,calendar,bussinessConvention,fixedRateBond,discountTermStructure,discountTermStructure)


print(fixedRateBond.NPV())
print(fwd.NPV())
$\endgroup$
2
  • $\begingroup$ Is it just T + n settlement for some large n, or do you pay now, and receive the bond much later? What happens if the bond issuer or the bond seller defaults before you receive the bond? $\endgroup$ Jan 12, 2022 at 17:19
  • $\begingroup$ we pay now. wanted to solve for the price we pay today ? (some coupons wont' be in the price.. but accrued coupons calculations get tricky). wanted to see if i can solve this using quantlib fucntion . it's a treasury bond. , no default risk $\endgroup$ Jan 12, 2022 at 17:29

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.