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::any
andext::optional
from the Boost implementation to the standard one. Usingboost::any
andboost::optional
is still possible for the time being but deprecated. -
Possible future breaking change: in the next release, the
SimpleQuote
class might be madefinal
. If you're inheriting from it, drop us a line.
-
The
Schedule
class 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
interpolated
flag (@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
OvernightIndexFuture
class would not receive notifications when the convexity quote or the evaluation date changed; this is now fixed. Thanks to Eugene Toder (@eltoder). -
The experimental
BlackCallableFixedRateBondEngine
wouldn'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):
HolderExtensibleOption
andAnalyticHolderExtensibleOptionEngine
;WriterExtensibleOption
andAnalyticWriterExtensibleOptionEngine
;PartialTimeBarrierOption
andAnalyticPartialTimeBarrierOptionEngine
;TwoAssetBarrierOption
andAnalyticTwoAssetBarrierEngine
;TwoAssetCorrelationOption
and ``AnalyticTwoAssetCorrelationEngine`;ContinuousArithmeticAsianLevyEngine
;AnalyticPDFHestonEngine
.
-
The
DepositRateHelper
andFraRateHelper
classes 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
GlobalBootstrap
class 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
Currency
andCurrency::Data
taking a format string, theformat
method of theCurrency
class and theformatString
data member ofCurrency::Data
.
- the constructors of
-
Deprecated the constructors of year-on-year inflation indexes taking an
interpolated
argument; use the other constructors instead. -
Deprecated the header files in
ql/experimental/exoticoptions
for some classes moved to the core library (see above); use the corresponding new headers inql/instruments
andql/pricingengines
instead.
Thanks go also to Eugene Toder (@eltoder), Konstantin Novitsky (@novitk), Tomas Kalibera (@kalibera) and @raneamri for miscellaneous smaller fixes, improvements or reports.