I am reading the following two Markit documents concerning the bootstrapping of respectively the USD rates curve and the EUR, GBP, JPY, CHF, CAD, HKD, SGD, AUD and NZD rates curves. (Both versions are the last versions.)

These curves are not curves to be used ase discount curves in a "real" pricing process, they have to be seen as "convention" curves used in the ISDA model for quotation purposes. (All currencies except JPY the only holidays are week-ends (JPY has the TYP holidays calendar.))

1) First question. In the second document page 7 one sees the following table :

enter image description here

I perfectly get what "Trade Date + 2 business days (ignoring holidays)" (spotdate row for CHF) means : it means that the spot date is equal to the date resulting of the shif of the trade date by to business days forward, the "ignoring holidays" being here surely to recall that there are no holidays except week-ends for EUR.

I get as well what "Trade Date (even if Trade Date is a holiday)" (spotdate row for CAD for instance) means (obvious).

But what does "Trade Date + 2 weekdays (ignoring holidays)" (spotdate row for EUR for instance) exactly mean ?

  • Does it mean that one shifts the trade date forward by two days, not adjusting the resulting day even if it falls in a week-end ?
  • Or does it means that one shifts the trade date forward by two business days, the ignoring holidays being there as a reminder of the fact that there are no holidays for EUR except week-ends ?

2) Second question. There's something I don't understand in the bootstrapping process. Quote from the second document end of page 8 and top of page 9 :

"As part of this process, intermediate discount factors are needed to discount coupons that do not fall on swap or deposit maturity dates - for example the 2Y calculation requires that the coupon at 18 months be discounted. The intermediate discount factor, in this case for 18 months, is interpolated between the 1Y and 2Y discount factors on the basis of a constant forward rate over the period from 1Y to 2Y i.e. the discount factor is log-linearly interpolated. The correct value for the forward rate is determined by an iterative search using Brent’s method."

I am not sure to perfectly understand. Assuming we're in the EUR case and noting $t_0$ the trade date and $t_s$ the spot date (and assuming as in the paper that the zero-coupon $P_{t_0,t_s}$ is equal to $1$ we do this : we get (through the 1M, 2M, 3M, 6M, 9M and 1Y LIBOR's values provided by Markit) the values of $P_{t_s,t_s+1M}$, $P_{t_s,t_s+2M}$, $P_{t_s,t_s+3M}$, $P_{t_s,t_s+6M}$, $P_{t_s,t_s+9M}$ and $P_{t_s,t_s+1Y}$, and now we want to infer $P_{t_s,t_s+2Y}$ from the 2Y swap rate $s_{2Y}$ Markit furnishes.

Writing the definition of $s_{2Y}$ (the fixed rate making the value of the swap equal to $0$ at inception (that is, at $T_s$)) and sparing the details, one finally arrives at an equation of the form :

$$\varphi\left(P_{t_s,t_s+6M}, P_{t_s,t_s+1Y}, P_{t_s,t_s+18M}, P_{t_s,t_s+2Y}\right) = 0$$

where $\varphi$ is an affine function and where $P_{t_s,t_s+6M}$ and $P_{t_s,t_s+1Y}$ were previously extracted for LIBOR's quotes. We want to find $P_{t_s,t_s+2Y}$, but we need $P_{t_s,t_s+18M}$ that we don't know. Should I understand that we simply interpolate $P_{t_s,t_s+18M}$ by $P_{t_s,t_s+1Y}^{\frac{(t_s +2Y)-(t_s +18M)}{(t_s +2Y)-(t_s +1Y)}} P_{t_s,t_s+2Y}^{\frac{(t_s +18M)-(t_s +1Y)}{(t_s +2Y)-(t_s +1Y)}}$ and that we then solve

$$\varphi\left(P_{t_s,t_s+6M}, P_{t_s,t_s+1Y}, P_{t_s,t_s+1Y}^{\frac{(t_s +2Y)-(t_s +18M)}{(t_s +2Y)-(t_s +1Y)}} P_{t_s,t_s+2Y}^{\frac{(t_s +18M)-(t_s +1Y)}{(t_s +2Y)-(t_s +1Y)}}, P_{t_s,t_s+2Y}\right) = 0$$

in $P_{t_s,t_s+2Y}$ using Brent's algorithm ?

  • $\begingroup$ You do interpolate the discounting yes, but what they were getting at is that you interpolate keeping the instantaneous rate constant between tenors. What you have written requires knowledge of the 2Y point to discount the 18m point, which goes against the principal of bootstrapping $\endgroup$ – will Apr 11 '17 at 16:55

For each payment in the swap you want this:

$$ P(t) = e^{-\int_0^t r(\tau) \mathrm{d}\tau} $$

Where $r(\tau)$ is the instantaneous rate. They're saying that $r(\tau)$ is constant between nodes, so for your interpolation for the 18m point you would do this:

$$ P(18\mathrm{m}) = P(1\mathrm{y}) e^{-\int_{1\mathrm{y}}^{18\mathrm{m}} r(\tau) \mathrm{d}\tau} = P(1\mathrm{y}) e^{- r(1\mathrm{y}) \cdot 6\mathrm{m} } $$

  • $\begingroup$ I get your point, but then, if this is how they interpolate, they would need to use Brent's method to solve for $P_{t_s,t_s+2Y}$, woudln't they ? $\endgroup$ – ujsgeyrr1f0d0d0r0h1h0j0j_juj Apr 11 '17 at 21:55
  • $\begingroup$ They way bootstrapping works is that you add successively more market data to your calibration set, such that the bit of new information calibrates some single parameter - in this case you root solve (using Brent's method) to find the instantaneous rate such that the value of the swap (or whatever you're calibrating to) matches the market price. You don't have to do it exactly the same way they do though - I prefer to use a monotonic cubic spline for the fwd rate. $\endgroup$ – will Apr 11 '17 at 22:09
  • $\begingroup$ I know how bootstrapping works. I have to do it their way as I need their (ISDA's) bootstrapped IR curves for their CDS model. I am just saying that if I want to solve $\varphi\left(P_{t_s,t_s+6M}, P_{t_s,t_s+1Y}, P_{t_s,t_s+1Y} e^{-\int_{t_s + 1Y}^{t_s + 18M} r_s ds} = P_{t_s,t_s+1Y} e^{- r_{t_s + 1Y} \times 6M}, P_{t_s,t_s+2Y}\right) = 0$ for $P_{t_s,t_s+2Y}$ I simply don't need to resort to Brent's method as $\varphi$ is affine. (It's like solving $ax+b=c$ for $x$ then.) And as they use Brent's method, I am not sure they interpolate as you say they do. My remark makes sense, doesn't it ? $\endgroup$ – ujsgeyrr1f0d0d0r0h1h0j0j_juj Apr 11 '17 at 22:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.