QuantLib 1.25 includes 35 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/21?closed=1.
-
End of support: this release and the next will be the last two to support Visual Studio 2013.
-
Added a few CMake presets for building the library (thanks to Jonathan Sweemer).
-
When built and installed through CMake, the library now installs a
QuantLibConfig.cmake
file that allows other CMake projects to find and use QuantLib (thanks to Jonathan Sweemer).
-
Fixed the accrual calculation in overnight-indexed coupons (thanks to Mohammad Shojatalab).
-
Fixed fixing-days usage in
SubPeriodsCoupon
class (thanks to Marcin Rybacki). -
IBOR coupons fixed in the past no longer need a forecast curve to return their amount.
- Important change: inflation indexes inherited from the
ZeroInflationIndex
class no longer rely on their forecast curve for interpolation. For coupons that already took care of interpolation (as in the case ofCPICoupon
andZeroInflationCashFlow
) this should not change the results. In other cases, figures will change but should be more correct as the interpolation is now performed according to market conventions. Also, most inflation curves now assume that the index is not implemented. Year-on-year inflation indexes and curves are not affected.
-
Breaking change: convertible bonds were moved out of the
ql/experimental
folder. Also, being market values and not part of the contract, dividends and credit spread were moved from the bond to theBinomialConvertibleEngine
class (thanks to Lew Wei Hao). -
The
ForwardRateAgreement
no longer inherits fromForward
. This also made it possible to implement theamount
method returning the expected cash settlement (thanks to Lew Wei Hao). The methods fromForward
were kept available but deprecated so code using them won't break. Client code might break if it performed casts toForward
.
- Fixed formula for discount bond option in CIR++ model (thanks to Magnus Mencke).
- It is now possible to use normal volatilities in SABR smile sections,
and thus in the
SwaptionVolCube1
class (thanks to Lew Wei Hao).
- Added Chinese holidays for 2022 (thanks to Cheng Li).
- Added a number of African, American, Asian and European currencies from
Quaternion's
QuantExt
project (thanks to Ole Bueker).
The ql/experimental
folder contains code whose interface is not
fully stable, but is released in order to get user
feedback. Experimental classes make no guarantees of backward
compatibility; their interfaces might change in future releases.
-
Added experimental rate helpers for LIBOR-LIBOR and Overnight-LIBOR basis swaps.
-
Renamed
WulinYongDoubleBarrierEngine
toSuoWangDoubleBarrierEngine
(thanks to Adityakumar Sinha for the fix and Ruilong Xu for the heads-up).
-
Deprecated the constructors of zero-coupon inflation term structures taking an
indexIsInterpolated
boolean argument. -
Deprecated a number of methods in the
ForwardRateAgreement
class that used to be inherited fromForward
. -
Deprecated a couple of constructors in the
SofrFutureRateHelper
class. -
Deprecated the
WulinYongDoubleBarrierEngine
alias forSuoWangDoubleBarrierEngine
. -
Deprecated the protected
spreadLegValue_
data member in theBlackIborCouponPricer
class.
Thanks go also to Tom Anderson, Francois Botha, Matthew Kolbe, Benson Luk, Marcin Rybacki, Henning Segger, Klaus Spanderen, and GitHub users @jxcv0 and @azsrz for smaller fixes, enhancements and bug reports.