QuantLib: a free/open-source library for quantitative finance
Authors/Creators
Description
Downloads:
Changes for QuantLib 1.36:
QuantLib 1.36 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/34?closed=1.
Portability
- New minimum C++ standard: starting from this release, a compiler supporting C++17 is required. Passing
--enable-std-classestoconfigurenow causesstd::anyandstd::optionalto be used. - End of support: related to the above, and as announced since release 1.32, this release drops support Visual C++ 2015, g++ up to version 6.x, and clang up to version 4. Also, given the testing environments available on GitHub actions, clang 5 and 6 are no longer available to us for testing, and the same holds for g++ 7. Therefore, it is suggested to upgrade to a newer version if possible.
- End of support: this release also removes the configure switch that allowed to use
boost::tuple,boost::functionandboost::bindinstead of theirstdcounterparts; thestdclasses were already the default since release 1.32. The corresponding classes in theextnamespace are now deprecated. - Future change of default: in a couple of releases, we're going to switch the default for
ext::anyandext::optionalfrom the Boost implementation to the standard one.
Dates and calendars
- Added
startOfMonthandisStartOfMonthmethods to bothDateandCalendar; thanks to Francois Botha (@igitur). - Added specialized Warsaw Stock Exchange (WSE) calendar to Poland; thanks to Marcin Bogusz (@marcinfair).
- Added a new one-off holiday to South Korean calendar; thanks to Jongbong An (@jongbongan).
Cash flows
- Made
OvernightIndexedCouponPricerpublic and renamed toCompoundingOvernightIndexedCouponPricer, and movedArithmeticAveragedOvernightIndexedCouponPricerfrom experimental to core library; thanks to Ralf Konrad Eckel (@ralfkonrad).
Indexes
- Possibly breaking: inherited the
Indexclass fromObserverand added a virtualpastFixingmethod. If you inherited a class from bothIndexandObserver, change your code to avoid inheriting twice fromObserver. Thanks to Ralf Konrad Eckel (@ralfkonrad). - Added currency information to
EquityIndex; thanks to Ralf Konrad Eckel (@ralfkonrad).
Inflation
- Inflation indexes are now better at deciding when to forecast (@lballabio); also added a
needsForecastmethod that makes the information available. - Added
CPI::laggedYoYRate; also,YoYInflationCoupon,yoyInflationLeg,CappedFlooredYoYInflationCoupon,YearOnYearInflationSwap,MakeYoYInflationCapFloor,YearOnYearInflationSwapHelper,YoYOptionletHelperand the experimentalYoYCapFloorTermPriceSurfaceandInterpolatedYoYCapFloorTermPriceSurfacecan now take an explicitCPI::InterpolationTypeparameter instead of relying on the index being defined as interpolated or not (@lballabio). This is a first step in removing interpolation fromYoYInflationIndexand moving it into the coupons where it belongs. - Added method to YoY inflation index returning the date of the last available fixing (@lballabio).
Term structures
- Allow passing a pricer to the constructor of the
OISRateHelperandDatedOISRateHelperclasses (@lballabio); this makes it possible to use arithmetic averaging of overnight rates. - Allow custom constraint in non-linear fitting methods; thanks to Kai Lin (@klin333).
- Allow creating a swap helper with frequency "Once" (@lballabio).
- The
GlobalBootstrapconstructor can now take an optional optimizer and end criteria, allowing for better configuration; thanks to Eugene Toder (@eltoder).
Volatility
- Added exact Bachelier implied-vol formula from Jäckel's paper; thanks to Peter Caspers (@pcaspers).
Deprecated features
- Removed features deprecated in version 1.31:
- the
BlackVanillaOptionPricertypedef; - the constructors of
CPICoupontaking aspreadparameter, itsspreadmethod, and its protectedspread_data member; - the
withSpreadsmethod ofCPILeg; - the protected
adjustedFixingmethod andspread_data member ofCPICouponPricer; - the
YYAUCPIr,YYEUHICPr,YYFRHICPr,YYUKRPIr,YYUSCPIrandYYZACPIrindexes and the experimentalYYGenericCPIrclass; - the constructor of
YoYInflationIndextaking aratioparameter; - a couple of constructors of
ForwardRateAgreement; - the empty files
ql/math/curve.hpp,ql/math/lexicographicalview.hpp,ql/termstructures/yield/drifttermstructure.hppandql/patterns/composite.hpp; - the
const_iteratorandconst_value_iteratortypedefs in theGarch11class; - the
const_time_iterator,const_value_iterator,const_reverse_time_iteratorandconst_reverse_value_iteratortypedefs and thecbegin_values,cend_values,crbegin_values,crend_values,cbegin_time,cend_time,crbegin_timeandcrend_timemethods of theTimeSeriesclass; - the
base,increment,decrement,advanceanddistance_tomethod of thestep_iteratorclass.
- the
- Deprecated
ext::function,ext::bind,ext::ref,ext::cref,ext::placeholders,ext::tuple,ext::make_tuple,ext::getandext::tie; use the correspondingstd::classes and functions instead. - Deprecated the
ArithmeticAverageOIS,MakeArithmeticAverageOISandArithmeticOISRateHelperclasses; useOvernightIndexedSwap,MakeOISandOISRateHelperinstead. - Deprecated the
YoYInflationCoupon,yoyInflationLeg,CappedFlooredYoYInflationCoupon,YearOnYearInflationSwap,MakeYoYInflationCapFloor,YearOnYearInflationSwapHelper,YoYOptionletHelper,YoYCapFloorTermPriceSurfaceandInterpolatedYoYCapFloorTermPriceSurfaceconstructors that don't take an explicit CPI interpolation type. - Deprecated the
getInfomethod ofLevenbergMarquardt; inspect the result ofminimizeinstead. - Deprecated the
ql/experimental/averageois/averageoiscouponpricer.hppfile; includeql/cashflows/overnightindexedcouponpricer.hppinstead. - Deprecated the somewhat out-of-scope and experimental
CreditRiskPlus,SensitivityAnalysis,aggregateNPV,parallelAnalysisandbucketAnalysis.
Thanks go also to Jonathan Sweemer (@sweemer), Eugene Toder (@eltoder), Ralf Konrad Eckel (@ralfkonrad), Tony Wang (@twan3617) and the XAD team (@auto-differentiation-dev) for miscellaneous smaller fixes, improvements or reports.
New Contributors
- @raneamri made their first contribution in https://github.com/lballabio/QuantLib/pull/2056
- @twan3617 made their first contribution in https://github.com/lballabio/QuantLib/pull/2057
- @klin333 made their first contribution in https://github.com/lballabio/QuantLib/pull/2059
- @marcinfair made their first contribution in https://github.com/lballabio/QuantLib/pull/2063
- @jongbongan made their first contribution in https://github.com/lballabio/QuantLib/pull/2086
Full Changelog: https://github.com/lballabio/QuantLib/compare/v1.35...v1.36
Notes
Files
lballabio/QuantLib-v1.36.zip
Files
(10.8 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:f722710f52cd0d48ff6564199b6afdac
|
10.8 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/lballabio/QuantLib/tree/v1.36 (URL)