Repository navigation
Tags: quantlib/QuantLib
Tags
Changes for QuantLib 1.44 ========================= As announced, it is no longer possible to choose the Boost implementation of `any` and `optional`. Only the `std` implementation can be used. Features deprecated in release 1.39 were removed in this release; see <lballabio#2659> for a full list. A number of features were deprecated in this release and will be removed in a future release (probably release 1.49): - The `ext::any` and `ext::any_cast` aliases; use `std::any` and `std::any_cast`. - The `ext::optional` and `ext::nullopt` aliases; use `std::optional` and `std::nullopt`. - The constructor of `MakeCapFloor` taking a strike and/or a forward start; use the other constructor plus the `withStrike` and/or `withForwardStart` methods. - The constructors of `MakeCms` taking a spread and/or a forward start; use the other constructor plus the `withIborSpread` and/or `withForwardStart` methods. - The constructors of `MakeOIS` taking a fixed rate and/or a forward start; use the other constructor plus the `withFixedRate` and/or `withForwardStart` methods. - The constructors of `MakeVanillaSwap` taking a fixed rate and/or a forward start; use the other constructor plus the `withFixedRate` and/or `withForwardStart` methods. - The constructors of `InverseCumulativeStudent` taking an accuracy and/or a number of iterations, now unused; use the other constructor. - The unused `nominalTermStructure_` data member of `ZeroCouponInflationSwapHelper`. - The `Italy::Exchange` element of the `Italy::Market` enumeration; the exchange follows the TARGET calendar. - The `QL_DEPRECATED` macro; use `[[deprecated("message")]]` and suggest an alternative in the message. We were still able to test this release with Visual C++ 2017. Due to limitations of our available CI environments, this might not be the case for future releases. Finally, in a couple of release we will be changing the default of the` QL_NULL_AS_FUNCTIONS` macro from undefined to defined. Full list of pull requests -------------------------- All the pull requests merged in this release are listed on its release page at <https://github.com/lballabio/QuantLib/releases/tag/v1.44>. The list of commits since the previous release is available in `ChangeLog.txt`.
Changes for QuantLib 1.43 ========================= Features deprecated in release 1.38 were removed in this release; see <lballabio#2539> for a full list. A number of features were deprecated in this release and will be removed in a future release (probably release 1.48): - The `AsIndex` element of the `CPI::InterpolationType` enumeration; use either `Linear` or `Flat`. - The `YoYInflationIndex::interpolated` method and the corresponding `interpolated_` data member; indexes no longer interpolate, coupons do. - The `Settlement` element of the `Israel::Market` enumeration; use an explicit market (TASE, Shir or Telbor). - Test selection based on speed (that is, passing `--slow`, `--fast` or `--faster` to the test suite) is no longer supported. Full list of pull requests -------------------------- All the pull requests merged in this release are listed on its release page at <https://github.com/lballabio/QuantLib/releases/tag/v1.43>. The list of commits since the previous release is available in `ChangeLog.txt`.
Changes for QuantLib 1.42.1 =========================== This is a bug-fix release removing a regression in the `Gsr` class possibly leading to an infinite notification loop. Thanks to Aleksis Ali Raza for the heads-up. Full list of pull requests -------------------------- All the pull requests merged in this release are listed on its release page at <https://github.com/lballabio/QuantLib/releases/tag/v1.42.1>. The list of commits since the previous release is available in `ChangeLog.txt`.
Changes for QuantLib 1.42 ========================= Removals and deprecations ------------------------- Features deprecated in release 1.37 were removed in this release; see <lballabio#2424> for a full list. A number of features were deprecated in this release and will be removed in a future release (probably release 1.47): - The overloads of `CashFlows::npv`, `BondFunctions::cleanPrice` and `BondFunctions::dirtyPrice` taking a z-spread and a day-count convention; use the overload without a day counter. - The overloads of `CashFlows::zSpread` and `BondFunctions::zSpread` taking a day-count convention; use the overload without a day counter. - The `DefaultLogCubic` and `LogMixedLinearCubic` interpolators; use `KrugerLog` and `KrugerLogMixedLinearCubic` instead. - The `NeumannBC`, `DirichletBC`, `CrankNicolson`, `DMinus`, `DPlus`, `DPlusDMinus`, `DZero`, `ExplicitEuler`, `ImplicitEuler` and `MixedScheme` classes; use the new finite-difference framework instead. - The `ForwardRateStructure` adapter class; inherit from `ZeroYieldStructure` instead (you should implement `zeroYieldImpl` anyway). - The `ql/experimental/volatility/zabr.hpp` header; include `<ql/termstructures/volatility/zabr.hpp>` instead. - The `ql/experimental/volatility/zabrinterpolatedsmilesection.hpp` header; include `<ql/termstructures/volatility/zabrinterpolatedsmilesection.hpp>` instead. - The `ql/experimental/volatility/zabrinterpolation.hpp` header; include `<ql/math/interpolations/zabrinterpolation.hpp>` instead. - The `ql/experimental/volatility/zabrsmilesection.hpp` header; include `<ql/termstructures/volatility/zabrsmilesection.hpp>` instead. - The now empty `ql/experimental/exoticoptions/kirkspreadoptionengine.hpp`, `ql/experimental/exoticoptions/spreadoption.hpp`, `ql/grid.hpp`, `ql/math/transformedgrid.hpp`, `ql/methods/finitedifferences/bsmoperator.hpp`, `ql/methods/finitedifferences/pde.hpp` and `ql/methods/finitedifferences/pdebsm.hpp` headers. Full list of pull requests -------------------------- All the pull requests merged in this release are listed on its release page at <https://github.com/lballabio/QuantLib/releases/tag/v1.42>. The list of commits since the previous release is available in `ChangeLog.txt`.
Changes for QuantLib 1.41 ========================= Removals and deprecations ------------------------- Features deprecated in release 1.36 were removed in this release; see <lballabio#2348> for a full list. A number of features were deprecated in this release and will be removed in a future release: - The `ZeroInflationTermStructure::zeroRate` and `YoYInflationTermStructure::yoyRate` overloads taking an observation lag; if needed, use the other overloads instead (but you should go through the corresponding indexes anyway). - The constructors of `InterpolatedPiecewiseForwardSpreadedTermStructure`, `InterpolatedPiecewiseZeroSpreadedTermStructure` and `ZeroSpreadedTermStructure` taking a day counter; use another constructor instead. - The `ContinuousArithmeticAsianLevyEngine` constructor taking a start date; use the other constructor and pass the start date to the option instead. - The `ql/functional.hpp` header; use `#include <functional>` instead. - The `ql/tuple.hpp` header; use `#include <tuple>` instead. - The now empty `ql/experimental/averageois/arithmeticaverageois.hpp`, `ql/experimental/averageois/arithmeticoisratehelper.hpp`, `ql/experimental/averageois/makearithmeticaverageois.hpp`, `ql/experimental/risk/creditriskplus.hpp` and `ql/experimental/risk/sensitivityanalysis.hpp` headers. Full list of pull requests -------------------------- All the pull requests merged in this release are listed on its release page at <https://github.com/lballabio/QuantLib/releases/tag/v1.41>. The list of commits since the previous release is available in `ChangeLog.txt`.
Changes for QuantLib 1.40 ========================= Removals and deprecations ------------------------- Features deprecated in release 1.35 were removed in this release; see <lballabio#2268> for a full list. A number of features were deprecated in this release and will be removed in a future release: - The overload of the `RangeAccrualFloatersCoupon` constructor taking a `shared_ptr` to a schedule; use the other overload instead. - The method `observationsSchedule` of the same class; use `observationSchedule` instead. - The `<ql/experimental/fx/blackdeltacalculator.hpp>` and `ql/experimental/fx/deltavolquote.hpp` headers; use `<ql/pricingengines/blackdeltacalculator.hpp>` and `<ql/quotes/deltavolquote.hpp>` instead. - The overload of the `CPIBond` and `CPIBondHelper` constructors taking the `growthOnly` parameter; use the other overload instead. - The methods `cumD1`, `cumD2`, `nD1` and `nD2` of the `BlackDeltaCalculator` class; they are internal methods and will be moved to the private section. - The `BlackDeltaPremiumAdjustedSolverClass` and `BlackDeltaPremiumAdjustedMaxStrikeClass`; they were used in the implementation of `BlackDeltaCalculator` but are now obsolete. - The `BootstrapError` class template; use a lambda instead (see <lballabio#2263> for an example). - The `PenaltyFunction` class; use `SimpleCostFunction` instead. - The `Tona` index was renamed to `Tonar`; use the latter instead. Full list of pull requests -------------------------- All the pull requests merged in this release are listed on its release page at <https://github.com/lballabio/QuantLib/releases/tag/v1.40>. The list of commits since the previous release is available in `ChangeLog.txt`.
Changes for QuantLib 1.39: ========================== QuantLib 1.39 includes 28 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/37?closed=1>. Portability ----------- - **Bug in recent Visual C++ versions**: a few recent version of the Visual C++ 2022 compiler (from 17.14.2 to 17.14.8) had a known bug that, unfortunately, affected QuantLib heavily and maed it basically unusable. A fix was released in version 17.14.9; if you’re compiling QuantLib on Windows, make sure you're using at least that version (or, if you can't upgrade, use the Visual C++ 2019 toolset; you can do that from VC++ 2022, as well). - **Change of default:** as already announced, in this release we're switching the default for `ext::any` and `ext::optional` from the Boost implementation to the standard one. Using `boost::any` and `boost::optional` is still possible for the time being but deprecated. Dates, calendars and day-count conventions ------------------------------------------ - Fixed a corner case of `Calendar::advance` when using EOM and the unadjusted business-day convention; thanks to Eugene Toder (@eltoder). - Fixed an error when asking for the serial number of a null date with intraday support enabled (@lballabio); thanks to @UnitedMarsupial for the heads-up. - Added the SHIR fixing calendar (@lballabio). - Fixed the order of operations in the 30/360 USA day-count convention; thanks to Eugene Toder (@eltoder). Indexes ------- - Added the SARON index; thanks to Paolo D'Elia (@paolodelia99). - Added a `CustomIborIndex` class that allows to create an IBOR-like index with custom calendars for value and maturity dates calculations; thanks to Eugene Toder (@eltoder). Instruments and pricing engines ------------------------------- - The `MakeOIS` class now knows the default number of settlement days for a few currencies; thanks to Zak Kraehling (@7astro7). Interest rates -------------- - The `FxSwapRateHelper` class can now be built specifying fixed dates instead of a tenor; thanks to Eugene Toder (@eltoder). - A number of helpers can now take quoted rates either as numbers or `Handle<Quote>` via the use of `std::variant`; this reduces the number of overloaded constructors and in some cases allows the use of keyword arguments when exported to Python. Thanks to Paolo D'Elia (@paolodelia99) and Eugene Toder (@eltoder). - The `OISRateHelper` class can now specify a calendar for the overnight leg; thanks to Eugene Toder (@eltoder). - The `ZeroCouponInflationSwapHelper` class now doesn't need to be passed a nominal curve, which wouldn't affect the results anyway (@lballabio). Volatility ---------- - Optionlet stripperes can now use overnight indexes; thanks to Paolo D'Elia (@paolodelia99). - Added calculation of better guesses for SABR calibration as detailed in the Le Floc'h and Kennedy paper (@lballabio). Deprecated features ------------------- - **Removed** features deprecated in version 1.34: - the overloads of `Bond::yield`, `BondFunctions::atmRate`, `BondFunctions::yield` and `BondFunctions::zSpread` taking a price as a `Real` instead of a `Bond::Price` instance; - the `Swaption::underlyingSwap` and `SwaptionHelper::underlyingSwap` methods; - the constructors of `InflationTermStructure`, `ZeroInflationTermStructure`, `YoYInflationTermStructure`, `InterpolatedZeroInflationCurve`, `InterpolatedYoYInflationCurve`, `PiecewiseZeroInflationCurve` and `PiecewiseYoYInflationCurve` taking an observation lag; - the overload of `InflationTermStructure::setSeasonality` taking no arguments; - the `InflationTermStructure::setBaseRate` method; - the `fixedRateBond` method and `fixedRateBond_` data member of the `FixedRateBondHelper` class, and the `cpiBond` method and `cpiBond_` data member of the `CPIBondHelper` class. - Deprecated the `observationLag` and `hasExplicitBaseDate` methods and the `observationLag_` data member of the `InflationTermStructure` class; inflation term structures always have an explicit base date now. - Deprecated the usage of `boost::any` and `boost::optional`; their standard counterparts are used by default now. - Deprecated the constructor of `ZeroCouponInflationSwapHelper` taking a nominal curve; use the other constructor instead. **Thanks go also** to Imrane Amri (@raneamri), Ralf Konrad Eckel (@ralfkonrad), Joan Carlos Naftanaila (@MiDDiz), Eugene Toder (@eltoder), Paolo D'Elia (@paolodelia99) and Holger Rother (@hrother) for miscellaneous smaller fixes, improvements or reports.
Changes for QuantLib 1.38: ========================== 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>. Portability ----------- - **Future change of default:** as already announced, in the next release we're going to switch the default for `ext::any` and `ext::optional` from the Boost implementation to the standard one. Using `boost::any` and `boost::optional` is still possible for the time being but deprecated. - **Possible future breaking change**: in the next release, the `SimpleQuote` class might be made `final`. If you're inheriting from it, drop us a line. Dates and calendars ------------------- - 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). Indexes ------- - 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). Instruments and pricing engines ------------------------------- - 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` and `AnalyticHolderExtensibleOptionEngine`; - `WriterExtensibleOption` and `AnalyticWriterExtensibleOptionEngine`; - `PartialTimeBarrierOption` and `AnalyticPartialTimeBarrierOptionEngine`; - `TwoAssetBarrierOption` and `AnalyticTwoAssetBarrierEngine`; - `TwoAssetCorrelationOption` and ``AnalyticTwoAssetCorrelationEngine`; - `ContinuousArithmeticAsianLevyEngine`; - `AnalyticPDFHestonEngine`. Term structures --------------- - The `DepositRateHelper` and `FraRateHelper` 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). Deprecated features ------------------- - **Removed** features deprecated in version 1.33: - the constructors of `Currency` and `Currency::Data` taking a format string, the `format` method of the `Currency` class and the `formatString` data member of `Currency::Data`. - 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 in `ql/instruments` and `ql/pricingengines` instead. **Thanks go also** to Eugene Toder (@eltoder), Konstantin Novitsky (@novitk), Tomas Kalibera (@kalibera) and @raneamri for miscellaneous smaller fixes, improvements or reports.
Changes for QuantLib 1.37: ========================== QuantLib 1.37 includes 27 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/35?closed=1>. Portability ----------- - **Future change of default:** as already announced, in the next release we're going to switch the default for `ext::any` and `ext::optional` from the Boost implementation to the standard one. Dates and calendars ------------------- - Added closure for President Carter's funeral to the NYSE calendar; thanks to Dirk Eddelbuettel (@eddelbuettel). - Added distinct Wellington and Auckland variants for New Zealand calendar (@lballabio). Indexes ------- - Improved the performance of the `addFixing` and `addFixings` method in the `Index` class; thanks to Peter Caspers (@pcaspers). - Added the KOFR index; thanks to Jongbong An (@jongbongan). Instruments and pricing engines ------------------------------- - Added Choi pricing engine for Asian options; thanks to Klaus Spanderen (@klausspanderen). - Passing a risk-free overnight index to an asset swap now implies using OIS-like coupons (@lballabio). - Added Bjerksund-Stensland, Operator-Splitting, Deng-Li-Zhou, Choi and n-dim PDE engines for spread options; thanks to Klaus Spanderen (@klausspanderen). - Deng-Li-Zhou, Choi and n-dim PDE engines for basket options; thanks to Klaus Spanderen (@klausspanderen). Term structures --------------- - **Possibly breaking**: better upper and lower bounds for global bootstrap; thanks to Eugene Toder (@eltoder). If you created your own bootstrap traits, you'll need to add `transformDirect` and `transformInverse` methods for them to work with the `GlobalBootstrap` class. - Fitted bond curves can now be passed precomputed parameters without the need for bond helpers (@lballabio). - Use correct guess in SABR swaption vol cube (@lballabio). - OIS rate helpers can now be passed a date-generation rule; thanks to Sotirios Papathanasopoulos (@sophistis42). - Swap rate helpers can now be passed explicit start and end dates; thanks to Eugene Toder (@eltoder). - OIS rate helpers can now be passed explicit start and end dates, making a distinct `DatedOISRateHelper` class unnecessary; thanks to Eugene Toder (@eltoder). Cash flows ---------- - Added new `MultipleResetsCoupon` and `MultipleResetsLeg` classes to manage coupons with multiple resets (@lballabio). They fix and replace `SubPeriodsCoupon` and `SubPeriodsLeg`. Deprecated features ------------------- - **Removed** features deprecated in version 1.32: - the `FixedRateBondForward` class; - the `SampledCurve` and `SampledCurveSet` classes; - the `StepConditionSet` and `BoundaryConditionSet` classes; - the `ParallelEvolver` and `ParallelEvolverTraits` classes; - the `FDVanillaEngine` and `FDMultiPeriodEngine` classes; - the `BSMTermOperator`, `StandardFiniteDifferenceModel`, `StandardSystemFiniteDifferenceModel` and `StandardStepCondition` typedefs; - the `QL_NULL_FUNCTION` macro; - the overloads of `DigitalCmsLeg::withReplication` , `DigitalCmsSpreadLeg::withReplication` and `DigitalIborLeg::withReplication` taking no arguments; - the empty headers `analyticamericanmargrabeengine.hpp`, `analyticcomplexchooserengine.hpp`, `analyticcomplexchooserengine.hpp`, `analyticcompoundoptionengine.hpp`, `analyticeuropeanmargrabeengine.hpp`, `analyticsimplechooserengine.hpp`, `complexchooseroption.hpp`, `compoundoption.hpp`, `margrabeoption.hpp` and `simplechooseroption.hpp` in the `ql/experimental/exoticoptions` folder; - the empty header `ql/experimental/termstructures/multicurvesensitivities.hpp`; - the empty headers `pdeshortrate.hpp` and `shoutcondition.hpp` in the `ql/methods/finitedifferences` folder; - the empty header `ql/models/marketmodels/duffsdeviceinnerproduct.hpp`; - the empty headers `fdconditions.hpp`, `fddividendengine.hpp` and `fdstepconditionengine.hpp` in the `ql/pricingengines/vanilla` folder. - Deprecated the `SubPeriodsCoupon`, `SubPeriodsPricer`, `AveragingRatePricer` and `CompoundingRatePricer` classes; renamed to `MultipleResetsCoupon`, `MultipleResetsPricer`, `AveragingMultipleResetsPricer` and `CompoundingMultipleResetsPricer`, respectively. - Deprecated the `SubPeriodsLeg` class; use `MultipleResetsLeg` instead. - Deprecated the `MultipleResetsCoupon` constructor without a reset schedule; use the other constructor. - Deprecated the `calendar`, `price`, `addQuote`, `addQuotes`, `clearQuotes`, `isValidQuoteDate` and `quotes` methods in the `CommodityIndex` class; use `fixingCalendar`, `fixing`, `addFixing`, `addFixings`, `clearFixings`, `isValidFixingDate` and `timeSeries` instead. - Deprecated the experimental `SpreadOption` and `KirkSpreadOptionEngine` classes; use `BasketOption` and `KirkEngine` instead. - Deprecated the `TransformedGrid` and `LogGrid` classes and the `CenteredGrid`, `BoundedGrid` and `BoundedLogGrid` functions; use the new FD framework instead. - Deprecated the `PdeOperator` and `BSMOperator` classes; use the new FD framework instead. - Deprecated the `PdeSecondOrderParabolic`, `PdeConstantCoeff`, `PdeBSM` and `GenericTimeSetter` classes; use the new FD framework instead. - Deprecated the `hasHistory`, `getHistory`, `clearHistory`, `hasHistoricalFixing` and `setHistory` in the `IndexManager` class; use `Index::hasHistoricalFixing`, `Index::timeSeries`, `Index::clearFixings`, `Index::hasHistoricalFixing` and `Index::addFixings` instead. - Deprecated the `notifier` method in the `IndexManager` class; register with the relevant index instead. - Deprecated one of the `AssetSwap` constructors; use the other overload. - Deprecated the `fcn` and `jacFcn` methods in the `LevenbergMarquardt` class; they are for internal use only. - Deprecated the `indexIsInterpolated` parameter in YoY inflation curve constructors; use another overload. Fixings will be interpolated by coupons instead, so curves and indexes will only be asked for fixing at the start of a month. - Deprecated the `indexIsInterpolated` method and the `indexIsInterpolated_` data member in the `YoYInflationTermStructure` class. - Deprecated the `DatedOISRateHelper` class; use `OISRateHelper` instead. **Thanks go also** to Eugene Toder (@eltoder), Ben Watson (@sonben) and the XAD team (@auto-differentiation-dev) for miscellaneous smaller fixes, improvements or reports.
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-classes` to `configure` now causes `std::any` and `std::optional` to 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::function` and `boost::bind` instead of their `std` counterparts; the `std` classes were already the default since release 1.32. The corresponding classes in the `ext` namespace are now deprecated. - **Future change of default:** in a couple of releases, we're going to switch the default for `ext::any` and `ext::optional` from the Boost implementation to the standard one. Dates and calendars ------------------- - Added `startOfMonth` and `isStartOfMonth` methods to both `Date` and `Calendar`; 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` OvernightIndexedCouponPricer` public and renamed to `CompoundingOvernightIndexedCouponPricer`, and moved `ArithmeticAveragedOvernightIndexedCouponPricer` from experimental to core library; thanks to Ralf Konrad Eckel (@ralfkonrad). Indexes ------- - **Possibly breaking:** inherited the `Index` class from `Observer` and added a virtual `pastFixing` method. If you inherited a class from both `Index` and `Observer`, change your code to avoid inheriting twice from `Observer`. 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 `needsForecast` method that makes the information available. - Added `CPI::laggedYoYRate`; also, `YoYInflationCoupon`, `yoyInflationLeg`, `CappedFlooredYoYInflationCoupon`, `YearOnYearInflationSwap`, `MakeYoYInflationCapFloor`, `YearOnYearInflationSwapHelper`, `YoYOptionletHelper` and the experimental `YoYCapFloorTermPriceSurface` and `InterpolatedYoYCapFloorTermPriceSurface` can now take an explicit `CPI::InterpolationType` parameter instead of relying on the index being defined as interpolated or not (@lballabio). This is a first step in removing interpolation from `YoYInflationIndex` and 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 `OISRateHelper` and `DatedOISRateHelper` classes (@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 `GlobalBootstrap` constructor 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 `BlackVanillaOptionPricer` typedef; - the constructors of `CPICoupon` taking a `spread` parameter, its `spread` method, and its protected `spread_` data member; - the `withSpreads` method of `CPILeg`; - the protected `adjustedFixing` method and `spread_` data member of `CPICouponPricer`; - the `YYAUCPIr`, `YYEUHICPr`, `YYFRHICPr`, `YYUKRPIr`, `YYUSCPIr` and `YYZACPIr` indexes and the experimental `YYGenericCPIr` class; - the constructor of `YoYInflationIndex` taking a `ratio` parameter; - a couple of constructors of `ForwardRateAgreement`; - the empty files `ql/math/curve.hpp`, `ql/math/lexicographicalview.hpp`, `ql/termstructures/yield/drifttermstructure.hpp` and `ql/patterns/composite.hpp`; - the `const_iterator` and `const_value_iterator` typedefs in the `Garch11` class; - the `const_time_iterator`, `const_value_iterator`, `const_reverse_time_iterator` and `const_reverse_value_iterator` typedefs and the `cbegin_values`, `cend_values`, `crbegin_values`, `crend_values`, `cbegin_time`, `cend_time`, `crbegin_time` and `crend_time` methods of the `TimeSeries` class; - the `base`, `increment`, `decrement`, `advance` and `distance_to` method of the `step_iterator` class. - Deprecated `ext::function`, `ext::bind`, `ext::ref`, `ext::cref`, `ext::placeholders`, `ext::tuple`, `ext::make_tuple`, `ext::get` and `ext::tie`; use the corresponding `std::` classes and functions instead. - Deprecated the `ArithmeticAverageOIS`, `MakeArithmeticAverageOIS` and `ArithmeticOISRateHelper` classes; use `OvernightIndexedSwap`, `MakeOIS` and `OISRateHelper` instead. - Deprecated the `YoYInflationCoupon`, `yoyInflationLeg`, `CappedFlooredYoYInflationCoupon`, `YearOnYearInflationSwap`, `MakeYoYInflationCapFloor`, `YearOnYearInflationSwapHelper`, `YoYOptionletHelper`, `YoYCapFloorTermPriceSurface` and `InterpolatedYoYCapFloorTermPriceSurface` constructors that don't take an explicit CPI interpolation type. - Deprecated the `getInfo` method of `LevenbergMarquardt`; inspect the result of `minimize` instead. - Deprecated the `ql/experimental/averageois/averageoiscouponpricer.hpp` file; include `ql/cashflows/overnightindexedcouponpricer.hpp` instead. - Deprecated the somewhat out-of-scope and experimental `CreditRiskPlus`, `SensitivityAnalysis`, `aggregateNPV`, `parallelAnalysis` and `bucketAnalysis`. **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.
PreviousNext