Skip to content

1.6

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

Changes for QuantLib 1.6:

QuantLib 1.6 includes 65 pull requests from several contributors.

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

Portability

  • Enable successful compilation with Boost 1.58 and either gcc or clang.
  • Enable multi-processor compilation on Visual C++ as a project switch (thanks to Giorgio Pazmandi).

Date/time

  • Added Moscow Exchange calendar (thanks to Dmitri Nesteruk).
  • Added 70th anniversary of anti-Japanese day to Chinese calendar (thanks to Cheng Li).
  • Fixed Chinese New Year date for 2010 (thanks to Cheng Li).
  • Added nearest-trading-day business day convention (thanks to Francois Botha).
  • Prevented normalization of a 7-days period to a 1-week period, since this doesn't apply to business days (thanks to Paolo Mazzocchi).
  • Allowed schedules built with a vector of dates to be used for coupon generation, given that the required information was provided (thanks to Peter Caspers).
  • Added support for Australian Security Exchange (ASX) dates (thanks to Maddalena Zanzi).
  • Added ECB dates for April and June 2016 (thanks to Paolo Mazzocchi).

Instruments

  • Extended digital American options to handle knock-off case (thanks to Riccardo Ghetta).
  • Extended barrier options to handle KIKO/KOKI barriers (thanks to Riccardo Ghetta).
  • Added Ikeda/Kunitomo engine, binomial engine and binary/digital engine for double-barrier option (thanks to Riccardo Ghetta).
  • Added Bachelier engine for caps/floors based on normal volatility (thanks to Michael von den Driesch).
  • Allowed non strike/type payoffs in finite-differences engine for vanilla options (thanks to Joseph Wang).
  • Fixed settlement days of BTP bonds.
  • Fixed generation of schedule for OIS and vanilla swaps.
  • Added support for ASX dates to futures rate helper (thanks to Maddalena Zanzi).

Models

  • Moved Markov functional model, GSR model, Gaussian 1D model and related engines, processes and term structures from the experimental folder to the code library (thanks to Peter Caspers).

Cash flows

  • Added CMS-spread coupons, including digital (thanks to Peter Caspers).

Indexes

  • Added CMS-spread index (thanks to Peter Caspers).
  • Fixed day-count convention for Fed Funds rate.

Term structures

  • Fixed bug where a valid previous curve state could be a bad guess for the next and lead to a bootstrap failure.
  • Allow negative adjustment for futures rate helpers (thanks to Paolo Mazzocchi).

Volatility

  • Added support for normal and displaced lognormal volatility to optionlet stripper (thanks to Michael von den Driesch).
  • Allowed calibration of the alpha of the SABR model to the ATM point while keeping beta, nu and rho fixed (thanks to Peter Caspers).
  • Added Chambers-Nawalkha implied-volatility approximation (thanks to Peter Caspers).
  • Added displaced lognormal swaption volatilities (thanks to Peter Caspers).
  • Allowed the optionlet boostrap to continue if one caplet can no be matched (thanks to Peter Caspers).
  • Added flat-extrapolation option to swaption ATM volatility matrix (thanks to Peter Caspers).
  • Implied swaption volatility cube for Gaussian 1-D model (thanks to Peter Caspers).

Math

  • Allowed user-defined Jacobian in optimization (thanks to Peter Caspers).

Miscellanea

  • Added IDR, MYR, RUB and VND currencies (thanks to Lucy King).

Deprecated features

  • Removed deprecated methods and constructors from the BlackVarianceTermStructure, BlackVolTermStructure, CapFloorTermVolatilityStructure, DateParser, FittedBondDiscountCurve, GeneralLinearLeastSquares, Handle, LocalVolTermStructure, OptionletVolatilityStructure, Settings, SwaptionVolatilityStructure and VolatilityTermStructure classes.

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:

  • Finite-difference meshers based on multi-dimensional integrals (thanks to Klaus Spanderen).
  • SVI interpolation and a corresponding smile section (thanks to Peter Caspers).
  • ZABR volatility model (thanks to Peter Caspers).