QuantLib: a free/open-source library for quantitative finance
Authors/Creators
Description
QuantLib 1.30 includes 34 pull requests from several contributors.
Some of the most notable changes are included below. A detailed list of changes is available in ChangeLog.txt and at https://github.com/lballabio/QuantLib/milestone/27?closed=1.
Portability- Future end of support: as announced in the notes for the previous release, after this release and the next, using
std::tuple,std::functionandstd::bind(instead of theirboostcounterparts) will become the default. If you're usingext::tupleetc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose theboostversions via a configure switch for a while; but we do suggest you start usingext::tupleetc. in the meantime. - CMake builds now use a stricter warning level by default; thanks to Ralf Konrad (@ralfkonrad).
- Is it now possible to use
std::anyandstd::optional(and the relatedstd::any_castandstd::nullopt) instead of theirboostcounterparts by setting new compilation switches; thanks to Jonathan Sweemer (@sweemer). Using thestdclasses requires C++17. We expect theboostclasses to remain the default for a while, but in the meantime we encourage to start usingext::anyandext::optionalin preparation for a new default.
- Good Friday 2023 is now a business day for the US government bond calendar; thanks to Anastasiia Shumyk (@ashumyk).
- Added specialized Australian calendar for ASX; thanks to Trent Maetzold (@trentmaetzold).
- Fixed Turkish holidays between 2019 and 2023; thanks to Fredrik Gerdin Börjesson (@gbfredrik).
- Added a few missing holidays to Danish calendar; thanks to Fredrik Gerdin Börjesson (@gbfredrik).
- Added the Matariki holiday to the New Zealand calendar; thanks to Jake Heke (@jakeheke75).
- Added a new equity cash flow class to model equity legs in total return swaps; thanks to Marcin Rybacki (@marcin-rybacki). Quanto pricing is also supported.
- Added an overloaded constructor for CPI coupons that allows to specify a base date instead of a base CPI value; thanks to Matthias Groncki (@mgroncki).
- Added a new total-return swap; thanks to Marcin Rybacki (@marcin-rybacki). An equity-index class was also added to support this instrument.
- The analytic engine for barrier options would return NaN for low values of volatility; this is now fixed (@lballabio).
- The
VanillaOptionandBarrierOptionclasses can now be used to model vanilla and barrier options with discrete dividends; the future dividends (not being part of the terms and conditions of the contract) should be passed to the pricing engine instead (@lballabio). - Added analytical Greeks to Bjerksund-Stensland engine; thanks to Klaus Spanderen (@klausspanderen).
- Added UKHICP inflation index; thanks to Fredrik Gerdin Börjesson (@gbfredrik).
- Renamed
SwaptionVolCube1,SwaptionVolCube1x,SwaptionVolCube1aandSwaptionVolCube2toSabrSwaptionVolatilityCube,XabrSwaptionVolatilityCube,NoArbSabrSwaptionVolatilityCubeandInterpolatedSwaptionVolatilityCube, respectively; thanks to Ignacio Anguita (@IgnacioAnguita). The old names are deprecated but still available for a few releases. - Ensure that inflation curves are re-bootstrapped correctly when seasonality is added (@lballabio).
- Moved the Heston SLV model from experimental to main; thanks to Klaus Spanderen (@klausspanderen).
- Added a few overloads to Array and Matrix operators taking rvalue references for increased speed; thanks to Jonathan Sweemer (@sweemer).
- Removed features deprecated in version 1.25:
- the protected
spreadLegValue_data member ofBlackIborCouponPricer; - the
WulinYongDoubleBarrierEnginealias forSuoWangDoubleBarrierEngine; - the
settlementDate,incomeDiscountCurve,spotIncome,spotValue,impliedYieldandforwardValuemethods ofForwardRateAgreement, as well as its protectedunderlyingIncome_,underlyingSpotValue_,settlementDays_,payoff_andincomeDiscountCurve_data members; - constructors for
InflationTermStructure,ZeroInflationTermStructure,InterpolatedZeroInflationCurve,PiecewiseZeroInflationCurvetaking anindexIsInterpolatedparameter; - the
indexIsInterpolatedmethod ofInflationTermStructureand its protectedindexIsInterpolated_data member; - some overloaded constructors of
SofrFutureRateHelper.
- the protected
- Deprecated the
DividendVanillaOptionandDividendBarrierOptionclasses; useVanillaOptionandBarrierOptioninstead (see above). - Deprecated the constructor of
AnalyticDividendEuropeanEnginethat takes no dividend information; use the other overload instead. - Deprecated the names
SwaptionVolCube1,SwaptionVolCube1x,SwaptionVolCube1aandSwaptionVolCube2(see above). - Deprecated the protected
setCommonmethod ofCappedFlooredYoYInflationCoupon.
Thanks go also to Jonathan Sweemer (@sweemer), the Xcelerit Dev Team (@xcelerit-dev), Fredrik Gerdin Börjesson (@gbfredrik), Klaus Spanderen (@klausspanderen) and Peter Caspers (@pcaspers) for a number of smaller fixes and improvements, and to Matthias Groncki (@mgroncki) and @lukey8767 for raising issues.
New Contributors- @jakeheke75 made their first contribution in https://github.com/lballabio/QuantLib/pull/1564
- @trentmaetzold made their first contribution in https://github.com/lballabio/QuantLib/pull/1599
- @ashumyk made their first contribution in https://github.com/lballabio/QuantLib/pull/1620
Full Changelog: https://github.com/lballabio/QuantLib/compare/QuantLib-v1.29...QuantLib-v1.30
Notes
Files
lballabio/QuantLib-QuantLib-v1.30.zip
Files
(10.9 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:f760541a621ed1f5fde241dc145ce811
|
10.9 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/lballabio/QuantLib/tree/QuantLib-v1.30 (URL)