Last week, we had a QuantLib user meeting in Düsseldorf, thanks to the sponsorship of IKB (which also provided the venue), d-fine and Quaternion. This post collects the brief notes I took during those two days. For more details, check the page I set up for the meeting on the QuantLib site; I’ll add slides there as the presenters make them available.
First of all, though, let me mention the organizers, led as usual by Michael von der Driesch. Every year they keep the meeting running smoothly and on time, and this year they even prevented the absent-minded among us from forgetting what lunch we had ordered a few days earlier. Thank you, folks.
The first day was kicked off by Sebastian Schlenkrich, who talked about his implementation of Quasi-Gaussian Models. It’s a work in progress (for instance, he mentioned issues with negative rates that still need to be addressed) but it looks promising, and provides the user with explicit model parameters acting on volatility smiles and skews and on correlations. I’ll leave its description to his slides; while you wait for them to be published (if they haven’t already) you can browse his code on GitHub.
The next talk was by Georg Schöchtel and examined the use of QuantLibXL as a tool for model validation, arguing that it can satisfy regulatory guidelines. The spreadsheet that can be built with it also provide a good user interface for workshops and can be kept for testing and reporting. One thing, though: we need more documentation.
After the lunch break, Andreas Pfadler reported on the continuation of his experiments with offloading QuantLib computation on a grid. During this year he added a number of tools to the mix, such as Maven for building the thing, Docker for deploying it, and Apache Ignite and Apache Zeppelin for infrastructure and presentation respectively. The latter two technologies also provided the awesome talk title, “Igniting QuantLib on a Zeppelin”. His code is on GitHub.
Next, Nicholas Bertocchi presented the work he did on advanced EONIA curve calibration with Ferdinando Ametrano and Paolo Mazzocchi. It solves a few issues with the techniques shown in previous papers, and is already available as both slides and a paper on SSRN so I’ll leave it to them to explain. As I tweeted, I might get a notebook out of this at some point.
In the final talk of the day, Eric Ehlers reported on the status of his Reposit project. It’s almost at the point at which it can replace the old ObjectHandler architecture as the basis for QuantLibXL, and should be there in version 1.9, out real soon. It will require to write a lot less code to generate the same functionality; and, as a nice side effect, Eric implemented a framework for unit tests in Excel, too.
Dinner saw the Italian people as the ones leaving and going to bed earliest, so I won’t delve on it. We’ll try to do better next year.
The second day started with a joint presentation by Martin Dietrich and Pascal Heider, in which they described two different approaches to incomplete commodity markets (namely, market models and replication) and in which I learned a lot about the quirks of that kind of instruments. I’ll let the slides do them justice.
Next, Klaus Spanderen with a talk on implementing a collocating
local-volatility model which provides fast and accurate calibration to
European options and efficient pricing of exotic ones; the code is
on GitHub, and
you can look at
for references and a list of files. Also, there were some interesting
slides on technical issues Klaus had when using QuantLib from Java
(via Scala, actually): it turns out that he had to use explicit
delete statements in Java to give a hint to the garbage collector
that it was time to get to work. Ironic, given that we removed all of
them in the underlying C++ library…
The last talk before lunch was by Peter Caspers, who reported on the status of the Open Source Risk Engine and its possible use as a reference for validation and training as well as a foundation for in-house or vendor applications. Peter also prompted some very lively discussion; QuantLib is fast enough to perform XVA calculations in a decent time, but its notification mechanism tends to get in the way by sending lots of redundant notifications around. Peter showed timings for a few solutions he tried, and a couple of others were suggested during the discussion. This will probably deserve a post on its own, though; we’ll see whether Peter or I get around to write it first.
In the afternoon, Roland Lichters presented a use case for the Open Source Risk Engine, namely, the calculation of dynamic initial margin and MVA: his slides are already available, so go for them. He also hinted at a Q1 release of ORE including equity and inflation instruments as well as risk functionality such as VaR and expected shortfall.
The last talk was by Oleksandr Khomenko, and was about how QuantLib can help with Solvency II regulation; but, unfortunately, I had to skip it and go catch my flight instead. I look forward to the slides.
To summarize: as usual, two great days of talks, a nice mixture of financial and technological content, and the opportunity to meet people in person instead of reading their words and code on a screen. Again, thanks to all who helped organize it. I can’t wait for next year.
Follow me on Twitter if you want to be notified of new posts, or add me to your Google+ circles, or subscribe via RSS: the buttons for that are in the footer. Also, make sure to check my Training page.