Skip to content

1.8

Compare
Choose a tag to compare
@lballabio lballabio released this 01 Mar 11:59
· 6053 commits to master since this release

Changes for QuantLib 1.8

QuantLib 1.8 includes 45 pull requests from several contributors.

The most notable changes are included below. A detailed list of changes is available in ChangeLog.txt.

Portability

  • The minimum required Boost version is now Boost 1.43 (May 2010). However, it is strongly suggested to use a recent version, or at least Boost 1.48 (November 2011).
  • Added initial CMake support (thanks to Dmitri Nesteruk). This makes it possible to compile QuantLib on CLion and other CMake-based tools.
  • The build now generates and installs pkg-config file on Linux systems (thanks to GitHub user njwhite).

Interest rates

  • Fixed links to documentation for LIBOR indexes (thanks to Jose Magana).

Volatility

  • Added the possibility to price swaptions and to calculate their implied volatilities in a Black-like model with normal volatilities as well as shifted lognormal (thanks to Peter Caspers).
  • Added the possibility to price caps in a Black-like model with normal volatilities as well as shifted lognormal (thanks to Michael von den Driesch).
  • Caplet strike is correctly recomputed during stripping (thanks to Michael von den Driesch).

Instruments

  • Added basic CVA IRS pricing engine (stand alone, no portfolio; no WWR, no collateral). Thanks to Jose Aparicio.

Models

  • Black-Scholes processes now return the closed-formula expectation, standard deviation and variance over long periods (thanks to Peter Caspers).

Currencies

  • Added Ukrainian hryvnia (thanks to GitHub user maksym-studenets).

Monte Carlo

  • Use different random-number generators for calibration and pricing in Longstaff-Schwartz engine (thanks to Peter Caspers).

Date/time

  • Added forecast dates for moving holidays to Saudi Arabia calendar up to 2022 (thanks to Jayanth R. Varma).
  • Added new Ukrainian holiday, Defender's Day (thanks to GitHub user maksym-studenets).
  • Added a few more holidays for South Korea (thanks to Faycal El Karaa).

Math

  • Added mixed log interpolation (thanks to GitHub user sfondi).
  • Avoid mixing different types while bit-shifting in fast Fourier transform on 64-bit systems (thanks to Nikolai Nowaczyk).

Deprecated features

  • Removed DateParser::split method (deprecated in version 1.6).

Test suite

The test suite is now run with a fixed evaluation date instead of using today's date. This helps avoid transient errors due to holidays. It is still possible to use today's date (or any other date) by running it as:

$ quantlib-test-suite -- --date=today

or

$ quantlib-test-suite -- --date=2016-02-08

(Thanks to Peter Caspers.)

New opt-in features

These features are disabled by default and can be enabled by defining a macro or passing a flag to ./configure. Feedback is appreciated.

  • Added a parallel unit-test runner (thanks to Klaus Spanderen). This was successfully used under Linux, but problems were reported on Mac OS X and occasionally on Visual C++ 2010. The feature requires Boost 1.59 or later and can be enabled by uncommenting the QL_ENABLE_PARALLEL_UNIT_TEST_RUNNER macro in ql/userconfig.hpp on Visual C++ or by passing the --enable-parallel-unit-test-runner to ./configure on other systems.

Experimental folder

The ql/experimental folder contains code which is still not fully integrated with the library or even fully tested, but is released in order to get user feedback. Experimental classes are considered unstable; their interfaces might change in future releases.

Changes and new contributions for this release were:

  • Stochastic local-volatility Heston model, (thanks to Klaus Spanderen and Johannes Goettker-Schnetmann). Both a Monte Carlo and a finite-difference calibration and calculation are provided.
  • Laplace interpolation (thanks to Peter Caspers).
  • Global optimizers: Hybrid Simulated Annealing, Particle Swarm Optimization, Firefly Algorithm, and Differential Evolution (thanks to Andres Hernandez).
  • A SVD-based calculation of the Moore-Penrose inverse matrix (thanks to Peter Caspers).