We are developing solutions for the OTC Clearing market place that will lead to reductions in cost, complexity and operational inefficiencies for market participants.
Creating effective test data can require a surprising amount of effort
When I started thinking about demoing the product to customers, it dawned on me that for the demo substantial amount of test data would be required. Setting up test accounts was easy, but as I wanted the demo to go over at least three business days, it meant that I would need:
In order to create a history of bootstrapped curves, I would require raw marketdata. Now marketdata of this type is valuable and not freely available, and I can only use freely available data for the purposes of demoing the product, especially as I would like to allow customers to play with the system. I didn’t want to create any old random data as this would make the risk profile unrealistic and unrepresentative.
Fortunately I recalled that a full set of raw market data for a single business day is quoted in a paper on Muti-curve bootstrapping. A screenshot from this paper is shown below:
In this paper, raw market quotes are given for the underlying instruments for a number of different EUR curves, covering EONIA and EURIBOR indices. So my starting point was the data that appears in this paper. But this only gives me data for a single day. How would I obtain data for a period of five years or more?
As the paper contains data for EUR currency only, this limited my choice of currencies. I then started to look for public available market data for EUR based indices.
After spending some time searching various websites, here is a summary of what I found.
Eoniaswap rates - is now a defunct index but it used to represent quotes for EONIA interest rate swap transactions. The index was built by averaging quotes obtained from a panel of banks. The swap rates cover a maturity range from 1 Week to 2 Years, and data is available from 2005 to June 2014.
EONIA overnight rates are available from European Central Bank - Statistical Data Warehouse. Data is available from 1999.
EURIBOR Rates for maturities between maturies from 1 Week to 1 Year are available from European Money Markets Institute.
In each of the cases the data covers a history of more than five years if I set 11-December 2012 as my first business date. However there is a problem:
So I had to to have way of obtaining or creating rates for longer maturities. I decided that I would use a proxy rate for the longest maturity I could obtain and interpolate the intermediate rates myself. The longest maturity proxy rate I found was following:
Having obtained all of the above data, I had to first consolidate all of the data into text formats that I could then use to generate the required curves data.
For EURIBOR, based on above, I ended up with just one set of data points. This meant that when constructing curves from this data, I could only create a single generic EURIBOR curve, unlike the data that is quoted in the referenced document above, which is able to use different instruments to construct different curves for different underying EURIBOR index. So the 1M index gets a 1M curve, whereas the 6M index gets a 6M curve.
This is a limitation but not an earth shattering one! The way I worked around this was to use this data only for calculating Initial Margin, which is an estimate of the losses that might be incurred by a portfolio over a close out period. Here the important thing was to have the five years worth of history for the VaR scenarios.
I decided to use the more granular curve data for calculating Variation Margin, which represents the change in valuation of the portfolio from one day to next. Since for Variation Margin, I do not require a history of curves spanning five years or more, this is perfectly fine. Having a more granular set of curves for Variation Margin also enabled me to demonstrate the functionality of Curve Building in MyCCP.
Obviously the underlying data between the two sets of curves is different - so the resulting curves are also somewhat different. This is not ideal but okay for demo purposes.
In the next post I will discuss the steps taken to construct the raw market data from the sources above.