2
$\begingroup$

I'm trying to model the price of a bond and having some trouble understanding how the "simple" convention works. The bond in question is IL0011948028. I'm able to replicate BBG's price using QuantLib (python) as follows:

import QuantLib as ql faceValue = 100.0 couponType = ql.Annual issueDate = ql.Date(18, 4, 2023) EvalDate = ql.Date(12, 9, 2024) Maturity = ql.Date(28, 2, 2029) quotedYield = 0.0444 couponRate = 0.0375 settlementDays = 1 dates = ['2023-04-18', '2024-02-29', '2025-02-27', '2026-02-26', '2027-02-28', '2028-02-29', '2029-02-28'] schedule = ql.Schedule([ql.Date(dt, '%Y-%m-%d') for dt in dates]) bond = ql.FixedRateBond(settlementDays, faceValue, schedule, [couponRate], ql.Actual365Fixed(ql.Actual365Fixed.Standard)) print(bond.dirtyPrice(quotedYield, ql.Actual365Fixed(ql.Actual365Fixed.Standard), ql.Simple, ql.Annual)) 

This produces the correct value (99.24176 vs 99.242 in BBG). However, I don't really understand how the simple interest calculation works; looking at the source code, it just returns 1.0+r*t, but if I try replicating this in Excel by discounting coupons with $1+yield\times t$ where t is time to maturity and yield=4.44%, I'm off by more than a dollar (same if I include the factor of fraction of a year).

Could someone explain in equations what the QuantLib/BBG calculation is doing? Sorry if this is really simple, but I can't seem to find good resources about simple yield/interest for multiperiod bonds. Thanks.

Edit: I'm using a trade date of 9/12/2024 with settlement 9/13/2024. Terribly sorry for the omission. I should also note, Israel uses a Sunday-Thursday work week.

Using the normal $\frac{CF}{(1+r\frac{d}{365})^t}$ (d is days in the period), I get 99.321 which is close but not close enough for my purposes.

$\endgroup$
0

1 Answer 1

1
$\begingroup$

I'm going to take a punt on this one. (I can't comment on the Quantlib aspect of it)

Looking at the yield you quote (bid yield?) it looks like you're pricing this around the 6th of September, which would mean a settlement date on the 9th of September. Is this correct?

Looking at Eikon, it looks like the "native" yield convention is the same as ISMA. four our purposes, that's just a normal YTM calculation.

So let's mock something up very crudely in a spreadsheet. If we calculate the discount factors as (1+0.0444)^t and construct the coupon schedule using actual/365, and add the accrued interest, I get 99.242 as the dirty price in a spreadsheet calculation.

There are 5 remaining coupons dates.

Accrued interest 3.75% x 193/365 = 1.988288

Discount factors: 0.97983, 0.93826, 0.89812, 0.85980, 0.82322

Coupons/flows: 1.7568, 3.7397, 3.7705, 3.7603, 103.75

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.