Skip to content

Latest commit

 

History

History
156 lines (109 loc) · 5.32 KB

News.md

File metadata and controls

156 lines (109 loc) · 5.32 KB

Changes for QuantLib 1.35:

QuantLib 1.35 includes 32 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/33?closed=1.

Portability

  • Future end of support: as announced since release 1.32, this release is the last to support Visual C++ 2015, g++ up to version 6.x, and clang up to version 4; support for those compilers will be dropped in next release, 1.36, about three months from now. From that point onwards, this will allows us to enable the use of C++17 in the code base. 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.

  • Future end of support: at the same time as the above, we'll also remove the configure switch that allows to use boost::tuple, boost::function and boost::bind instead of their std counterparts; the std classes are already the default since release 1.32.

  • The config.hpp generated by cmake now behaves like the one generated by autotools and provides values for the defines so that they can be used in static_assert (@lballabio). Thanks to Tom Anderson (@tomwhoiscontrary) for the heads-up.

Calendars

  • Some fixes for the Chilean calendar; thanks to Eugene Toder (@eltoder).

  • Better NFP/SIFMA rule for Good Friday in U.S. government bond calendar; thanks to Eugene Toder (@eltoder).

  • Updated Indian NSE holidays for 2024; thanks to Fredrik Gerdin Börjesson (@gbfredrik).

  • Some fixes for the Mexican calendar; thanks to Lucas Dias (@lukedays).

Cash flows

  • Added lookback days, lockout days and observation shift to overnight-indexed coupons; thanks to Marcin Rybacki (@marcin-rybacki). The same parameters were propagated to overnight-indexed swaps and to the corresponding helpers.

  • Added the hasFixed method to IBOR coupons that detects whether they have fixed or still need to be forecast; thanks to Tom Anderson (@tomwhoiscontrary).

Instruments

  • Overnight index futures didn't manage a start date falling on a holiday; this is now fixed (@lballabio). Thanks to GitHub user @JustCallMeDavid for the heads-up.

  • Callable bonds didn't account for nominal when calculating OAS; this is now fixed. Thanks to Hristo Raykov (@HristoRaykov).

  • For European swaption, sometimes the price is quoted as a forward price to be paid at exercise time. Such a quoted price can now be used for implied-volatility calculation. The forward price is also returned by the Black and Bachelier swaption engines as an additional result (@lballabio).

Random numbers

  • Added the fast ZigguratGaussianRng generator; thanks to Ralf Konrad Eckel (@ralfkonrad).

Term structures

  • Fix treatment of custom end date in FuturesRateHelper (@lballabio).

  • Add possibility to reset guess in fitted bond curves (@lballabio). Thanks to GitHub user @klin333 for the suggestion.

Utilities

  • Overloaded Handle and RelinkableHandle constructors on lvalue and rvalue references for performance; thanks to Jonathan Sweemer (@sweemer).

Tools

  • Better benchmark utility; thanks to Jacques du Toit (@amd-jadutoit).

Examples

  • Reworked bond example (@lballabio).

Deprecated features

  • Removed features deprecated in version 1.30:

    • the DividendVanillaOption and DividendBarrierOption classes;
    • the constructor of AnalyticDividendEuropeanEngine taking only a process and no dividends;
    • the SwaptionVolCube1, SwaptionVolCube1a, SwaptionVolCube1x and SwaptionVolCube2 typedefs and the empty headers ql/experimental/volatility/swaptionvolcube1.hpp, ql/experimental/volatility/swaptionvolcube1a.hpp and ql/experimental/volatility/swaptionvolcube2.hpp;
    • the setCommon method of CappedFlooredYoYInflationCoupon.
  • Deprecated the constructor of DatedOISRateHelper taking a forward start; use the other overload instead.

  • Deprecated the specialized Bibor9M, Euribor2W, Euribor3W, Euribor2M, Euribor4M, Euribor5M, Euribor7M, Euribor8M, Euribor9M, Euribor10M, Euribor11M, Euribor365_SW, Euribor365_2W, Euribor365_3W, Euribor365_1M, Euribor365_2M, Euribor365_3M, Euribor365_4M, Euribor365_5M, Euribor365_6M, Euribor365_7M, Euribor365_8M, Euribor365_9M, Euribor365_10M, Euribor365_11M, Euribor365_1Y, EURLiborSW, EURLibor2W, EURLibor2M, EURLibor4M, EURLibor5M, EURLibor7M, EURLibor8M, EURLibor9M, EURLibor10M, EURLibor11M; if needed, use the corresponding generic class and pass the tenor (for instance, Euribor(4 * Months)).

  • Renamed EuriborSW to Euribor1W and deprecated the old name.

  • Deprecated the constructor of RelinkableHandle taking a raw pointer.

Thanks go also to Dmitri Goloubentsev (@DmitriGoloubentsev), Eleanor Green (@eleanorTurintech), Tom Anderson (@tomwhoiscontrary), Peter Caspers (@pcaspers), Jonghee Lee (@nistick21), Ralf Konrad Eckel (@ralfkonrad) and the XAD team (@auto-differentiation-dev) for miscellaneous fixes, improvements or reports.