QuantLib 1.38 includes 29 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/36?closed=1.
-
Future change of default: as already announced, in the next release we're going to switch the default for
ext::anyandext::optionalfrom the Boost implementation to the standard one. Usingboost::anyandboost::optionalis still possible for the time being but deprecated. -
Possible future breaking change: in the next release, the
SimpleQuoteclass might be madefinal. If you're inheriting from it, drop us a line.
-
The
Scheduleclass now honors the passed business day convention when end-of-month is enabled (@lballabio). Previously, enabling end-of-month caused it to always use the Modified Following convention. -
Added Chinese holidays for 2025; thanks to Cheng Li (@wegamekinglc).
-
Added Thailand holidays for 2025; thanks to Paolo D'Elia (@paolodelia99).
-
Added Hong Kong holidays for 2025; thanks to Ka Wai Lee (@kawailee).
-
Year-or-year inflation indexes can (and should) now be built without an
interpolatedflag (@lballabio). As for zero inflation indexes, the interpolation was moved into the coupons using the indexes. -
Fixed obsolete conventions for the (now discountinued) EUR LIBOR index; thanks to Eugene Toder (@eltoder).
-
Added implementation of partial-time barrier put options; thanks to Paolo D'Elia (@paolodelia99).
-
The
OvernightIndexFutureclass would not receive notifications when the convexity quote or the evaluation date changed; this is now fixed. Thanks to Eugene Toder (@eltoder). -
The experimental
BlackCallableFixedRateBondEnginewouldn't take discount correctly into account when evaluation the embedded option; this is now fixed. Thanks to @RobertS548 for the heads-up. -
Moved a few instruments and engines from the experimental folder to the core library (@lballabio):
HolderExtensibleOptionandAnalyticHolderExtensibleOptionEngine;WriterExtensibleOptionandAnalyticWriterExtensibleOptionEngine;PartialTimeBarrierOptionandAnalyticPartialTimeBarrierOptionEngine;TwoAssetBarrierOptionandAnalyticTwoAssetBarrierEngine;TwoAssetCorrelationOptionand ``AnalyticTwoAssetCorrelationEngine`;ContinuousArithmeticAsianLevyEngine;AnalyticPDFHestonEngine.
-
The
DepositRateHelperandFraRateHelperclasses can now be built specifying fixed dates instead of a tenor; thanks to Eugene Toder (@eltoder). -
The cross-currency basis-swap rate helpers can now be passed an overnight index and a corresponding payment frequency; it is also possible to pass a payment lag. Thanks to @kp9991-git.
-
The additional penalty functions passed to the
GlobalBootstrapclass can now take the curve nodes as arguments; thanks to Eugene Toder (@eltoder). This makes it possible, for example, to penalize gradients to make the curve smoother. It is also possible to specify additional variables to be optimized, e.g., futures convexity adjustments. -
Added a piecewise forward-spreaded term structure; thanks to Paolo D'Elia (@paolodelia99).
-
Removed features deprecated in version 1.33:
- the constructors of
CurrencyandCurrency::Datataking a format string, theformatmethod of theCurrencyclass and theformatStringdata member ofCurrency::Data.
- the constructors of
-
Deprecated the constructors of year-on-year inflation indexes taking an
interpolatedargument; use the other constructors instead. -
Deprecated the header files in
ql/experimental/exoticoptionsfor some classes moved to the core library (see above); use the corresponding new headers inql/instrumentsandql/pricingenginesinstead.
Thanks go also to Eugene Toder (@eltoder), Konstantin Novitsky (@novitk), Tomas Kalibera (@kalibera) and @raneamri for miscellaneous smaller fixes, improvements or reports.