Bot releases are hidden (Show)
QuantLib 1.33 includes 43 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/31?closed=1.
boost::tuple
, boost::function
and boost::bind
instead of their std
counterparts; the std
classes are already the default since release 1.32.MakeOIS
and OISRateHelper
; thanks to Eugene Toder (@eltoder).CallableBond::impliedVolatility
taking an NPV as target.AmortizingFixedRateBond
taking a sinking frequency.AmortizingFixedRateBond
taking a vector of InterestRate
instances.FixedRateBond
taking start date, maturity date etc. instead of a schedule.FixedRateBond
taking a vector of InterestRate
instances.FloatingRateBond
taking start date, maturity date etc. instead of a schedule.CPICapFloor
taking a handle to an interest-rate index.CPICapFloor::inflationIndex
method.infIndex
data member of the CPICapFloor::arguments
class.SabrSmileSection
.ql/experimental/amortizingbonds/amortizingcmsratebond.hpp
, ql/experimental/amortizingbonds/amortizingfixedratebond.hpp
and ql/experimental/amortizingbonds/amortizingfloatingratebond.hpp
.Currency
and Currency::Data
taking a format string, and the Currency::format
method.Thanks go also to Yi Jiang (@yjian012), Hoang Giap Vu (@hgv79116), Jonathan Sweemer (@sweemer) and the XAD team (@auto-differentiation-dev) for smaller fixes and improvements.
Full Changelog: https://github.com/lballabio/QuantLib/compare/v1.32...v1.33
Published by lballabio 10 months ago
QuantLib-1.33-rc.tar.gz
QuantLib-1.33-rc.zip
QuantLib-SWIG-1.33-rc.tar.gz
QuantLib-SWIG-1.33-rc.zip
Please check this release and report any problems to the QuantLib mailing list.
Published by lballabio about 1 year ago
QuantLib 1.32 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/29?closed=1.
evaluationDate_
data member of the SwaptionVolatilityDiscrete
class was renamed to cachedReferenceDate_
.boost::tuple
, boost::function
and boost::bind
instead of their std
counterparts; starting from this release, the std
classes are already the default.FixedVsFloatingSwap
for vanilla swap and overnight-indexed swaps; this will be used in the future to help a few existing swap engines support OIS (@lballabio).redemptions
argument to amortizing bond constructors. This allows them to be used for pools of loans where a certain proportion of the underlying loans are subject to defaults and losses. Thanks to Gyan Sinha (@gyansinha).QL_NULL_INTEGER
, QL_NULL_REAL
, QL_NOEXCEPT
, QL_CONSTEXPR
and QL_USE_STD_UNIQUE_PTR
macros.MultiCurveSensitivities
class.constant
, identity
, square
, cube
, fourth_power
, add
, subtract
, subtract_from
, multiply_by
, divide
, divide_by
, less_than
, greater_than
, greater_or_equal_to
, not_zero
, not_null
, everywhere
, nowhere
, equal_within
, clipped_function
, clip
, composed_function
, compose
, binary_compose3_function
and compose3
functors.PdeShortRate
, ShoutCondition
, FDShoutCondition
, FDStepConditionEngine
and FDEngineAdapter
classes from the old finite-differences framework.dsd::inner_product
function.FDDividendEngineBase
, FDDividendEngineMerton73
, FDDividendEngineShiftScale
and FDDividendEngine
pricing engines.ql/auto_ptr.hpp
, ql/math/initializers.hpp
, ql/methods/finitedifferences/americancondition.hpp
, ql/methods/finitedifferences/onefactoroperator.hpp
, ql/pricingengines/vanilla/fddividendshoutengine.hpp
, ql/pricingengines/vanilla/fdshoutengine.hpp
and ql/utilities/disposable.hpp
.withReplication
method in the DigitalIborLeg
, DigitalCmsLeg
and DigitalCmsSpreadLeg
classes that takes no arguments; use the other overload instead.StandardFiniteDifferenceModel
, StandardSystemFiniteDifferenceModel
and StandardStepCondition
typedefs; define your own typedefs if needed.FDVanillaEngine
, FDMultiPeriodEngine
, StepConditionSet
, ParallelEvolverTraits
, ParallelEvolver
and SampledCurve
classes and the BSMTermOperator
and SampledCurveSet
typedefs; use the new finite-differences framework instead.QL_NULL_FUNCTION
macro; to check if a function is empty, use it in a bool context instead.ql/experimental/exoticoptions/margrabeoption.hpp
, ql/experimental/exoticoptions/analyticcomplexchooserengine.hpp
, ql/experimental/exoticoptions/analyticeuropeanmargrabeengine.hpp
, ql/experimental/exoticoptions/analyticcompoundoptionengine.hpp
, ql/experimental/exoticoptions/simplechooseroption.hpp
, ql/experimental/exoticoptions/compoundoption.hpp
, ql/experimental/exoticoptions/analyticamericanmargrabeengine.hpp
, ql/experimental/exoticoptions/analyticsimplechooserengine.hpp
, ql/experimental/exoticoptions/complexchooseroption.hpp
, ql/experimental/termstructures/multicurvesensitivities.hpp
, ql/methods/finitedifferences/shoutcondition.hpp
, ql/methods/finitedifferences/pdeshortrate.hpp
, ql/pricingengines/vanilla/fddividendengine.hpp
, ql/pricingengines/vanilla/fdstepconditionengine.hpp
, ql/pricingengines/vanilla/fdconditions.hpp
and ql/models/marketmodels/duffsdeviceinnerproduct.hpp
.Thanks go also to Jonathan Sweemer (@sweemer), Ralf Konrad (@ralfkonrad), Klaus Spanderen (@klausspanderen), Peter Caspers (@pcaspers), Tom Anderson (@tomwhoiscontrary), Fredrik Gerdin Börjesson (@gbfredrik), Guillaume Horel (@thrasibule) and the XAD team (@auto-differentiation-dev) for a number of smaller fixes and improvements.
Full Changelog: https://github.com/lballabio/QuantLib/compare/v1.31.1...v1.32
Published by lballabio about 1 year ago
QuantLib-1.32-rc.tar.gz
QuantLib-1.32-rc.zip
QuantLib-SWIG-1.32-rc.tar.gz
QuantLib-SWIG-1.32-rc.zip
This is a prerelease for version 1.32. If you have some time, please try them out and report any problems to the QuantLib mailing list.
Published by lballabio about 1 year ago
QuantLib 1.31.1 is a bug-fix release for QuantLib 1.31.
It fixes a regression that could cause a segmentation fault when bootstrapping an interest-rate curve using OIS rates.
Details are available at https://github.com/lballabio/QuantLib/milestone/30?closed=1.
Full Changelog: https://github.com/lballabio/QuantLib/compare/v1.31...v1.31.1
Published by lballabio over 1 year ago
QuantLib 1.31 includes a record 68 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/28?closed=1.
std::tuple
, std::function
and std::bind
(instead of their boost
counterparts) will become the default. If you're using ext::tuple
etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the boost
versions via a configure switch for a while; but we do suggest you start using ext::tuple
etc. in the meantime.quantlib-config
script that can be used to retrieve flags for compiling QuantLib-dependent projects; thanks to Christian Köhnenkamp (@kohnech).LazyObject
class forwards only one notification after recalculating and silently ignores the others. In some edge cases, this could lead to objects not being updated. It's now possible to enable a different behavior where all notifications are forwarded; the new behavior can be chosen at compile time via the configure option --disable-faster-lazy-objects
(or disabling QL_FASTER_LAZY_OBJECTS
in cmake or userconfig.hpp
) or at run time by calling LazyObject::Defaults::instance().alwaysForwardNotifications()
. This might cause a slow down, so you're invited to try it out and report on the mailing list. If there are no problems, the new behavior might become the default in future releases. Also, a new configure option --enable-throwing-in-cycles
(QL_THROW_IN_CYCLES
in cmake or userconfig.hpp
) is optionally available; when both this option and the new behavior are enabled, notifications cycles involving a lazy object will throw an exception. It is suggested to try enabling the option and removing such loops, if any. Thanks to Peter Caspers (@pcaspers) for the change and to Ralf Konrad (@ralfkonrad), Jonathan Sweemer (@sweemer) and GitHub user @djkrystul for feedback.--run_test=<filter>
option down to the underlying Boost.Test implementation. Thanks to Eugene Toder (@eltoder).Removed features deprecated in version 1.26:
CPICoupon
constructor taking a number of fixing days and its indexObservation
, adjustedFixing
and indexFixing(date)
methods.CPICashFlow
constructor taking a fixing date.withFixingDays
methods of CPILeg
.ZeroInflationCashFlow
constructor taking a calendar and business-day convention.LsmBasisSystem::PolynomType
typedef and the MakeMCAmericanEngine::withPolynomOrder
method.Observer::set_type
and Observable::set_type
typedefs.Curve
class.LexicographicalView
class.Composite
class.DriftTermStructure
class.Deprecated the various time_iterator
and value_iterator
types in TimeSeries
, as well as methods returning them. The more general const_iterator
and const_reverse_iterator
types can be used instead.
Deprecated the constructors of CPICoupon
taking a spread, as well as its spread
method, its protected spread_
data member, and the withSpreads
methods of CPILeg
.
Deprecated the adjustedFixing
method and the protected spread_
data member of CPICouponPricer
.
Renamed BlackVanillaOptionPricer
to MarketQuotedOptionPricer
and deprecated the old name.
Deprecated a couple of constructors of ForwardRateAgreement
.
Deprecated the constructor of YoYInflationIndex
taking a ratio
. Also, deprecated explicit classes for YoY ratio indexes YYGenericCPIr
, YYAUCPIr
, YYEUHICPr
, YYFRHICPr
, YYUKRPIr
, YYUSCPIr
and YYZACPIr
.
Deprecated the base
, increment
, decrement
, advance
and distance_to
methods of the step_iterator
class.
Thanks go also to Jonathan Sweemer (@sweemer), Jose Garcia (@j053g), Jake Heke (@jakeheke75), Eugene Toder (@eltoder), Binrui Dong (@BrettDong), the Xcelerit Dev Team (@xcelerit-dev), Ralf Konrad (@ralfkonrad), Fredrik Gerdin Börjesson (@gbfredrik) and Tom Anderson (@tomwhoiscontrary) for a number of smaller fixes and improvements.
Full Changelog: https://github.com/lballabio/QuantLib/compare/QuantLib-v1.30...v1.31
Published by lballabio over 1 year ago
QuantLib 1.30 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/27?closed=1.
std::tuple
, std::function
and std::bind
(instead of their boost
counterparts) will become the default. If you're using ext::tuple
etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the boost
versions via a configure switch for a while; but we do suggest you start using ext::tuple
etc. in the meantime.std::any
and std::optional
(and the related std::any_cast
and std::nullopt
) instead of their boost
counterparts by setting new compilation switches; thanks to Jonathan Sweemer (@sweemer). Using the std
classes requires C++17. We expect the boost
classes to remain the default for a while, but in the meantime we encourage to start using ext::any
and ext::optional
in preparation for a new default.VanillaOption
and BarrierOption
classes can now be used to model vanilla and barrier options with discrete dividends; the future dividends (not being part of the terms and conditions of the contract) should be passed to the pricing engine instead (@lballabio).SwaptionVolCube1
, SwaptionVolCube1x
, SwaptionVolCube1a
and SwaptionVolCube2
to SabrSwaptionVolatilityCube
, XabrSwaptionVolatilityCube
, NoArbSabrSwaptionVolatilityCube
and InterpolatedSwaptionVolatilityCube
, respectively; thanks to Ignacio Anguita (@IgnacioAnguita). The old names are deprecated but still available for a few releases.spreadLegValue_
data member of BlackIborCouponPricer
;WulinYongDoubleBarrierEngine
alias for SuoWangDoubleBarrierEngine
;settlementDate
, incomeDiscountCurve
, spotIncome
, spotValue
, impliedYield
and forwardValue
methods of ForwardRateAgreement
, as well as its protected underlyingIncome_
, underlyingSpotValue_
, settlementDays_
, payoff_
and incomeDiscountCurve_
data members;InflationTermStructure
, ZeroInflationTermStructure
, InterpolatedZeroInflationCurve
, PiecewiseZeroInflationCurve
taking an indexIsInterpolated
parameter;indexIsInterpolated
method of InflationTermStructure
and its protected indexIsInterpolated_
data member;SofrFutureRateHelper
.DividendVanillaOption
and DividendBarrierOption
classes; use VanillaOption
and BarrierOption
instead (see above).AnalyticDividendEuropeanEngine
that takes no dividend information; use the other overload instead.SwaptionVolCube1
, SwaptionVolCube1x
, SwaptionVolCube1a
and SwaptionVolCube2
(see above).setCommon
method of CappedFlooredYoYInflationCoupon
.Thanks go also to Jonathan Sweemer (@sweemer), the Xcelerit Dev Team (@xcelerit-dev), Fredrik Gerdin Börjesson (@gbfredrik), Klaus Spanderen (@klausspanderen) and Peter Caspers (@pcaspers) for a number of smaller fixes and improvements, and to Matthias Groncki (@mgroncki) and @lukey8767 for raising issues.
Full Changelog: https://github.com/lballabio/QuantLib/compare/QuantLib-v1.29...QuantLib-v1.30
Published by lballabio almost 2 years ago
QuantLib 1.29 includes 42 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/26?closed=1.
sessionId
function, and therefore the latter is no longer needed. Instead, the code now uses the built-in language support for thread-local variables. Thanks go to Peter Caspers (@pcaspers).std::tuple
, std::function
and std::bind
(instead of their boost
counterparts) will become the default. If you're using ext::tuple
etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the boost
versions via a configure switch for a while; but we do suggest you start using ext::tuple
etc. in the meantime.boost::thread
with std::thread
; thanks to Jonathan Sweemer (@sweemer). This removed our last dependency on Boost binaries and makes it possible to compile QuantLib using a header-only Boost installation.-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL
on the command line; thanks to Jonathan Sweemer (@sweemer). The static runtime remains the default.icpx
compiler using cmake; thanks to Jonathan Sweemer (@sweemer). Note that in order to get all the unit tests passing, -fp-model=precise
must be added to CMAKE_CXX_FLAGS
.withIndexedCoupons
and withAtParCoupons
methods to MakeSwaption
for easier initialization; thanks to Ralf Konrad (@ralfkonrad).ConstantCPIVolatility
constructor can now take a handle to a volatility quote, instead of just an immutable number (@lballabio).createAtParCoupons
, createIndexedCoupons
and usingAtParCoupons
methods of IborCoupon
;RiskyBond
class and its subclasses RiskyFixedBond
and RiskyFloatingBond
;CrossCurrencyBasisSwapRateHelper
typedef;termStructure_
data member of BlackCalibrationHelper
;baseCurrency
and conversionType
data members of Money
;nominalTermStructure
method and the nominalTermStructure_
data member of InflationTermStructure
;UnitedStates
calendar not taking an explicit market.argument_type
, first_argument_type
, second_argument_type
and result_type
typedefs in a number of classes; use auto
or decltype
instead.InflationIndex
, ZeroInflationIndex
, FRHICP
, ZACPI
, UKRPI
, EUHICP
, EUHICPXT
, USCPI
, AUCPI
and GenericCPI
taking an interpolated
parameter; use another constructor.interpolated
method and the interpolated_
data member of InflationIndex
.ThreadKey
typedef. It was used in the signature of sessionId
, which is no longer needed after the changes in the Singleton
implementation.rateCurve_
data member of the InflationCouponPricer
base class. If you need it, provide it in your derived class.npvbps
function taking NPV and BPS as references. Use the overload returning a pair of Real
s.Thanks go also to Matthias Groncki (@mgroncki), Jonathan Sweemer (@sweemer) and Nijaz Kovacevic (@NijazK) for a number of smaller fixes and improvements, to the Xcelerit Dev Team (@xcelerit-dev) for improvements to the automated CI builds, and to Vincenzo Ferrazzanno (@vincferr), @alienbrett, @xuruilong100 and @philippb90 for raising issues.
Full Changelog: https://github.com/lballabio/QuantLib/compare/QuantLib-v1.28...QuantLib-v1.29
Published by lballabio almost 2 years ago
QuantLib 1.28 includes 33 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/24?closed=1.
sessionId
function. Future releases will use the built-in language support for thread-local variables.std::tuple
, std::function
and std::bind
(instead of their boost
counterparts) will become the default. If you're using ext::tuple
etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the boost
versions via a configure switch for a while.COSHestonEngine
in the case of an option with short time to expiration and deep ITM or deep OTM strike prices; thanks to Ignacio Anguita (@IgnacioAnguita).OISRateHelper
now allows to specify the endOfMonth
parameter; thanks to Guillaume Horel (@thrasibule).LocalVolRNDCalculator
; thanks to @mdotlic.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.
CPICapFloorTermPriceSurface
class now also takes an explicit interpolation type.CallableBond
changes its arguments. If you inherited from this class, you'll need to update your code. If you're using the existing derived bond classes, the change will be transparent.impliedVolatility
method for callable bonds was taking a target NPV, not a price. This implementation is now deprecated, and a new overload was added taking a price in base 100.ZeroCouponInflationSwap
and ZeroCouponInflationSwapHelper
missing an explicit CPI interpolation type;ActualActual
and Thirty360
missing an explicit choice of convention, and the constructor of Thirty360
passing an isLastPeriod
boolean flag.FixedRateBond
taking an InterestRate
instance or not taking a Schedule
instance.FloatingRateBond
not taking a Schedule
instance.AmortizingFixedRateBond
taking a sinking frequency or a vector of InterestRate
instances.CPICapFloor
taking a Handle
to an inflation index, and its inflationIndex
method returning a Handle
. New versions of both were added using shared_ptr
instead.SabrSmileSection
; a new version was added also taking an optional reference date.impliedVolatility
method for callable bonds; see above.Thanks go also to Konstantin Novitsky (@novitk), Peter Caspers (@pcaspers), Klaus Spanderen (@klausspanderen), Fredrik Gerdin Börjesson (@gbfredrik) and Dirk Eddelbuettel (@eddelbuettel) for a number of smaller fixes, and to Jonathan Sweemer (@sweemer) for various improvements to the automated CI builds.
Full Changelog: https://github.com/lballabio/QuantLib/compare/QuantLib-v1.27.1...QuantLib-v1.28
Published by lballabio about 2 years ago
QuantLib 1.27.1 is a bug-fix release.
It restores the old implementation of Null<T>
which was replaced
in version 1.27 with a new one; the latter was reported to cause
an internal compiler error under Visual C++ 2022 for some client code.
The new version (which avoids some problems when replacing Real
with some AAD-enabled types) is still available; depending on how
you compile QuantLib, it can be enabled through the
--enable-null-as-functions
configure flag, the cmake variable
QL_NULL_AS_FUNCTIONS
, or the define with the same name in the
ql/userconfig.hpp
header (@lballabio).
Full Changelog: https://github.com/lballabio/QuantLib/compare/QuantLib-v1.27...QuantLib-v1.27.1
Published by lballabio about 2 years ago
QuantLib 1.27 includes 37 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/23?closed=1.
sessionId
function. Future releases will use the built-in language support for thread-local variables.Real
type is now used consistently throughout the codebase, thanks to the Xcelerit dev team (@xcelerit-dev). This, along with other changes, allows its default definition to double
to be replaced with one of the available third-party AAD types.--enable-disposable
and --enable-std-unique-ptr
AmericanCondition
and FDAmericanCondition
classes;OneFactorOperator
class;io::to_integer
function;ArrayProxy
and MatrixProxy
classes.QL_NOEXCEPT
and QL_CONSTEXPR
macros.QL_NULL_INTEGER
and QL_NULL_REAL
macros.PdeShortRate
class;ShoutCondition
and FDShoutCondition
classes;FDDividendEngineBase
, FDDividendEngineMerton73
, FDDividendEngineShiftScale
and FDDividendEngine
classes;FDStepConditionEngine
and FDEngineAdapter
classes.ql/math/functional.hpp
header.MultiCurveSensitivities
class.inner_product
function.Thanks go also to Ryan Russell (@ryanrussell) for documentation fixes.
Full Changelog: https://github.com/lballabio/QuantLib/compare/QuantLib-v1.26...QuantLib-v1.27
Published by lballabio over 2 years ago
QuantLib 1.26 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/22?closed=1.
--enable-disposable
and --enable-std-unique-ptr
. From the next release, Disposable
will always be disabled (and eventually removed) and std::unique_ptr
will always be used instead of std::auto_ptr
. This has already been the default in the last few releases.QuantLib-x64-mt-s
instead of QuantLib-mt-s-x64
) so that the pragma in ql/auto_link.hpp
works.Period
instances now display transparently what their units and length are, instead of doing more fancy formatting (e.g., "16 months" is now displayed instead of "1 year 4 months"). Also, Period
instances that compare as equal now return the same period from their normalize
method (@lballabio).laggedFixing
method to CPI
structure which provides interpolation of inflation index fixings (@lballabio).CPICoupon
and CPICashFlow
classes now take into account the correct dates and observation lag for interpolation (@lballabio).BondForward
class that generalizes the existing FixedRateBondForward
to any kind of bond (thanks to @marcin-rybacki).TreeSwaptionEngine
mispricing when adjusting the instrument schedule to a near exercise date (thanks to @ralfkonrad).ForwardRateAgreement
class now works correctly without an explicit discount curve (@lballabio).InterpolatedZeroInflationCurve
are no longer adjusted automatically to the beginning of their inflation period (@lballabio).MCDiscreteAveragingAsianEngine
class, deprecated in version 1.21.LsmBasisSystem::PolynomType
typedef, now renamed to PolynomialType
; MakeMCAmericanEngine::withPolynomOrder
was also deprecated and renamed to withPolynomialOrder
.ZeroInflationCashFlow
constructor taking an unused calendar and business-day convention.CPICoupon
constructor taking a number of fixing days, as well as the CPICoupon::indexObservation
, CPICoupon::adjustedFixing
and CPICoupon::indexFixing
methods and the CPILeg::withFixingDays
method.CPICashFlow
constructor taking a precalculated fixing date and a frequency.Observer::set_type
and Observable::set_type
typedefs.Curve
class.LexicographicalView
class.Composite
class.DriftTermStructure
class.Thanks go also to @mgroncki, @sweemer and @FloridSleeves for smaller fixes, enhancements and bug reports.
Full Changelog: https://github.com/lballabio/QuantLib/compare/QuantLib-v1.25...QuantLib-v1.26
Published by lballabio almost 3 years ago
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.
QuantLibConfig.cmake
file that allows other CMake projects to find and use QuantLib (thanks to @sweemer).SubPeriodsCoupon
class (thanks to @marcin-rybacki).ZeroInflationIndex
class no longer rely on their forecast curve for interpolation. For coupons that already took care of interpolation (as in the case of CPICoupon
and ZeroInflationCashFlow
) 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 (@lballabio).ql/experimental
folder. Also, being market values and not part of the contract, dividends and credit spread were moved from the bond to the BinomialConvertibleEngine
class (thanks to @w31ha0).ForwardRateAgreement
no longer inherits from Forward
. This also made it possible to implement the amount
method returning the expected cash settlement (thanks to @w31ha0). The methods from Forward
were kept available but deprecated so code using them won't break. Client code might break if it performed casts to Forward
.SwaptionVolCube1
class (thanks to @w31ha0).QuantExt
project (thanks to @OleBueker).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.
WulinYongDoubleBarrierEngine
to SuoWangDoubleBarrierEngine
(thanks to @aditya113141 for the fix and @xuruilong100 for the heads-up).indexIsInterpolated
boolean argument.ForwardRateAgreement
class that used to be inherited from Forward
.SofrFutureRateHelper
class.WulinYongDoubleBarrierEngine
alias for SuoWangDoubleBarrierEngine
.spreadLegValue_
data member in the BlackIborCouponPricer
class.Thanks go also to @tomwhoiscontrary, @igitur, @matthewkolbe, @bensonluk, @hsegger, @klausspanderen, @jxcv0 and @azsrz for smaller fixes, enhancements and bug reports.
Published by lballabio about 3 years ago
QuantLib 1.24 includes 25 pull requests from several contributors.
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/20?closed=1.
cmake
invocation and adds the required Boost libraries accordingly.RiskyBondEngine
is available for bonds (thanks to @w31ha0). It prices bonds based on a risk-free discount cure and a default-probability curve used to assess the probability of each coupon payment. It makes accessible to all bonds the calculations previously available in the experimental RiskyBond
class.IborCouponPricer
(thanks to @pcaspers). This also made it possible to override the choice locally when building a VanillaSwap
or a SwapRateHelper
, so that coupons with both behaviors can now be used at the same time.ThirdWednesdayInclusive
date-generation rule that also adjusts start and end dates (thanks to @w31ha0).Singleton
implementation (thanks to @pcaspers). Singletons are now initialized in a thread-safe way when sessions are enabled, global singletons (that is, independent of sessions) were made available, and static initialization was made safer.nominalTermStructure
method and the corresponding data member in inflation term structures. Any object needing the nominal term structure should have it passed explicitly.termStructure_
data member in BlackCalibrationHelper
. It you're inheriting from BlackCalibrationHelper
and need it, declare it in your derived class.createAtParCoupons
, createIndexedCoupons
and usingAtParCoupons
methods of IborCoupon
, now moved to a new IborCoupon::Settings
singleton (thanks to @pkovacs).conversionType
and baseCurrency
static data members of Money
, now moved to a new Money::Settings
singleton (thanks to @pkovacs).BMAIndex
constructor taking a calendar, the AmericanCondition
and ShoutCondition
constructors taking an option type and strike, the CurveDependentStepCondition
class and the StandardCurveDependentStepCondition
typedef, the BlackCalibrationHelper
constructor taking a yield term structure, the various inflation term structure constructors taking a yield term structure, the various yield term constructors taking a vector of jumps but not specifying a reference date.Thanks go also to @lballabio, @laaouini, @jackgillett101, @bnalgo and @klausspanderen for smaller fixes, enhancements and bug reports.
Published by lballabio over 3 years ago
QuantLib-1.23.tar.gz
QuantLib-1.23.zip
QuantLib 1.23 includes 30 pull requests from several contributors.
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/19?closed=1.
-std=c++11
flag is now added automatically when needed. This applies to both configure
and cmake
(thanks to Leander Schulten).Period
, InterestRate
and InterestRateIndex
classes are now visualized more clearly in the Visual Studio debugger (thanks to Francois Botha).ZeroInflationCashFlow
class, used in zero-coupon inflation swaps (thanks to Ralf Konrad).qiubill
for the heads-up).Type
enumeration defined in several swap classes was moved to their base Swap
class.CalibrationHelperBase
typedef (now CalibrationHelper
), some overloads of the CalibratedModel::calibrate
and CalibratedModel::value
methods, the constructors of PiecewiseYieldCurve
and PiecewiseDefaultCurve
taking an accuracy
parameter, the constructors of BondHelper
, FixedRateBondHelper
and CPIBondHelper
taking a boolean useCleanPrice
parameter, the BondHelper::useCleanPrice()
method, and the non-static Calendar::holidayList
method.Thanks go also to Francis Duffy, Kevin Kirchhoff, Magnus Mencke and Klaus Spanderen for smaller fixes, enhancements and bug reports.
Published by lballabio over 3 years ago
QuantLib-1.22.tar.gz
QuantLib-1.22.zip
QuantLib 1.22 includes 54 pull requests from several contributors.
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/18?closed=1.
Date
and Array
classes are now visualized more clearly in the Visual Studio debugger (thanks to Francois Botha).SubPeriodCoupon
class (thanks to Marcin Rybacki). The class was moved out of the ql/experimental
folder and its interface can now be considered stable.bachhani
).hasHistoricalFixing
inspector to Index
class to check if the fixing for a given past date is available (thanks to Ralf Konrad).OvernightIndexFutures
class. The class was moved out of the ql/experimental
folder and its interface can now be considered stable.Observable
class in the thread-safe case (thanks to Klaus Spanderen).Callability::Type
typedef (now Bond::Price
), the FdmOrnsteinUhlenbackOp
typedef (now correctly spelled as FdmOrnsteinUhlenbeckOp
, and a number of old-style finite-difference engines (FDAmericanEngine
, FDBermudanEngine
, FDDividendAmericanEngine
and its variants, FDDividendEuropeanEngine
and its variants, and FDEuropeanEngine
) all replaced by the FdBlackScholesVanillaEngine
class.FDDividendShoutEngine
class.AmericanCondition
class, the OneFactorOperator
typedef, and the FDAmericanCondition
class.Thanks go also to Francis Duffy and Cay Oest for smaller fixes, enhancements and bug reports.
Published by lballabio over 3 years ago
QuantLib 1.21 includes 24 pull requests from several contributors.
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/17?closed=1.
InterestRate
object (thanks to Piter Dias).phil-zxx
for the heads-up).Thanks go also to Francois Botha, Peter Caspers, Ralf Konrad, Matthias Siemering, Klaus Spanderen and Joseph Wang for smaller fixes, enhancements and bug reports.
Published by lballabio almost 4 years ago
QuantLib 1.20 includes 24 pull requests from several contributors.
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/16?closed=1.
std::tuple
instead of boost::tuple
when the compiler allows it. The default is still to use the Boost implementation. The feature can be enabled by uncommenting the QL_USE_STD_TUPLE
macro in ql/userconfig.hpp
on Visual C++ or by passing the --enable-std-tuple
switch to ./configure
on other systems. The --enable-std-tuple
switch is also implied by --enable-std-classes
. (Thanks to Joseph Wang.)LogCubic
and LogMixedLinearCubic
hiding a few default parameters (thanks to Andrea Maffezzoli).CarrieMY
).fayce66
).martinbrose
).FdmOrnsteinUhlenbeckOp
class and a constructor of the SwaptionVolatilityMatrix
class.Published by lballabio over 4 years ago
QuantLib 1.19 includes 40 pull requests from several contributors.
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/15?closed=1.
UnitedMarsupials
for the heads-up).Bond::yield
method can now specify a guess and whether the passed price is clean or dirty (thanks to Francois Botha).phil-zxx
for the heads-up).BMAIndex
taking a calendar was deprecated.CurveDependentStepCondition
class and related typedefs were deprecated.BlackCalibrationHelper
taking an interest-rate structure was deprecated.Published by lballabio over 4 years ago
QuantLib 1.18 includes 34 pull requests from several contributors.
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/14?closed=1.
--enable-unity-build
flag passed to configure now also causes the test suite to be built as a single source file.GlobalBootstrap
class can now be used with PiecewiseYieldCurve
and other bootstrapped curves (thanks to Peter Caspers). It allows to produce curves close to Bloomberg's.SofrFutureRateHelper
class and its parent OvernightIndexFutureRateHelper
can now choose to use either compounding or averaging, in order to accommodate different conventions for 1M and 3M SOFR futures (thanks to GitHub user tani3010
).FraRateHelper
class has new constructors that take IMM start / end offsets (thanks to Peter Caspers).IterativeBootstrap
class. The accuracy parameter was also moved to the same class; passing it to the curve constructor is now deprecated.fayce66
).holidayList
is now an instance method; the static version is deprecated. The businessDayList
method was also added. (Thanks to Piotr Siejda.)BSMOperator
class, the whole OperatorFactory
class, and the typedef CalibrationHelper
which was used to alias the BlackCalibrationHelper
class.CalibrationHelperBase
class is now called CalibrationHelper
. The old name remains as a typedef but is deprecated.CalibratedModel::calibrate
and CalibratedModel::value
taking a vector of BlackCalibrationHelper
s are deprecated in favor of the ones taking a vector of CalibrationHelper
s.Calendar::holidayList
is deprecated in favor of the instance method by the same name.PiecewiseDefaultCurve
and PiecewiseYieldCurve
taking an accuracy parameter are deprecated in favor of passing the parameter to an instance of the bootstrap class.BondHelper
and derived classes taking a boolean flag to choose between clean and dirty price are deprecated in favor of the ones taking a Bond::Price::Type
argument. The useCleanPrice
method is also deprecated in favor of priceType
.Thanks go also to Ralf Konrad, Klaus Spanderen, Carlos Fidel Selva Ochoa, F. Eugene Aumson and Francois Botha for smaller fixes, enhancements, and bug reports.