File: News.md

package info (click to toggle)
quantlib 1.39-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 41,264 kB
  • sloc: cpp: 396,561; makefile: 6,539; python: 272; sh: 154; lisp: 86
file content (127 lines) | stat: -rw-r--r-- 4,770 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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.