Function eurex_conversion_factor
pub fn eurex_conversion_factor(
coupon: f64,
interest_start: NaiveDate,
first_coupon: NaiveDate,
maturity: NaiveDate,
delivery: NaiveDate,
notional_coupon: f64,
) -> f64Expand description
Eurex’s conversion factor for an annual-coupon EUR-denominated bond, rounded to six decimals, as Conversion factor calculation for EUR-denominated bonds states it:
CF = (1 + not/100)^(−f)·[c/100·δi/act2 + c/not·((1 + not/100) − (1 + not/100)^(−n)) + (1 + not/100)^(−n)] − c/100·(δi/act2 − δe/act1)
with coupon (c) and notional_coupon (not: 0.06 for the Schatz,
Bobl, Bund and Buxl) as decimals, as every rate in this crate is; the
formula’s percentages are formed inside. Coupons fall on the maturity’s anniversaries:
NCD is the first after delivery, NCD1y and NCD2y one and two years
before it, and LCD the last coupon paid before delivery — NCD1y — or,
when first_coupon is still to come on the delivery date, the
interest_start a long first coupon accrues from (a Bund issued in July
with its first coupon the next August is the market’s usual case). δe = NCD1y − delivery,
δi = NCD1y − LCD in actual days; act1 and act2 are the year ending
at NCD where their δ is negative and the year before it otherwise;
f = 1 + δe/act1; n is whole years from NCD to maturity.