Skip to content
All library documents

Bootstrapping a MosPrime Zero Curve and Reconciling Bloomberg Results

Article Quant Q&A · Author: Hasek

Summary

The document describes an attempt to reproduce Bloomberg’s RUB versus MosPrime three-month zero curve through a two-year tenor. It outlines a standard bootstrap: derive an initial discount factor from a cash rate, use forward rate agreements to solve for subsequent discounts, then use fixed-for-floating swaps to extend the curve. Continuously compounded zero rates are calculated from the resulting discount factors.

The author reports that these calculations come close to Bloomberg’s displayed values but do not match exactly, and asks whether the procedure or conventions account for the differences. No instrument table or numerical comparison is included in the text, so it does not establish the source of the mismatch or demonstrate that the curve produces equivalent prices. Replication may depend on details such as date conventions, payment schedules, day-count fractions, and curve construction settings, but the document does not investigate them or provide a resolution.

Key ideas

  • Cash instruments can provide the first discount factor in a bootstrapped curve.
  • Forward rate agreements extend discount factors over their accrual periods.
  • Swap rates can be used recursively to solve for later discount factors.
  • Zero rates can be derived from discount factors using continuously compounded rates.
  • Small differences from a vendor curve remain unexplained without its conventions and inputs.

Tags

Full text
# Replicating Bloomberg's zero rates bootstrapping


# Replicating Bloomberg's zero rates bootstrapping












I'm interested in manually replicating the bootstrapping procedure that Bloomberg uses to built ICVS179 (RUB vs MosPrime 3M) curve up to a two years tenor as of October 12th 2021.

These are the market instruments that were taken for curve construction, their market rates, zero rates and discounts as they are given in the Bloomberg terminal:

These are the results of my own bootstrapping which are quite close but don't precisely match Bloomberg's results:

In order to obtain the first discount implied from the cash rate I'm taking $$P(0, T_1) = \frac{1}{1+R_1\cdot\delta(0, T_1)},$$ where $R_1$ is the corresponding market rate.

Then I use $$P(0,T_2) = \frac{P(0, T_1)}{1+R_2\cdot\delta(T_1, T_2)}$$ and $$P(0,T_3) = \frac{P(0, T_2)}{1+R_3\cdot\delta(T_2, T_3)}$$ to calculate the discounts implied from FRAs.

The remaining discounts are obtained from IRS via $$P(0,T_4) = \frac{1-R_4\sum_{i=1}^3\delta(T_{i-1},T_i)\cdot P(0,T_i)}{1+R_4\cdot\delta(T_3,T_4)}$$ $$P(0,T_5) = \frac{1-R_5\sum_{i=1}^4\delta(T_{i-1},T_i)\cdot P(0,T_i)}{1+R_5\cdot\delta(T_4,T_5)}$$

The corresponding zero rates are derived from discounts by $$L_i = -\frac{\ln P(0,T_i)}{\delta(0,T_i)}$$

One can see that my results are pretty close to Bloomberg's but for whatever reason do not exactly match them. Am I using the correct bootstrapping procedure? I'm wondering whether it's possible to precisely match Bloomberg's numbers and if not then how close would be "close enough" so that my curve will provide the same pricing as the one in the Bloomberg?

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.