Reducing Complexity in OTC Clearing

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

In the previous post I discussed how I obtained data from public sources in order to create an artificial interest rate curves history for the purposes of demoing the system to customers. In this post I will go through the steps taken to build the intermediate market data quotes.

The first step in the process was manual. This involved combining several Excel files into a single data set. Also as part of this exercise I had to fill in data for certain dates when EONIASWAP rates or EURIBOR rates were missing. I found that to obtain a minimal consistent data set I had to restrict the date range to [2007-01-02, 2013-12-24). The cut down range was still adequate to obtain five years of historical data.

I had to then decide whether to use the 30Y Bond rate as a proxy for 30Y EONIA Swap rate or the 30Y EURIBOR Swap rate. Lacking additional data I simply based my decision on following. Have a look at the graph below which shows the 30Y Bond rate plotted against the 6M EONIA Swap rate (blue) and 6M EURIBOR rate (red). I decided to use the Bond rate as a proxy for EURIBOR 30Y swap rate on the basis that the 6M EURIBOR rate had less of a spread against the 30Y Bond rate.

Comparison 1

So now I had the 30Y EURIBOR swap rate, using the 30Y BOND rate as the proxy. Next step was to use a spread to obtain the 30Y EONIA swap rate. I looked at the spread between EONIA 3M swap rate and EURIBOR 3M rate, and EONIA 6M swap rate and EURIBOR 6M rate, and decided to use the latter as the spread because it had a more pronounced spread. The two spreads are shown below.

Comparison 2

What remainined after this was to somehow fill in the gap between the last available EONIA or EURIBOR rate and the 30Y rate I had computed as described above. To do this, I used following interpolation strategy:

  • If the 30Y rate was lower than the last available rate, then I simply used a straight line linear interpolation.
  • If the 30Y rate was higher than the last available rate, then I used an interpolation that looks roughly like an inverse parabola as shown below. There is no scientific reason for this, except that it made the more recent curves look like the real curves from the 11-December data I mentioned in my last post.


So what does the final result look like? Here is a graph comparing the data for three different dates. I think although this may not exactly match real data, yet it hopefully captures the trend. I would be interested in feedback from folks that have access to real data, and can tell me how off the data is.

Comparison 3

Next post will about bootstrapping the curves.