Introducing OpenGamma’s next-generation market risk library

Introducing OpenGamma’s next-generation market risk library
20th April 2016 Jonathan Senior

The OpenGamma Platform was launched in 2011 to provide standardised models and market risk functionality to the industry, as open source software. It was designed to support a range of use-cases, and many people we engaged with saw its potential in solving both buy-side and sell-side risk requirements.

Having tested the Platform extensively in the marketplace, and with significant experience of integrating it at some of the world’s largest banks, hedge funds and CCPs, we realised that we needed to make a number of improvements to its design and our approach. An increasing number of the use-cases we were seeing, including our own Margining solution, called for simple, lightweight access to market risk functionality, easily accessible to existing applications. The Platform just wasn’t designed for this: as a server, it was the application, and was hard to break apart and use in any other way.

What we needed was a full set of standardised market risk functionality, from pricing to scenario evaluation, available as a library. This would sit at the foundation of every OpenGamma solution, whether it was a library or a full SaaS offering, and it would provide external developers with the simplest and most flexible way to access the same functionality.

In June 2015, after a year in development, we open sourced the first version of this library, called Strata.

Strata was carefully designed from the ground up to be lightweight and extensible, with a constant focus on simplicity. Our aim was to provide access to risk calculations as easily as a developer could use a logging library or a database driver, meeting all the expectations of modern, high-quality open source software.

Over the last 10 months, a strong base of early adopters has built up around Strata – both open source users and commercial clients – who have worked closely with us to guide its development. During this time we have gradually transitioned more of our development effort towards Strata, with regular new releases, and we are now fully confident in replacing the original Platform completely.

The primary benefits that Strata offers are:

  • Code that is simple to understand and evaluate. A key advantage of an open source project is the ability for developers to download and self-evaluate it. This was too hard with the original Platform, and we heard your (and our own!) frustrations. Strata is a massively simplified solution that retains all of the core functional capabilities for market risk and analytics. We have used straightforward, standard design patterns, and included higher-level business APIs which work out-of-the-box. It is ready to run, with built-in conventions, holiday calendars, example portfolios and market data, allowing you to be pricing trades within minutes.
  • Flexibility to deploy within an existing technology stack. The purpose of Strata is to provide convenient access to industry-standard functionality, and not to dictate a set of technologies that you must use. The last thing you need as a developer is to drag in hundreds of transitive dependencies just to price a swap, potentially causing conflicts with your own dependencies. Strata is incredibly lightweight and does not impose any database, server or middleware requirements.
  • Financial toolkit to use at any level. Within Strata you will find all of the financial concepts needed for pricing and analytics – from currenciesindicesday count conventions, and schedules, to product representationscurve calibration in the multi-curve framework, and everything in-between. These form the ‘layers’ of Strata, which are the building blocks we have used ourselves to implement its higher-level functionality. Strata is just as carefully designed and documented from the lowest layer to the highest, and these building blocks can be used on their own or together, wherever you need them in your own applications.
  • Analytics validated by production usage. Open source projects have the advantage of many eyes for validation, but only once a critical mass of usage can be built up. Strata is already used in production both as an open source library and as part of commercial solutions like OpenGamma Margining. This is used by Tier 1 banks and CCPs for cleared OTC and ETD margin calculations. We run daily comparisons of our results against the CCP margin tools to ensure that our valuations match the market standard, which directly test the analytics in Strata.

If you have looked at the Platform in the past and found it too complicated then we would encourage you to take a look at Strata. It is available today as version 0.12, and we don’t expect any significant breaking API changes before the 1.0 release. We are aiming to reach 1.0 by June, when we will also begin publishing Strata to Maven Central.

Comprehensive documentation is available on the Strata project website and you can browse the code on GitHub. If you have any questions, then we’re here to help on the community forums. Let us know what you think!