On the Design Board: From Single- to Multi-Curve

Introduction

Standard fixed-income applications make a larger and larger use of the multi-curve framework to price products and hedge risks. For whatever reason this is the case, it is useful to know how to implement such a framework.

We have already talked about multi-curves in the past. Here we gave a list useful references and here we illustrated the mean features of risk metrics and sensitivity patterns. In this blog, we describe how to design the multi-curve framework. We do not claim that this is the only way or the best way. This is one possible way, which however turned out to work quite well within our system and happened to be easily integrated into our library.

Code snippets that will be shown below have been developed in C# using Visual Studio. Continue reading

Credit Value Adjustment

We created a software package to valuate the Credit Value Adjustment (CVA) of a swap portfolio. Our client, active in banking and capital management in the Netherlands, wanted to evaluate its CVA position for the existing portfolio and see impact of new deals for a given counter party. The tool is specifically designed to consider the distribution of the exposure of a given counter party. This functionality allows for comparison between the regulatory value (BASEL III) and the economic value.

The tools was implemented on the Microsoft platform, using C#, Microsoft Visual Basic for Applications (VBA) and Excel.

Tapestry - Part I: Hello Tapestry

Introduction

Tapestry 5 is framework for creating web applications using Java. The framework allows you to generate HTML pages using Java code. This a good thing if you have complex business logic that takes data from the user, database, online resources to present a result as a webpage. We wanted to do something like that for one of our econometric models so we decided to give Tapestry a go for building our web application. Along the way we learned quite a lot about the framework. Some of that we want to share here in a series of blogs. The complete series should be enough to build simple GUI for your Java business logic.

In this blog we will create a hello-world style example using Tapestry 5. The goal of this example is to get you up and running with Tapestry using the skeleton setup that is included with Tapestry. Based on this initial setup we will make changes to get a hello-world page.

Prerequisites

  • This tutorial uses Eclipse with Maven

Continue reading

Automation of FTP process - full implementation

The previously-implemented semi-automated business-used prototype of the daily fund transfer price (FTP) for the mortgage domain was moved to production from business to IT departments of a large Dutch bank and became an IT system under FAM responsibility.

The resulting fully-automated application was built on a consistent technology stack, which includes .NET, Visual Studio, C#, SQL-Server, SSIS package, QRM. The tool is accompanied by the corresponding graphical user interface (GUI) which was developed in ASP.NET.

This project turned out to be very challenging, especially because of: i) the interactions among various bank departments, including IT, FAM, FTP Centre and Mortgage Group; ii) the large technology stack involved. In all these cases we were in the lead.

Intuitions From The Multi-Curve Framework

How can we hedge within the multi-curve framework?

Let’s consider a simplified case. Our building blocks will be swaps only of various tenors and maturities with the following purposes:

  • Discounting instruments: we use 1-month tenor swaps of various maturities to construct the discounting curve.
  • Tenor instruments: we use 3-months, 6-months and 12-months tenor swaps to construct the forward curves. We denote them as 3M, 6M and 12M.

The exact swap data are given in the attached spreadsheets [a] and [b]. In particular:

  • the Data tab contains details of the input data and convention used in the calculation;
  • the Rows tab contains the matrix with the PV01s/IV01s of all the input instruments as rows;
  • the Columns tab contains the actual PV01/IV01 matrices as the transpose of the matrix in the previous tab;
  • our notation in these examples is that all the curves are ordered by discounting type (the first one is always the discounting curve) and increasing tenors.

Continue reading

ETL for Daily Liquidity Monitoring

Daily monitoring of liquidity has become a crucial job inside any bank. We implemented the Extract-Load-Transform (ETL) operations of liquidity tools for different trading desks for the modelling and risk-reporting departments in a large Dutch bank, which allows the bank to run its liquidity-monitoring tools daily.

Liquidity input data come from various sources and all have different formats. Some are Excel files, while some others are comma-separated text files. Moreover, date conventions are not standard and depends on external factors, such as Excel settings. In addition, all the different pieces of information have to be adjusted before they can be used. Such adjustments include specific selection and join operations.

Our input tool has been developed in C#. We have created in-memory databases and used LINQ to perform DB operations. The code has been unit-tested. Log text files and Excel output files are created daily. The tool has been accompanied by a self-contained user manual explaining the business logic, configuration setting and command-line arguments, exceptions that may arise during the execution.

Bootstrap approach for CDS spreads

In this blog we consider the hazard (or default) rate implied by Credit Default Swaps (CDS). In specific we compare a simplified CDS-spreads-based model against a bootstrap procedure. Surprisingly we find that the simplified approach works well in the current low-interest rate market. Our findings are based on a piecewise linear hazard rate curve. The nodes for these curves are obtained using either the simple model or the bootstrap approach.

Continue reading

Paper Accepted for Publication in the Wilmott Magazine

We are happy to announce that our paper Curiosities on the Monotone Preserving Cubic Splines  has been accepted for publication in the Wilmott Magazine.

The content of the paper is nicely summarised by the starting paragraph of the referee report: "The authors have two results. The first is a worthwhile observation that the Hyman constraint is automatically satisfied, and can thus be omitted. The second is a sensitivity calculation. These results deserve to be published ..".

Needless to say, we are happy for such an achievement and proud to get recognition for the quality of our research from an international refereed journal. This is for us a confirmation of our capacities and an additional boost of motivation.

A working version of the paper can be found in our library page. The final publication can be obtained directly from the Technical Papers section of the Wilmott Magazine journal here.

Credit Default Swaps : First Steps with Example

A Credit Default Swaps (CDS) is a derivative to transfer default risk from one party to the next. The default protection is granted on the reference entity which can in principal be any entity, for example a single company, a group of companies or even a country. The protection buyer makes (quarterly) payments as compensation for the protection until either the end of the contract or the moment of default of the reference entity. This structure results in the pricing of this leg containing a part for the value of the payout in case of default and a part for the accrued premium until default. This side of the swap is called the premium leg.

The protection seller pays out a fixed amount in case of default of the reference entity. This amount is usually quoted as the notional amount times a recovery fraction. This side of the swap is called the protection leg.

To get a feel for the pricing of these kind of swaps please consider the simple attached example based on the book of Hull. In this example the CDS price is computed based on deterministic default probabilities and a fixed interest rate. To get a more realistic pricing, we could change the fixed interest rate with an interest rate model and the deterministic default probability with a stochastic model. However, that aside, we think this example gives a good basic understanding of how a CDS works. 

The CDS example spreadsheet is available here : cds example