Version history

Release 0.3.7 - July 2004

IMPORTANT

QuantLib now depends on the Boost library (www.boost.org).

You will need a working Boost installation in order to compile and use QuantLib. Instructions for installing Boost from sources are available at <http://www.boost.org/more/getting_started.html>. Pre-packaged binaries might be available from other sources. Google is your friend (or Debian, or Fink...)


DATE, CALENDARS, AND DAY COUNT CONVENTIONS

  • Working on differentiating calendars depending on country or exchange, instead of city.
  • Added Italy (Settlement, Exchange), United Kingdom (Settlement, Exchange, Metals), United States (Settlement, Exchange, GovermentBond), Xetra.
  • Milan, London, and NewYork calendars have been deprecated.
  • Added (old-style) calendars: Beijing, Hong Kong, Riyadh, Seoul, Singapore, Taiwan.
  • RollingConvention has been renamed BusinessDayConvention, as for ISDA definitions.

MATH

  • Added rounding algorythms as per OMG enumeration/definition.

TEST SUITE

  • Moved to Boost unit test framework. CppUnit is no longer needed.
  • Added test for quanto and forward compound engines.
  • Added test for roundings.
  • Added test for discrete dividend European options.
  • Added test for cliquet options.

MISCELLANEA

  • enable/disableExtrapolation() methods were added to a few classes such as TermStructure. They make it possible to persistently allow extrapolation without the need of specifying it at every method call.
  • Added user configured #define to disable usage of deprecated classes.

PORTABILITY

  • Fink package available
  • Visual C++ 7.x project files added

Release 0.3.6 - April 15th, 2004

Bug-fix release for QuantLib 0.3.5. A bug was removed where calls to impliedVolatility() would break the state of the option and of all options sharing the same stochastic process.

Release 0.3.5 - March 31th, 2004

BOOST SUPPORT

  • When available, QuantLib 0.3.5 now uses parts of the Boost library. The presence of Boost is detected automatically under Unix/Linux systems; on Windows systems, it must be enabled by uncommenting the relevant line in ql/userconfig.hpp.

  • In the next QuantLib release, the presence of the Boost library will be mandatory.

MONTE CARLO FRAMEWORK

  • Modified MultiPath interface to remove drifts. They are now in the stochastic processes.
  • Preliminary implementation of Longstaff-Schwartz least-squares
  • Monte Carlo pricer for European basket options
  • Brownian-bridge bugs fixed
  • StochasticProcess base class and derived classes (diffusion, jump-diffusion, etc.) have been created.

PRICING ENGINES FRAMEWORK

  • Pricing engines now use Payoff and Exercise classes.
  • American basket options.
  • Binary barrier option replaced by vanilla option with digital payoff.
  • Stulz engine for max and min basket calls and puts on two assets.
  • American binary option added (a.k.a. one-touch, american digital, americal barrier, etc.) with different payoffs (cash/asset at hit/expiry, etc.)
  • Added engine for Merton 1976 jump-diffusion process.
  • Added Bjerksund and Stensland approximation for American option (still unstable.)
  • Added Barone-Adesi and Whaley approximation for American option.
  • Improved Black formula engine with more greeks added.
  • Discrete geometric asian option.
  • Added Leisen-Reimer binomial tree.

SHORT RATE MODELS

  • Model renamed to ShortRateModel. A typedef is provided for backward compatibility--it will be removed in subsequent releases.

VOLATILITY FRAMEWORK

  • bug fix for short time (0<=t<=Tmin) interpolation

OPTIMIZATION FRAMEWORK

  • Method renamed to OptimizationMethod. A typedef is provided for backward compatibility--it will be removed in subsequent releases.

PATTERNS

  • Composite pattern

MATH

  • Improved cubic spline interpolation. It now handles end conditions such as first derivative value, second derivative value, not-a-knot. Hyman filter for monotonically constrained interpolation has been implemented. Primitive calculation has been enabled in addition to derivative and second derivative.
  • Primitive, first derivative, and second derivative functions are available for linear interpolator.
  • Singular value decomposition improved.
  • Added bivariate cumulative normal distribution.
  • Added binomial coefficient calculation, binomial distribution, cumulative binomial distribution, and Peizer-Pratt inversion (method 2.)
  • Added beta functions.
  • Added Poisson distribution and cumulative distribution.
  • Added incomplete gamma functions.
  • Added factorial calculation.
  • Added rank-reduced square root and improved pseudo-square root of square symmetric matrices.
  • Added Cholesky decomposition.

TEST SUITE

  • Added test for cubic spline interpolation.
  • Added test for singular value decomposition.
  • Added test for two-asset baskets using the Stulz pricing engine.
  • Added test for Monte Carlo American cash-at-hit options.
  • Added test for jump-diffusion engine.
  • Added test for American and European digital options.

MISCELLANEA

  • Inner namespaces have been deprecated.
  • Added frequency enumeration, including 'once'.
  • MarketElement renamed to Quote.
  • Handling strike=0.0 where possible.
  • More Payoff classes have been introduced: gap, asset-or-nothing, cash-or-nothing. Payoff is now extensively used.
  • Exercise class is now polymorphic. More derived classes have been introduced, and they are now extensively used.
  • Introduced QL_FAIL macro.
  • Added calendar for Copenhagen
  • 14 April 2004 (election day) added to Johannesburg calendar as a one-off holiday.
  • Documentation generated with Doxygen 1.3.6.
  • Win32 installer generated with NSIS 2.0.

Release 0.3.4 - November 21th, 2003

MONTE CARLO FRAMEWORK

  • MC European in one step with strike-independent vol curve (hopefully)
  • Path pricer for Binary options. It should cover both European and American style options. Also known as: Digital, Binary, Cash-At-Hit, Cash-At-Expiry.
  • Path pricers for barrier options

PRICING ENGINES FRAMEWORK

  • More options moved to the new pricing engine framework: binary, barrier
  • Changed setupEngine() into setupArguments(args)
  • Moved pricing-engine machinery up to Instrument class

FIXED INCOME

  • New basis-point sensitivity functions
  • Added Swap::startDate() and maturity()
  • Cap/floor fixing days taken into account

SHORT RATE MODELS

  • An additional constraint can now be passed to the calibration

VOLATILITY FRAMEWORK

  • Visitable volatility term structures

OPTIMIZATION FRAMEWORK

  • Added composite constraint

PATTERNS

  • Visitor, Alexandrescu-style (saves some code duplication)

MATH

  • Added more integration algorithms contributed by Roman Gitlin
  • Relaxed constaints on interval boundaries for integration algorithms
  • Interpolation traits

TEST SUITE

  • Added implied cap/floor term volatility test
  • Added test for binary options in PricingEngine Framework.
  • Added tests for Barrier options in PricingEngine Framework. Some Monte Carlo tests, but not comprehensive.

MISCELLANEA

  • Conditionally allowed negative yields (disabled by default)
  • Null calendar and simple day counter for reproducing theoretical calculations
  • Fixed for VC++.Net compilation
  • Added spec file for RPMs
  • Added global flag for early/late payments
  • Enabled test suite for Borland
  • Removed OnTheEdge VC++ configurations
  • Added VC++ configurations for static and dynamic Multithread libraries
  • Upgraded to use Doxygen 1.3.4

Release 0.3.3 - September 3rd, 2003

MONTE CARLO FRAMEWORK

  • Re-templatized Monte Carlo model based on traits.
  • New path generator based on DiffusionProcess, TimeGrid, and externally initialized random number generator.
  • Added Halton low discrepancy sequence.
  • Added sequence generators: random sequence generator creates a sequence generator out of a random number generator. InvCumGaussianRsg creates a gaussian sequence generator out of a uniform (random or low discrepancy) sequence generator.
  • RNG as constructor input constructor( long seed) deprecated.
  • Mersenne Twister random number generator added
  • Old PathPricers, PathGenerators, etc are available with a trailing _old
  • Added Jäckel's Brownian Bridge (not used yet.)
  • Sobol Random Sequence Generator. Unit and Jäckel.
  • Added randomized Halton sequences.

FINITE DIFFERENCE FRAMEWORK

  • Old class Grid no longer exists, use CenteredGrid to obtain the same result.

LATTICE FRAMEWORK

  • Abstracted discretized option.
  • Additive binomial trees. All binomial trees now use DiffusionProcess.
  • Added Tian binomial tree.

PRICING ENGINES FRAMEWORK

  • Partially implemented.
  • Quanto forward compounded engines.
  • Integral (european) pricing engine.

YIELD TERM STRUCTURE

  • ZeroCurve: a term structure based on linear interpolation of zero yields.

FIXED INCOME

  • Up-front and in-arrear indexed coupon.
  • Specific implementation of compound forward rate from zero yield.
  • Added compound forward and zero coupon implementations.
  • Added Futures rate helper with specified maturity date.
  • Added bucketed bps calculation.
  • Added swap constructor using specified maturity date as well as added functionality in Scheduler.
  • Added date-bucketed basis point sensitivity based on 1st derivative of zero coupon rate.

OPTIMIZATION FRAMEWORK

  • Solvers now take any function. ObjectiveFunction disappeared.

PATTERNS

  • Abstracted lazy object.
  • Abstracted the curiously recurring template pattern.

DATE AND CALENDARS

  • Added joint calendars.
  • Tokyo, Stockholm, Johannesburg calendar improved.
  • "MonthEndReference" business day rolling convention. Similar to "ModifiedFollowing", unless where original date is last business day of month all resulting dates will also be last business day of month.
  • Added basic date generation starting from the end.

MATH

  • Added Gauss-Kronrod integration algorithm.
  • Added primitive polynomial modulo 2 up to dimension 18 (available up to dimension 27.)
  • Added BicubicSplineInterpolation.
  • Numerical Recipes algorithm is back since there is a problem with Nicolas' code: it is unable to fit a straight line, it waves around the line.
  • Prime number generation.
  • Acklam's approximation for inverse cumulative normal distribution function (replaced Moro's algorithm as default.)
  • Added error function.
  • Improved Cumulative Normal Distribution function using the error function.
  • Matrix pseudo square algorithm using salvaging algorithm(s).
  • Added SequenceStatistics.
  • Major Statistic reworking.
  • Added DiscrepancyStatistic that inherits from SequenceStatistic and extends it with the calculation of L2-discrepancy.
  • HStatistics.
  • Added first and second derivative ot cubic splines.

RISK MEASURES

  • Introduced semiVariance and regret.
  • Redefinition of average shorfall (normalization factor now is cumulative(target) instead of 1.0)

MISCELLANEA

  • QuEP 9 "generic disposable objects" implemented.
  • Added test suite.
  • Dataformatters extended to format long integers, Ordinal numerals, power of two formatting.
  • Exercise class adopted.
  • Added user configuration section.
  • Inhibited automatic conversion of Handle<T> to RelinkableHandle<T>.
  • Diffusion process extended.
  • Added strikeSensitivity to the Greeks.
  • BS does handle t==0.0 and sigma==0.0.
  • TimeGrid has been reworked.
  • Added payoff file for Payoff classes. Added Cash-Or-Nothing and Asset-Or-Nothing payoff classes.
  • Upgraded to use Doxygen 1.3.

Release 0.3.1 - February 4th, 2003

FINITE DIFFERENCE FRAMEWORK

VOLATILITY FRAMEWORK

  • added Black and local volatility interface

PRICING ENGINES FRAMEWORK

YIELD TERM STRUCTURE

  • interface revisited
  • added discrete time forward methods
  • added DiscountCurve (loglinear interpolated) and CompoundForward term structures
  • ForwardSpreadedTermStructure moved under QuantLib::TermStructures namespace

FIXED INCOME

  • Modified coupons so that the payment date can be after the end of the accrual period

MISCELLANEA

  • added/verified holidays of many calendars
  • added new calendars
  • added new currencies
  • more date formatters
  • added Period(std::string&)
  • it is now possible to advance a calandar using a Period
  • added LogLinear Interpolation
  • the allowExtrapolation boolean in interpolation classes has been removed from constructors and added to the operator()
  • Renamed Solver1D::lowBound and hiBound
  • bug fixes

BUILD PROCESS

  • More autoconfiscated time functions and types
  • Migrated to latest autotools
  • added patches for Darwin and Solaris

Release 0.3.0 - May 6th, 2002

MONTE CARLO FRAMEWORK

  • Path and MultiPath are time-aware
  • McPricer: extended interface, improved convergency algorithm

FINITE DIFFERENCE FRAMEWORK

  • added mixed (implicit/explicit) scheme, from which Crank-Nicolson, ImplicitEuler, and ExplicitEuler are now derived
  • Finite Difference exercise conditions are now in the FiniteDifferences folder/namespace
  • Finite Difference pricers now start with 'Fd' letters
  • BSMNumericalOption became BsmFdOption

LATTICE FRAMEWORK

  • introduced first version of the framework
  • CRR and JR binomial trees

VOLATILITY FRAMEWORK

  • early works on reorganization of vol structures

YIELD TERM STRUCTURE

  • new TermStructure class based on affine model
  • yield curves can be spreaded in term of zeros (ZeroSpreadedTermStructure) and forwards (ForwardSpreadedTermStructure)
  • Added dates() and times() to PiecewiseFlatForward
  • discount factor accuracy in the yield curve bootstrapping is an input
  • added single factor short-rate models (Hull-White, Black-Karasinski)
  • added two factor short-rate models framework
  • cap/floor and swaption calibration helpers
  • added bermudan swaption pricing example (including BK and HW calibrations)

FIXED INCOME

  • cap/floor and swaption tree pricer
  • cap/floor analytical pricer
  • vanilla swaption Jamshidian pricer
  • Added accruedAmount() to coupons
  • Made cash flow vector builders into functions

OPTIMIZATION FRAMEWORK

  • added conjugate gradient, simplex

PATTERNS

  • implemented QuEP 8 and 10

MISCELLANEA

  • added allowExtrapolation parameter to interpolaton classes
  • added 2D bilinear interpolation
  • better spline interpolation algorithm
  • Added non-central chi-square distribution function.
  • Improved Inverse Cumulative Normal Distribution using Moro's algorithm
  • Introduced class representing stochastic processes
  • added isExpired() to Instrument interface
  • added functions folder and namespace for QuantLibXL and any other function-like interface to QuantLib
  • Handle is now castable to an Handle of a compatible type
  • added downsideVariance to the Statistics class
  • kustosis() and skewness() now handles the case of stddev == 0 and/or variance == 0
  • added Correlation Matrix to MultiVariateAccumulator
  • enforced MS VC compilation settings
  • added "-debug" to the QL_VERSION version string ifdef QL_DEBUG
  • "make check" runs the example programs under Borland C++
  • fixed compilation with "g++ -pedantic"
  • Spread as market element
  • new calendars introduced
  • new Xibor Indexes introduced
  • Added optional day count to libor indexes
  • Shortened file names within 31 char limit to support HFS

Release 0.2.1 - December 3rd, 2001

MONTE CARLO FRAMEWORK

  • Path and MultiPath are now classes on their own
  • PathPricer now handles both Path and MultiPath
  • MonteCarloModel now handles both single factor and multi factors simulations.
  • McPricer now handles both single factor and multi factors pricing. New pricing interface
  • antithetic variance-reduction technique made possible in Monte Carlo for both single factor and multi factors
  • Control Variate specific class removed: control variation technique is now handled by the general MC model
  • average price and average strike asian option refactored
  • Sample as a (value,weight) struct
  • random number generators moved under RandomNumbers folder and namespace

FINITE DIFFERENCE FRAMEWORK

  • BackwardEuler and ForwardEuler renamed ImplicitEuler and ExplicitEuler, respectively
  • refactoring of TridiagonalOperator and derived classes

YIELD TERM STRUCTURE AND FIXED INCOME

  • Added some useful methods to term structure classes
  • Allowed passing a quote to RateHelpers as double
  • added FuturesRateHelpers (no convexity adjustment yet)
  • PiecewiseFlatForward now observer of rates passed as MarketElements
  • Unified Date and Time interface in TermStructure
  • Added BPS to generic swap legs
  • added term_structure+swap example
  • Fixing days introduced for floating-coupon bond

PATTERNS

  • Added factory pattern
  • Calendar and DayCounter now use the Strategy pattern

VARIOUS

  • used do-while-false idiom in QL_REQUIRE-like macros
  • now using size_t where appropriate
  • dividendYield is now a Spread instead of a Rate (that is: cost of carry is allowed)
  • RelinkableHandle initialized with an optional Handle
  • Worked around VC++ problems in History constructor
  • added QL_VERSION and QL_HEX_VERSION
  • generic bug fixes
  • removed classes deprecated in 0.2.0

INSTALLATION FACILITIES

  • improved and smoother Win32 binary installer

DOCUMENTATION

  • general re-hauling
  • improved and extended Monte Carlo documentation
  • improved and extended examples
  • Upgraded to Doxygen 1.2.11.1
  • Added man pages for installed executables
  • added docs in Windows Help format
  • added info on "Win32 OnTheEdgeRelease" and "Win32 OnTheEdgeDebug" MS VC++ configurations
  • additional information on how to create a MS VC++ project based on QuantLib

Release 0.2.0 - September 18th, 2001

  • Library:
    • source code moved under ql, better GNU standards
    • gcc build dir can now be separated from source tree
    • gcc 3.0.1 port
    • clean compilation (no warnings)
    • bootstrap script on cygwin
    • Fixed automatic choice of seed for random number generators
    • Actual/actual classes
    • extended platform support (see table in documentation)
    • antithetic variance-reduction technique made possible in Monte Carlo
    • added dividend-Rho greek
    • First implementation of segment integral (to be redesigned)
    • Knuth random generator
    • Cash flows, scheduler, and swap (both generic and simple) added
    • added ICGaussian random generator
    • generic bug fixes
  • Installation facilities:
    • improved and smoother Win32 binary installer
    • better distribution
    • debian packages available
  • Documentation:
    • general re-hauling
    • added examples of using QuantLib and of projects based on QL

Release 0.1.9 - May 31st, 2001

  • Library:
    • Style guidelines introduced (see http://quantlib.org/style.html) and partially enforced
    • full support for Microsoft Visual Studio
    • full support for Linux/gcc
    • momentarily broken support for Metrowerks CodeWarrior
    • autoconfiscation (with specialized config.*.hpp files for platforms without automake/autoconf support)
    • Include files moved under Include/ql folder and referenced as "ql/header.hpp"
    • Implemented expression templates techniques for array algebra optimization
    • Added custom iterators
    • Improved term structure
    • Added Asian, Bermudan, Shout, Cliquet, Himalaya, and Barrier options (all with greeks calculation, control variated where possible)
    • Added Helsinki and Wellington calendars
    • Improved Normal distribution related functions: cumulative, inverse cumulative, etc.
    • Added uniform and Gaussian random number generators
    • Added Statistics class (mean, variance, skewness, downside variance, etc.)
    • Added RiskMeasures class: VAR, average shortfall, expected shortfall, etc.
    • Added RiskStatistics class combining Statistics and RiskMeasures
    • Added sample accumulator for multivariate analysis
    • Added Monte Carlo tools
    • Added matrix-related functions (square root, symmetric Schur decomposition)
    • Added interpolation framework (linear and cubic spline interpolation implemented).
  • Installation facilities:
    • Added Win32 GUI installer for binaries
  • Documentation:
    • support for Doxygen 1.2.7
    • Added man documentation

Release 0.1.1 - November 21st, 2000

Initial release.


QuantLib.org
QuantLib
Hosted by
SourceForge.net Logo
Documentation generated by
doxygen