Skip to content
All library documents

Retrieving Historical Cheapest-to-Deliver Bond Data from Bloomberg

Article Quant Q&A · Author: Jhonny

Summary

The discussion addresses building a daily indicator for which Eurozone government bond is cheapest to deliver against a bond futures contract, for use in a repo-rate panel regression. It gives a Bloomberg Excel history query for the futures CTD identifier and says this provides the same CTD information as the terminal view. It also describes using a generic futures ticker to retrieve the active contract associated with that generic on a particular date.

For a full contract chain, the answer suggests either enumerating quarterly contract codes or querying the chain for a specified date, then retrieving CTD information for the relevant contracts. The response notes that it does not know a single query that returns every contract in a chain at once. This is a practical data-access answer, not guidance on defining CTD, validating historical roll conventions, or constructing the regression indicator. Bloomberg field availability and syntax may also depend on the data product and account, so the suggested queries should be checked against the user's setup.

Key ideas

  • A Bloomberg historical data query can retrieve a futures contract's CTD identifier over time.
  • A generic futures ticker can be used to identify the contract associated with it on a given date.
  • Retrieving CTD values across a chain may require enumerating individual contracts or querying the dated chain.
  • The response does not explain how to validate the resulting CTD series for a regression.

Tags

Full text
# Timeseries of cheapest-to-deliver bonds from Bloomberg


# Timeseries of cheapest-to-deliver bonds from Bloomberg












I am running a regression analysis on a `bond`x`day` panel to explain the variation in repo rates. The dependent variable is the weighted average rate of all repo transactions which are conducted on a specific `day` and which are collateralized with a specific `bond`. All considered (collateral) bonds are Eurozone government bonds. In this analysis, I want to control for cheapest-to-deliver (CTD) bonds.

To this end, I want to construct an indicator variable which identifies whether a bond in my sample is the CTD on a certain day. I am struggling to query this data from Bloomberg.

- Are `Euro-Bund` (DE), `Euro-BONO` (ES), `Euro-OAT` (FR), `Euro-BTP` (IT) all future contracts I should consider for my sample of bonds?

- From the BB-Excel Add-In, how can I obtain a daily series that indicates for a specific future contract which bond is the CTD? I know that in the Terminal I can, for example, type `RXA Comdty` and `CTD`, and look out for the bond with the highest `Implied Repo %` value.

Thanks

## Answer by AKdemy (score 2, accepted)

https://quant.stackexchange.com/a/65983

Best to ask the Help Desk in my opinion.

`=BDH("RX1 COMB Comdty","FUT_CTD_CUSIP","20150101"," ")` in excel for example (works also with active or whatever future in the chain)

Edit

Yes, on the terminal it is HCTD - that formula pulls the same info. You cannot do all contracts in a chain at once (that I know of). The generics are always "chaining" them together. =BDH("RX1 Comdty","FUT_CUR_GEN_TICKER","20150101"," ") shows the contracts associated with the generic at the specific date.

If you need all, there are a few ways. `RXA Comdty DES` shows (or also `CT` page) shows you that there is only H, M, U, and Z for quarters and the associated year. RXH, RXM, with RXM19, RXM12 for June 2012. Should be easy to loop through if needed. `=BDS("RX1 Comdty","FUT_CHAIN", "CHAIN_DATE=20180713"` gives you the entire chain at a given date. Depends what you feel works better I suppose.

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.