QuantLib 1.37 includes 26 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.
- 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.
-
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).
-
Improved the performance of the
addFixing
andaddFixings
method in theIndex
class; thanks to Peter Caspers (@pcaspers). -
Added the KOFR index; thanks to Jongbong An (@jongbongan).
-
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).
-
Better upper and lower bounds for global bootstrap; thanks to Eugene Toder (@eltoder).
-
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).
- Added new
MultipleResetsCoupon
andMultipleResetsLeg
classes to manage coupons with multiple resets (@lballabio). They fix and replaceSubPeriodsCoupon
andSubPeriodsLeg
.
-
Removed features deprecated in version 1.32:
- the
FixedRateBondForward
class; - the
SampledCurve
andSampledCurveSet
classes; - the
StepConditionSet
andBoundaryConditionSet
classes; - the
ParallelEvolver
andParallelEvolverTraits
classes; - the
FDVanillaEngine
andFDMultiPeriodEngine
classes; - the
BSMTermOperator
,StandardFiniteDifferenceModel
,StandardSystemFiniteDifferenceModel
andStandardStepCondition
typedefs; - the
QL_NULL_FUNCTION
macro; - the overloads of
DigitalCmsLeg::withReplication
,DigitalCmsSpreadLeg::withReplication
andDigitalIborLeg::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
andsimplechooseroption.hpp
in theql/experimental/exoticoptions
folder; - the empty header
ql/experimental/termstructures/multicurvesensitivities.hpp
; - the empty headers
pdeshortrate.hpp
andshoutcondition.hpp
in theql/methods/finitedifferences
folder; - the empty header
ql/models/marketmodels/duffsdeviceinnerproduct.hpp
; - the empty headers
fdconditions.hpp
,fddividendengine.hpp
andfdstepconditionengine.hpp
in theql/pricingengines/vanilla
folder.
- the
-
Deprecated the
SubPeriodsCoupon
,SubPeriodsPricer
,AveragingRatePricer
andCompoundingRatePricer
classes; renamed toMultipleResetsCoupon
,MultipleResetsPricer
,AveragingMultipleResetsPricer
andCompoundingMultipleResetsPricer
, respectively. -
Deprecated the
SubPeriodsLeg
class; useMultipleResetsLeg
instead. -
Deprecated the
MultipleResetsCoupon
constructor without a reset schedule; use the other constructor. -
Deprecated the
calendar
,price
,addQuote
,addQuotes
,clearQuotes
,isValidQuoteDate
andquotes
methods in theCommodityIndex
class; usefixingCalendar
,fixing
,addFixing
,addFixings
,clearFixings
,isValidFixingDate
andtimeSeries
instead. -
Deprecated the experimental
SpreadOption
andKirkSpreadOptionEngine
classes; useBasketOption
andKirkEngine
instead. -
Deprecated the
TransformedGrid
andLogGrid
classes and theCenteredGrid
,BoundedGrid
andBoundedLogGrid
functions; use the new FD framework instead. -
Deprecated the
PdeOperator
andBSMOperator
classes; use the new FD framework instead. -
Deprecated the
PdeSecondOrderParabolic
,PdeConstantCoeff
,PdeBSM
andGenericTimeSetter
classes; use the new FD framework instead. -
Deprecated the
hasHistory
,getHistory
,clearHistory
,hasHistoricalFixing
andsetHistory
in theIndexManager
class; useIndex::hasHistoricalFixing
,Index::timeSeries
,Index::clearFixings
,Index::hasHistoricalFixing
andIndex::addFixings
instead. -
Deprecated the
notifier
method in theIndexManager
class; register with the relevant index instead. -
Deprecated one of the
AssetSwap
constructors; use the other overload. -
Deprecated the
fcn
andjacFcn
methods in theLevenbergMarquardt
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 theindexIsInterpolated_
data member in theYoYInflationTermStructure
class. -
Deprecated the
DatedOISRateHelper
class; useOISRateHelper
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.