You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(60) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(18) |
Feb
(4) |
Mar
(6) |
Apr
(2) |
May
|
Jun
(12) |
Jul
(48) |
Aug
(6) |
Sep
(3) |
Oct
(24) |
Nov
(15) |
Dec
(18) |
| 2002 |
Jan
(39) |
Feb
(12) |
Mar
(80) |
Apr
(72) |
May
(46) |
Jun
(27) |
Jul
(23) |
Aug
(34) |
Sep
(65) |
Oct
(71) |
Nov
(19) |
Dec
(14) |
| 2003 |
Jan
(44) |
Feb
(59) |
Mar
(18) |
Apr
(62) |
May
(54) |
Jun
(27) |
Jul
(46) |
Aug
(15) |
Sep
(44) |
Oct
(36) |
Nov
(19) |
Dec
(12) |
| 2004 |
Jan
(26) |
Feb
(33) |
Mar
(47) |
Apr
(63) |
May
(36) |
Jun
(65) |
Jul
(80) |
Aug
(163) |
Sep
(65) |
Oct
(39) |
Nov
(36) |
Dec
(39) |
| 2005 |
Jan
(97) |
Feb
(78) |
Mar
(64) |
Apr
(64) |
May
(48) |
Jun
(55) |
Jul
(89) |
Aug
(57) |
Sep
(51) |
Oct
(111) |
Nov
(86) |
Dec
(76) |
| 2006 |
Jan
(84) |
Feb
(103) |
Mar
(143) |
Apr
(92) |
May
(55) |
Jun
(58) |
Jul
(71) |
Aug
(57) |
Sep
(74) |
Oct
(59) |
Nov
(8) |
Dec
(32) |
| 2007 |
Jan
(60) |
Feb
(40) |
Mar
(50) |
Apr
(26) |
May
(61) |
Jun
(120) |
Jul
(119) |
Aug
(48) |
Sep
(121) |
Oct
(66) |
Nov
(103) |
Dec
(43) |
| 2008 |
Jan
(60) |
Feb
(109) |
Mar
(92) |
Apr
(106) |
May
(82) |
Jun
(59) |
Jul
(67) |
Aug
(118) |
Sep
(131) |
Oct
(56) |
Nov
(37) |
Dec
(69) |
| 2009 |
Jan
(75) |
Feb
(76) |
Mar
(103) |
Apr
(78) |
May
(61) |
Jun
(35) |
Jul
(66) |
Aug
(69) |
Sep
(166) |
Oct
(46) |
Nov
(72) |
Dec
(65) |
| 2010 |
Jan
(48) |
Feb
(57) |
Mar
(93) |
Apr
(85) |
May
(123) |
Jun
(82) |
Jul
(98) |
Aug
(121) |
Sep
(146) |
Oct
(86) |
Nov
(72) |
Dec
(34) |
| 2011 |
Jan
(96) |
Feb
(55) |
Mar
(73) |
Apr
(57) |
May
(33) |
Jun
(74) |
Jul
(89) |
Aug
(71) |
Sep
(103) |
Oct
(76) |
Nov
(52) |
Dec
(61) |
| 2012 |
Jan
(48) |
Feb
(54) |
Mar
(78) |
Apr
(60) |
May
(75) |
Jun
(59) |
Jul
(33) |
Aug
(66) |
Sep
(43) |
Oct
(46) |
Nov
(75) |
Dec
(51) |
| 2013 |
Jan
(112) |
Feb
(72) |
Mar
(49) |
Apr
(48) |
May
(42) |
Jun
(44) |
Jul
(80) |
Aug
(19) |
Sep
(33) |
Oct
(37) |
Nov
(38) |
Dec
(98) |
| 2014 |
Jan
(113) |
Feb
(93) |
Mar
(49) |
Apr
(106) |
May
(97) |
Jun
(155) |
Jul
(87) |
Aug
(127) |
Sep
(85) |
Oct
(48) |
Nov
(41) |
Dec
(37) |
| 2015 |
Jan
(34) |
Feb
(50) |
Mar
(104) |
Apr
(80) |
May
(82) |
Jun
(66) |
Jul
(41) |
Aug
(84) |
Sep
(37) |
Oct
(65) |
Nov
(83) |
Dec
(52) |
| 2016 |
Jan
(68) |
Feb
(35) |
Mar
(42) |
Apr
(35) |
May
(54) |
Jun
(75) |
Jul
(45) |
Aug
(52) |
Sep
(60) |
Oct
(52) |
Nov
(36) |
Dec
(64) |
| 2017 |
Jan
(92) |
Feb
(59) |
Mar
(35) |
Apr
(53) |
May
(83) |
Jun
(43) |
Jul
(65) |
Aug
(68) |
Sep
(46) |
Oct
(75) |
Nov
(40) |
Dec
(49) |
| 2018 |
Jan
(68) |
Feb
(54) |
Mar
(48) |
Apr
(58) |
May
(51) |
Jun
(44) |
Jul
(40) |
Aug
(68) |
Sep
(35) |
Oct
(15) |
Nov
(7) |
Dec
(37) |
| 2019 |
Jan
(43) |
Feb
(7) |
Mar
(22) |
Apr
(21) |
May
(31) |
Jun
(39) |
Jul
(73) |
Aug
(45) |
Sep
(47) |
Oct
(89) |
Nov
(19) |
Dec
(69) |
| 2020 |
Jan
(52) |
Feb
(63) |
Mar
(45) |
Apr
(59) |
May
(42) |
Jun
(57) |
Jul
(30) |
Aug
(29) |
Sep
(75) |
Oct
(64) |
Nov
(96) |
Dec
(22) |
| 2021 |
Jan
(14) |
Feb
(24) |
Mar
(35) |
Apr
(58) |
May
(36) |
Jun
(15) |
Jul
(18) |
Aug
(31) |
Sep
(30) |
Oct
(33) |
Nov
(27) |
Dec
(16) |
| 2022 |
Jan
(35) |
Feb
(22) |
Mar
(14) |
Apr
(20) |
May
(44) |
Jun
(53) |
Jul
(25) |
Aug
(56) |
Sep
(11) |
Oct
(47) |
Nov
(22) |
Dec
(36) |
| 2023 |
Jan
(30) |
Feb
(17) |
Mar
(31) |
Apr
(48) |
May
(31) |
Jun
(7) |
Jul
(25) |
Aug
(26) |
Sep
(61) |
Oct
(66) |
Nov
(19) |
Dec
(21) |
| 2024 |
Jan
(37) |
Feb
(29) |
Mar
(26) |
Apr
(26) |
May
(34) |
Jun
(9) |
Jul
(27) |
Aug
(13) |
Sep
(15) |
Oct
(25) |
Nov
(13) |
Dec
(8) |
| 2025 |
Jan
(13) |
Feb
(1) |
Mar
(16) |
Apr
(17) |
May
(8) |
Jun
(6) |
Jul
(9) |
Aug
|
Sep
(6) |
Oct
(15) |
Nov
(6) |
Dec
|
| 2026 |
Jan
(6) |
Feb
(4) |
Mar
(20) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Luigi B. <lui...@gm...> - 2026-04-02 10:29:43
|
Hi all, a release candidate for QuantLib 1.42 is available at < https://github.com/lballabio/QuantLib/releases/tag/v1.42-rc>. Python wheels are also available at < https://test.pypi.org/project/QuantLib/1.42rc0/>, and a C# NuGet package is at <https://int.nugettest.org/packages/QuantLib/1.42.0-rc>. If you have some time, please try it out and report any issues on GitHub (or here on the mailing list). Thanks! Luigi |
|
From: Luigi B. <lui...@gm...> - 2026-03-16 09:49:55
|
Hello Chirag,
please don't use the latest 1.41. Backporting your class manually
might skip some steps. Use a checkout from the latest master from GitHub,
where your FxForward is already included correctly. Use a checkout for the
SWIG part too; you'll have to do that anyway in order to open a pull
request.
Luigi
On Mon, Mar 16, 2026 at 8:53 AM Chirag Desai <chi...@ya...>
wrote:
> Hi Luigi
>
> I am very sorry but may not have been clear enough
>
> 1) I got the latest versions of Quantlib 1.41 and Quantlib-SWIG 1.41
> 2) I manually added the FXForward class in my local version and it builds
> fine and the test for it under testsuite works fine
> 3) I added the fxforward.i and amended ql.i
> 4) When I build the python wheel it cannot find the FX Forward class
>
> (When I do the above exercise without the FX Forward class, I can build
> the wheel successfully and all works well)
>
> [image: Inline image]
>
> On Sunday, March 15, 2026 at 12:33:03 AM GMT+8, Luigi Ballabio <
> lui...@gm...> wrote:
>
>
> Your new class is not in QuantLib 1.41. You need to check out the latest
> versions of QuantLib and QuantLib-SWIG from GitHub and use those ones.
>
> Luigi
>
>
> On Sat, Mar 14, 2026 at 5:41 AM Chirag Desai <chi...@ya...>
> wrote:
>
> Thank you Mr Luigi
>
> 1) I added in ql.i and recompiled Quantlib as well
>
> 2) I get error messages now when building the wheel stating FXForward
> class cannot be found. I have attached the error messages.
>
> Build was successful
> [image: Inline image]
>
> [image: Inline image]
>
>
>
> On Friday, March 13, 2026 at 10:50:47 PM GMT+8, Luigi Ballabio <
> lui...@gm...> wrote:
>
>
> Hi Chirag, did you add your fxforward.i to the files included in ql.i ?
>
> Luigi
>
>
> On Fri, Mar 13, 2026 at 7:42 AM Chirag Desai <chi...@ya...>
> wrote:
>
> Hi All
> I built Quantlib with the new fxforward.hpp, fxforward.cpp ,
> fxforwarddiscountingengine hpp.cpp which I had recently contributed and
> successfully in my own version of Quantlib 1.41. All tests work
>
> I placed my fxforward.i file and swig runs successfully
>
> The wheel is generated successfully
>
> I am able to pip install the wheel and successfully can “import Quantlib
> as ql” and also can run certain Python files under SWIG in Examples and
> Tests (european-option.py, test_blackformula.py)
>
> For some reason my FX Forward tests all fail. (attached test_fxforward.py)
>
> How do I check if my FXForward class was successfully exposed to the
> Python API ? If any tools available ?
>
> When I do ql. there is no dropdown either in IDE like VSCode to see what
> ql functions are being exposed in Python ?
> Thank you all
>
>
>
>
>
>
|
|
From: Chirag D. <chi...@ya...> - 2026-03-16 07:53:51
|
Hi Luigi
I am very sorry but may not have been clear enough
1) I got the latest versions of Quantlib 1.41 and Quantlib-SWIG 1.412) I manually added the FXForward class in my local version and it builds fine and the test for it under testsuite works fine3) I added the fxforward.i and amended ql.i4) When I build the python wheel it cannot find the FX Forward class
(When I do the above exercise without the FX Forward class, I can build the wheel successfully and all works well)
On Sunday, March 15, 2026 at 12:33:03 AM GMT+8, Luigi Ballabio <lui...@gm...> wrote:
Your new class is not in QuantLib 1.41. You need to check out the latest versions of QuantLib and QuantLib-SWIG from GitHub and use those ones.
Luigi
On Sat, Mar 14, 2026 at 5:41 AM Chirag Desai <chi...@ya...> wrote:
Thank you Mr Luigi
1) I added in ql.i and recompiled Quantlib as well
2) I get error messages now when building the wheel stating FXForward class cannot be found. I have attached the error messages.
Build was successful
On Friday, March 13, 2026 at 10:50:47 PM GMT+8, Luigi Ballabio <lui...@gm...> wrote:
Hi Chirag, did you add your fxforward.i to the files included in ql.i ?
Luigi
On Fri, Mar 13, 2026 at 7:42 AM Chirag Desai <chi...@ya...> wrote:
Hi AllI built Quantlib with the newfxforward.hpp, fxforward.cpp , fxforwarddiscountingengine hpp.cpp which I had recently contributed and successfullyin my own version of Quantlib 1.41. All tests work
I placed my fxforward.i file andswig runs successfully
The wheel is generated successfully
I am able to pip install the wheeland successfully can “import Quantlib as ql” and also can run certain Pythonfiles under SWIG in Examples and Tests (european-option.py,test_blackformula.py)
For some reason my FX Forward testsall fail. (attached test_fxforward.py)
How do I check if my FXForward classwas successfully exposed to the Python API ? If any tools available ?
When I do ql. there is no dropdown either in IDE like VSCodeto see what ql functions are being exposed in Python ?
Thank you all
|
|
From: Luigi B. <lui...@gm...> - 2026-03-14 16:33:14
|
Your new class is not in QuantLib 1.41. You need to check out the latest versions of QuantLib and QuantLib-SWIG from GitHub and use those ones. Luigi On Sat, Mar 14, 2026 at 5:41 AM Chirag Desai <chi...@ya...> wrote: > Thank you Mr Luigi > > 1) I added in ql.i and recompiled Quantlib as well > > 2) I get error messages now when building the wheel stating FXForward > class cannot be found. I have attached the error messages. > > Build was successful > [image: Inline image] > > [image: Inline image] > > > > On Friday, March 13, 2026 at 10:50:47 PM GMT+8, Luigi Ballabio < > lui...@gm...> wrote: > > > Hi Chirag, did you add your fxforward.i to the files included in ql.i ? > > Luigi > > > On Fri, Mar 13, 2026 at 7:42 AM Chirag Desai <chi...@ya...> > wrote: > > Hi All > I built Quantlib with the new fxforward.hpp, fxforward.cpp , > fxforwarddiscountingengine hpp.cpp which I had recently contributed and > successfully in my own version of Quantlib 1.41. All tests work > > I placed my fxforward.i file and swig runs successfully > > The wheel is generated successfully > > I am able to pip install the wheel and successfully can “import Quantlib > as ql” and also can run certain Python files under SWIG in Examples and > Tests (european-option.py, test_blackformula.py) > > For some reason my FX Forward tests all fail. (attached test_fxforward.py) > > How do I check if my FXForward class was successfully exposed to the > Python API ? If any tools available ? > > When I do ql. there is no dropdown either in IDE like VSCode to see what > ql functions are being exposed in Python ? > Thank you all > > > > > > |
|
From: Chirag D. <chi...@ya...> - 2026-03-14 04:41:29
|
Thank you Mr Luigi
1) I added in ql.i and recompiled Quantlib as well
2) I get error messages now when building the wheel stating FXForward class cannot be found. I have attached the error messages.
Build was successful
On Friday, March 13, 2026 at 10:50:47 PM GMT+8, Luigi Ballabio <lui...@gm...> wrote:
Hi Chirag, did you add your fxforward.i to the files included in ql.i ?
Luigi
On Fri, Mar 13, 2026 at 7:42 AM Chirag Desai <chi...@ya...> wrote:
Hi AllI built Quantlib with the newfxforward.hpp, fxforward.cpp , fxforwarddiscountingengine hpp.cpp which I had recently contributed and successfullyin my own version of Quantlib 1.41. All tests work
I placed my fxforward.i file andswig runs successfully
The wheel is generated successfully
I am able to pip install the wheeland successfully can “import Quantlib as ql” and also can run certain Pythonfiles under SWIG in Examples and Tests (european-option.py,test_blackformula.py)
For some reason my FX Forward testsall fail. (attached test_fxforward.py)
How do I check if my FXForward classwas successfully exposed to the Python API ? If any tools available ?
When I do ql. there is no dropdown either in IDE like VSCodeto see what ql functions are being exposed in Python ?
Thank you all
|
|
From: Luigi B. <lui...@gm...> - 2026-03-13 14:50:52
|
Hi Chirag, did you add your fxforward.i to the files included in ql.i ? Luigi On Fri, Mar 13, 2026 at 7:42 AM Chirag Desai <chi...@ya...> wrote: > Hi All > I built Quantlib with the new fxforward.hpp, fxforward.cpp , > fxforwarddiscountingengine hpp.cpp which I had recently contributed and > successfully in my own version of Quantlib 1.41. All tests work > > I placed my fxforward.i file and swig runs successfully > > The wheel is generated successfully > > I am able to pip install the wheel and successfully can “import Quantlib > as ql” and also can run certain Python files under SWIG in Examples and > Tests (european-option.py, test_blackformula.py) > > For some reason my FX Forward tests all fail. (attached test_fxforward.py) > > How do I check if my FXForward class was successfully exposed to the > Python API ? If any tools available ? > > When I do ql. there is no dropdown either in IDE like VSCode to see what > ql functions are being exposed in Python ? > > Thank you all > > > > > |
|
From: Chirag D. <chi...@ya...> - 2026-03-13 06:42:43
|
Hi AllI built Quantlib with the newfxforward.hpp, fxforward.cpp , fxforwarddiscountingengine hpp.cpp which I had recently contributed and successfullyin my own version of Quantlib 1.41. All tests work I placed my fxforward.i file andswig runs successfully The wheel is generated successfully I am able to pip install the wheeland successfully can “import Quantlib as ql” and also can run certain Pythonfiles under SWIG in Examples and Tests (european-option.py,test_blackformula.py) For some reason my FX Forward testsall fail. (attached test_fxforward.py) How do I check if my FXForward classwas successfully exposed to the Python API ? If any tools available ? When I do ql. there is no dropdown either in IDE like VSCodeto see what ql functions are being exposed in Python ? Thank you all |
|
From: Luigi B. <lui...@gm...> - 2026-03-12 11:45:15
|
Hi, see <https://github.com/lballabio/QuantLib/pull/2474> recently opened. Luigi On Tue, Sep 23, 2025 at 2:51 PM "范博伟" <hz...@si...> wrote: > Hi Luigi, > > We did namage to modify the OvernightIndexedSwap and related methods in > C++ and build the FR007 swap class, mainly using xuruilong's example as > reference. > > And yes, FR007 is a main bench market interest rate in China Inter Bank > market. It's the real funding rate for most institution in the market. > FR007 IRS is the most traded IRS in China IB. It's reset every 1 week as > the tenor of FR007. > > We have most modeling work done in Python. It would be really handy if we > can do the calibration in Python too. > > For now, I managed to write a python version utilizing the FRARateHelper > for the quotes and iteratively bootstrapping instruments. Error might be > acceptable for some trading purpose. > > > > > ----- 原始邮件 ----- > 发件人:Luigi Ballabio <lui...@gm...> > 收件人:hz...@si... > 抄送人:quantlib-users <qua...@li...> > 主题:Re: Re: [Quantlib-users] Bootstrap non fixed-reset-number floating leg > interest rate swap > 日期:2025年09月23日 14点35分 > > Hello, > no, there's no such class. One should inherit from RateHelper and > code it in C++. Are these instruments the way rates are quoted in your > market? > > Best, > Luigi > > > On Mon, Sep 22, 2025 at 4:40 PM "范博伟" <hz...@si...> wrote: > > Hi Luigi, > > Thanks for the reply! > > I check the MultipleResetCoupon and I think I can use that and put a swap > together by passing fixedLeg and floatingLeg to ql.Swap, or > ql.NonstandardSwap. > > However, how can I bootstrap from those swaps for discounting curve? I > think SwapRateHelper won't take swap as input. > > Is there any available helper class would help in this case? > > Thanks. > > > ----- 原始邮件 ----- > 发件人:Luigi Ballabio <lui...@gm...> > 收件人:hz...@si... > 抄送人:quantlib-users <qua...@li...> > 主题:Re: [Quantlib-users] Bootstrap non fixed-reset-number floating leg > interest rate swap > 日期:2025年09月22日 14点24分 > > Hello, > instead of using MultipleResetsLeg, you can instantiate the underlying > MultipleResetCoupon instances directly. Each coupon can take its set of > reset dates explicitly. > > Hope this helps, > Luigi > > > On Sun, Sep 14, 2025 at 3:10 PM "范博伟" <hz...@si...> wrote: > > Hi there, > > I am trying to use python to calibrate interest rate swap in China, which > is a bit non-standard as the floating leg is reset weekly and paid > quarterly. > > I am tring to the use the MultipleResetsLeg for the floating leg to > construct a swap and do the calibartoin. However, the MultipleResetsLeg > has a fixed number of resets per coupon while in real case, the number of > resets is not fixed. It could be 12-14 resets per coupon due to the > convention and calendar. > > In C++, we could build the swap from scratch but not sure if we can do > that in python, since some api is not exposed. > > Could anyone help me with the issue. Thanks. > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > |
|
From: Luigi B. <lui...@gm...> - 2026-03-11 16:34:31
|
It looks like you're not using QuantLib 1.41 (the release you find at < https://github.com/lballabio/QuantLib/releases/tag/v1.41> but a checkout of the git repository, which is more recent than 1.41 and removed a few deprecated classes. If that's the case, you also need a checkout of the git repository for QuantLib-SWIG. Luigi On Wed, Mar 11, 2026 at 12:38 PM Chirag Desai <chi...@ya...> wrote: > Hi > > I have been trying to build the Python wheel as advised on > > https://www.quantlib.org/install/windows-python.shtml > > I used latest Quantlib 1.41 and Quantlib-SWIG 1.41 as well. > > 1) I set up the environment variables > > [image: Inline image] > > 2) This works fine > [image: Inline image] > > 3) I get an error message which I have attached in Error.txt but its along > the line of incompatible Quantlib /SWIG versions as some of the below have > been deprecated. > > C:\local\QuantLib-SWIG-1.41\Python>python -m build --wheel --no-isolation > > [image: Inline image] > Any help pls ? > Thank you > Chirag > > > > > > |
|
From: Chirag D. <chi...@ya...> - 2026-03-11 11:38:41
|
Hi I have been trying to build the Python wheel as advised on https://www.quantlib.org/install/windows-python.shtml I used latest Quantlib 1.41 and Quantlib-SWIG 1.41 as well. 1) I set up the environment variables 2) This works fine 3) I get an error message which I have attached in Error.txt but its along the line of incompatible Quantlib /SWIG versions as some of the below have been deprecated. C:\local\QuantLib-SWIG-1.41\Python>python -m build --wheel --no-isolation Any help pls ?Thank you Chirag |
|
From: Ioannis R. <qua...@de...> - 2026-03-09 09:58:38
|
As I and Peter wrote earlier, you do not need native OIS support to price a Bermudan OIS option. You can use the QuantLib type VanillaSwaption. It references an underlying ibor swap with a fixed maturity date. If you need an OIS underlying, you can equivalently use a VanillaSwap that references a custom ibor of which the tenor equals the period of the fixed leg of the OIS. Then you will get the exact same price. On 3/9/2026 4:18 AM, Rich Amaya via QuantLib-users wrote: > Hi Peter and Daniel, > > Thanks for the clarification Peter. I’ve opened a GitHub issue to > track adding native OIS support to the FD Bermudan swaption engines. > > Best, > Rich > >> On Mar 8, 2026, at 1:23 PM, Peter Caspers <pca...@gm...> wrote: >> >> Hi Rich and Daniel, >> >> Apologies, I misunderstood the trade terms - I thought we were >> talking about a swaption exercising into an underlying swap with >> constant maturity measured from the respective exercise date! >> >> Thanks for clarifying. >> >> Best >> Peter >> >> On Sun, 8 Mar 2026 at 18:25, Rich Amaya <ric...@ma...> wrote: >> >> Hi Daniel, >> >> As Peter says, QuantLib doesn’t have a Bermudan swaption with an >> OIS underlying. However, you can use a VanillaSwap as a proxy for >> the underlying and price it with the existing Bermudan >> infrastructure. >> >> The existing QuantLib examples are actually the co-terminal case >> you need - a single swap with a fixed maturity date, with >> exercise dates at each fixed coupon accrual start. When exercised >> at a later date, only the remaining coupons contribute to the >> payoff, so the effective swap tenor is shorter while the maturity >> date stays the same. See >> Examples/BermudanSwaption/BermudanSwaption.cpp (line 248 onward) >> and test-suite/bermudanswaption.cpp. >> >> The setup is: create a VanillaSwap with your fixed maturity date, >> build a BermudanExercise from the fixed leg accrual start dates >> (your 5 exercise dates), and price with FdHullWhiteSwaptionEngine. >> >> Under a one-factor Hull-White model with a single forwarding >> curve, this VanillaSwap proxy is exact - the compound of daily >> overnight forwards equals the period forward rate on the same >> curve, so VanillaSwap and OIS floating legs produce identical NPVs. >> >> *_References_* >> - Brigo & Mercurio, “Interest Rate Model — Theory and Practice” >> (Ch. 3 for HW model, tree-based pricing) >> - Hull, “Options, Futures, and Other Derivatives,” 11th ed. (Ch. >> 31-32 for short-rate models and trinomial trees) >> >> I hope that helps! >> >> Best, >> Rich >> >> >>> On Mar 8, 2026, at 6:53 AM, Daniel Lobo >>> <dan...@gm...> wrote: >>> >>> Hi Peter, >>> >>> Thanks for your response. >>> >>> Do you know if there is any online resource available to get >>> guidance >>> on this pricing and if QuantLib has any pipeline to implement this >>> Instrument? >>> >>> BR, >>> >>> On Sun, 8 Mar 2026 at 00:15, Peter Caspers >>> <pca...@gm...> wrote: >>>> >>>> Hi Daniel, >>>> >>>> I don't think we have this variant of a Bermudan swaption in >>>> QuantLib. >>>> >>>> Best >>>> Peter >>>> >>>> >>>> On Sat, 7 Mar 2026 at 09:55, Daniel Lobo >>>> <dan...@gm...> wrote: >>>>> >>>>> Hi, >>>>> >>>>> I need to price a Bermudian type swaption which has multiple >>>>> maturity >>>>> dates (total number 5) however underlying swap is OIS, which has a >>>>> fixed maturity date. >>>>> >>>>> I found some swaption examples, where underlying swap has only >>>>> fixed >>>>> maturity term, not fixed maturity date. Therefore in my case, >>>>> at eah >>>>> exercise date, underlying swap's maturity term is lesser. >>>>> >>>>> Can you please point if there any such quantlib implementation or >>>>> example to price such swaption based on hull white model? >>>>> >>>>> >>>>> _______________________________________________ >>>>> QuantLib-users mailing list >>>>> Qua...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> >>> >>> _______________________________________________ >>> QuantLib-users mailing list >>> Qua...@li... >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >> > > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users -- This email has been checked for viruses by Avast antivirus software. www.avast.com |
|
From: Rich A. <ric...@ma...> - 2026-03-09 03:56:41
|
Hi Peter and Daniel, Thanks for the clarification Peter. I’ve opened a GitHub issue to track adding native OIS support to the FD Bermudan swaption engines. Best, Rich > On Mar 8, 2026, at 1:23 PM, Peter Caspers <pca...@gm...> wrote: > > Hi Rich and Daniel, > > Apologies, I misunderstood the trade terms - I thought we were talking about a swaption exercising into an underlying swap with constant maturity measured from the respective exercise date! > > Thanks for clarifying. > > Best > Peter > > On Sun, 8 Mar 2026 at 18:25, Rich Amaya <ric...@ma... <mailto:ric...@ma...>> wrote: >> Hi Daniel, >> >> As Peter says, QuantLib doesn’t have a Bermudan swaption with an OIS underlying. However, you can use a VanillaSwap as a proxy for the underlying and price it with the existing Bermudan infrastructure. >> >> The existing QuantLib examples are actually the co-terminal case you need - a single swap with a fixed maturity date, with exercise dates at each fixed coupon accrual start. When exercised at a later date, only the remaining coupons contribute to the payoff, so the effective swap tenor is shorter while the maturity date stays the same. See Examples/BermudanSwaption/BermudanSwaption.cpp (line 248 onward) and test-suite/bermudanswaption.cpp. >> >> The setup is: create a VanillaSwap with your fixed maturity date, build a BermudanExercise from the fixed leg accrual start dates (your 5 exercise dates), and price with FdHullWhiteSwaptionEngine. >> >> Under a one-factor Hull-White model with a single forwarding curve, this VanillaSwap proxy is exact - the compound of daily overnight forwards equals the period forward rate on the same curve, so VanillaSwap and OIS floating legs produce identical NPVs. >> >> References >> - Brigo & Mercurio, “Interest Rate Model — Theory and Practice” (Ch. 3 for HW model, tree-based pricing) >> - Hull, “Options, Futures, and Other Derivatives,” 11th ed. (Ch. 31-32 for short-rate models and trinomial trees) >> >> I hope that helps! >> >> Best, >> Rich >> >> >>> On Mar 8, 2026, at 6:53 AM, Daniel Lobo <dan...@gm... <mailto:dan...@gm...>> wrote: >>> >>> Hi Peter, >>> >>> Thanks for your response. >>> >>> Do you know if there is any online resource available to get guidance >>> on this pricing and if QuantLib has any pipeline to implement this >>> Instrument? >>> >>> BR, >>> >>> On Sun, 8 Mar 2026 at 00:15, Peter Caspers <pca...@gm... <mailto:pca...@gm...>> wrote: >>>> >>>> Hi Daniel, >>>> >>>> I don't think we have this variant of a Bermudan swaption in QuantLib. >>>> >>>> Best >>>> Peter >>>> >>>> >>>> On Sat, 7 Mar 2026 at 09:55, Daniel Lobo <dan...@gm... <mailto:dan...@gm...>> wrote: >>>>> >>>>> Hi, >>>>> >>>>> I need to price a Bermudian type swaption which has multiple maturity >>>>> dates (total number 5) however underlying swap is OIS, which has a >>>>> fixed maturity date. >>>>> >>>>> I found some swaption examples, where underlying swap has only fixed >>>>> maturity term, not fixed maturity date. Therefore in my case, at eah >>>>> exercise date, underlying swap's maturity term is lesser. >>>>> >>>>> Can you please point if there any such quantlib implementation or >>>>> example to price such swaption based on hull white model? >>>>> >>>>> >>>>> _______________________________________________ >>>>> QuantLib-users mailing list >>>>> Qua...@li... <mailto:Qua...@li...> >>>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> >>> >>> _______________________________________________ >>> QuantLib-users mailing list >>> Qua...@li... <mailto:Qua...@li...> >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >> |
|
From: Peter C. <pca...@gm...> - 2026-03-08 18:24:09
|
Hi Rich and Daniel, Apologies, I misunderstood the trade terms - I thought we were talking about a swaption exercising into an underlying swap with constant maturity measured from the respective exercise date! Thanks for clarifying. Best Peter On Sun, 8 Mar 2026 at 18:25, Rich Amaya <ric...@ma...> wrote: > Hi Daniel, > > As Peter says, QuantLib doesn’t have a Bermudan swaption with an OIS > underlying. However, you can use a VanillaSwap as a proxy for the > underlying and price it with the existing Bermudan infrastructure. > > The existing QuantLib examples are actually the co-terminal case you need > - a single swap with a fixed maturity date, with exercise dates at each > fixed coupon accrual start. When exercised at a later date, only the > remaining coupons contribute to the payoff, so the effective swap tenor is > shorter while the maturity date stays the same. See > Examples/BermudanSwaption/BermudanSwaption.cpp (line 248 onward) and > test-suite/bermudanswaption.cpp. > > The setup is: create a VanillaSwap with your fixed maturity date, build a > BermudanExercise from the fixed leg accrual start dates (your 5 exercise > dates), and price with FdHullWhiteSwaptionEngine. > > Under a one-factor Hull-White model with a single forwarding curve, this > VanillaSwap proxy is exact - the compound of daily overnight forwards > equals the period forward rate on the same curve, so VanillaSwap and OIS > floating legs produce identical NPVs. > > *References* > - Brigo & Mercurio, “Interest Rate Model — Theory and Practice” (Ch. 3 for > HW model, tree-based pricing) > - Hull, “Options, Futures, and Other Derivatives,” 11th ed. (Ch. 31-32 for > short-rate models and trinomial trees) > > I hope that helps! > > Best, > Rich > > > On Mar 8, 2026, at 6:53 AM, Daniel Lobo <dan...@gm...> wrote: > > Hi Peter, > > Thanks for your response. > > Do you know if there is any online resource available to get guidance > on this pricing and if QuantLib has any pipeline to implement this > Instrument? > > BR, > > On Sun, 8 Mar 2026 at 00:15, Peter Caspers <pca...@gm...> wrote: > > > Hi Daniel, > > I don't think we have this variant of a Bermudan swaption in QuantLib. > > Best > Peter > > > On Sat, 7 Mar 2026 at 09:55, Daniel Lobo <dan...@gm...> wrote: > > > Hi, > > I need to price a Bermudian type swaption which has multiple maturity > dates (total number 5) however underlying swap is OIS, which has a > fixed maturity date. > > I found some swaption examples, where underlying swap has only fixed > maturity term, not fixed maturity date. Therefore in my case, at eah > exercise date, underlying swap's maturity term is lesser. > > Can you please point if there any such quantlib implementation or > example to price such swaption based on hull white model? > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > |
|
From: Rich A. <ric...@ma...> - 2026-03-08 17:44:43
|
Hi Daniel, As Peter says, QuantLib doesn’t have a Bermudan swaption with an OIS underlying. However, you can use a VanillaSwap as a proxy for the underlying and price it with the existing Bermudan infrastructure. The existing QuantLib examples are actually the co-terminal case you need - a single swap with a fixed maturity date, with exercise dates at each fixed coupon accrual start. When exercised at a later date, only the remaining coupons contribute to the payoff, so the effective swap tenor is shorter while the maturity date stays the same. See Examples/BermudanSwaption/BermudanSwaption.cpp (line 248 onward) and test-suite/bermudanswaption.cpp. The setup is: create a VanillaSwap with your fixed maturity date, build a BermudanExercise from the fixed leg accrual start dates (your 5 exercise dates), and price with FdHullWhiteSwaptionEngine. Under a one-factor Hull-White model with a single forwarding curve, this VanillaSwap proxy is exact - the compound of daily overnight forwards equals the period forward rate on the same curve, so VanillaSwap and OIS floating legs produce identical NPVs. References - Brigo & Mercurio, “Interest Rate Model — Theory and Practice” (Ch. 3 for HW model, tree-based pricing) - Hull, “Options, Futures, and Other Derivatives,” 11th ed. (Ch. 31-32 for short-rate models and trinomial trees) I hope that helps! Best, Rich > On Mar 8, 2026, at 6:53 AM, Daniel Lobo <dan...@gm...> wrote: > > Hi Peter, > > Thanks for your response. > > Do you know if there is any online resource available to get guidance > on this pricing and if QuantLib has any pipeline to implement this > Instrument? > > BR, > > On Sun, 8 Mar 2026 at 00:15, Peter Caspers <pca...@gm...> wrote: >> >> Hi Daniel, >> >> I don't think we have this variant of a Bermudan swaption in QuantLib. >> >> Best >> Peter >> >> >> On Sat, 7 Mar 2026 at 09:55, Daniel Lobo <dan...@gm...> wrote: >>> >>> Hi, >>> >>> I need to price a Bermudian type swaption which has multiple maturity >>> dates (total number 5) however underlying swap is OIS, which has a >>> fixed maturity date. >>> >>> I found some swaption examples, where underlying swap has only fixed >>> maturity term, not fixed maturity date. Therefore in my case, at eah >>> exercise date, underlying swap's maturity term is lesser. >>> >>> Can you please point if there any such quantlib implementation or >>> example to price such swaption based on hull white model? >>> >>> >>> _______________________________________________ >>> QuantLib-users mailing list >>> Qua...@li... >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Ioannis R. <qua...@de...> - 2026-03-08 17:24:51
|
You can use the QuantLib type VanillaSwaption. It references an underlying ibor swap with a fixed maturity date. If you need an OIS underlying, you can use a custom ibor of which the tenor equals the period of the fixed leg of the OIS. On 3/7/2026 7:45 PM, Peter Caspers wrote: > Hi Daniel, > > I don't think we have this variant of a Bermudan swaption in QuantLib. > > Best > Peter > > > On Sat, 7 Mar 2026 at 09:55, Daniel Lobo <dan...@gm...> wrote: > > Hi, > > I need to price a Bermudian type swaption which has multiple maturity > dates (total number 5) however underlying swap is OIS, which has a > fixed maturity date. > > I found some swaption examples, where underlying swap has only fixed > maturity term, not fixed maturity date. Therefore in my case, at eah > exercise date, underlying swap's maturity term is lesser. > > Can you please point if there any such quantlib implementation or > example to price such swaption based on hull white model? > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users -- This email has been checked for viruses by Avast antivirus software. www.avast.com |
|
From: Daniel L. <dan...@gm...> - 2026-03-08 11:54:20
|
Hi Peter, Thanks for your response. Do you know if there is any online resource available to get guidance on this pricing and if QuantLib has any pipeline to implement this Instrument? BR, On Sun, 8 Mar 2026 at 00:15, Peter Caspers <pca...@gm...> wrote: > > Hi Daniel, > > I don't think we have this variant of a Bermudan swaption in QuantLib. > > Best > Peter > > > On Sat, 7 Mar 2026 at 09:55, Daniel Lobo <dan...@gm...> wrote: >> >> Hi, >> >> I need to price a Bermudian type swaption which has multiple maturity >> dates (total number 5) however underlying swap is OIS, which has a >> fixed maturity date. >> >> I found some swaption examples, where underlying swap has only fixed >> maturity term, not fixed maturity date. Therefore in my case, at eah >> exercise date, underlying swap's maturity term is lesser. >> >> Can you please point if there any such quantlib implementation or >> example to price such swaption based on hull white model? >> >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Peter C. <pca...@gm...> - 2026-03-07 18:45:33
|
Hi Daniel, I don't think we have this variant of a Bermudan swaption in QuantLib. Best Peter On Sat, 7 Mar 2026 at 09:55, Daniel Lobo <dan...@gm...> wrote: > Hi, > > I need to price a Bermudian type swaption which has multiple maturity > dates (total number 5) however underlying swap is OIS, which has a > fixed maturity date. > > I found some swaption examples, where underlying swap has only fixed > maturity term, not fixed maturity date. Therefore in my case, at eah > exercise date, underlying swap's maturity term is lesser. > > Can you please point if there any such quantlib implementation or > example to price such swaption based on hull white model? > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > |
|
From: Daniel L. <dan...@gm...> - 2026-03-07 08:53:36
|
Hi, I need to price a Bermudian type swaption which has multiple maturity dates (total number 5) however underlying swap is OIS, which has a fixed maturity date. I found some swaption examples, where underlying swap has only fixed maturity term, not fixed maturity date. Therefore in my case, at eah exercise date, underlying swap's maturity term is lesser. Can you please point if there any such quantlib implementation or example to price such swaption based on hull white model? |
|
From: Luigi B. <lui...@gm...> - 2026-03-05 14:08:35
|
Hello Brian,
they're called lockout days in our implementation. The corresponding
method is withLockoutDays.
Hope this helps,
Luigi
On Thu, Mar 5, 2026 at 11:48 AM Brian Smith <bri...@gm...>
wrote:
> Hi,
>
> I am using OvernightLeg constructor to create float leg for a OIS.
>
> Leg floatLeg = OvernightLeg(myschedule, rates)
> .withNotionals(notionals)
> .withSpreads(spread)
> .withRateCutoffDays(2)
>
> However above fails with error
>
> no member named 'withRateCutoffDays' in 'QuantLib::OvernightLeg'
>
> Could you please help with a fix to correctly pass rate cutoff days
> information
>
>
> _______________________________________________
> QuantLib-users mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
|
|
From: Brian S. <bri...@gm...> - 2026-03-05 10:48:26
|
Hi, I am using OvernightLeg constructor to create float leg for a OIS. Leg floatLeg = OvernightLeg(myschedule, rates) .withNotionals(notionals) .withSpreads(spread) .withRateCutoffDays(2) However above fails with error no member named 'withRateCutoffDays' in 'QuantLib::OvernightLeg' Could you please help with a fix to correctly pass rate cutoff days information |
|
From: Josep R. <jos...@gm...> - 2026-03-02 16:08:11
|
Hi all, A while ago I started a side project to expose QuantLib as a backend service. The idea is to run it as a separate pricing engine and access it via API. I recently picked it up again and now have a working version: - Distributed pricing engine - JSON and gRPC interfaces - Basic web frontend to interact with it Project: https://github.com/joseprupi/quantraserver Demo: https://app.quantra.io/ The motivation is to make QuantLib easier to integrate with modern systems (web apps, services, etc.), without having to wrap C++ code in each project. Any feedback is welcome. Thanks! Josep |
|
From: Luigi B. <lui...@gm...> - 2026-02-25 12:14:39
|
Hello Magnus,
one of our contributors just examined the problem and opened an issue
at <https://github.com/lballabio/QuantLib/issues/2454> — let's continue the
discussion there.
Regards,
Luigi
On Tue, Feb 24, 2026 at 2:28 PM Magnus Gretton <mag...@ho...>
wrote:
> Hi all,
>
> I am using QuantLib across python and excel (the latter of which has had
> all inflation related classes and any required processes updated to 1.39 as
> a hybrid build) and currently experiencing some issues on building
> inflation curves.
> My issue is that when the months change, for the first few days of each
> month, calculations using the inflation curve fail due to the "root is not
> bracketed"-error.
> For instance, on February 3rd my setup failed although it was fully
> functional at the end of January.
> I've tried to broaden the bands for the guesses without luck in
> inflationtraits.hpp: *constexpr double maxInflation = 0.5; *
> The error is the same in both my tests in python and excel.
>
> Ive attached my python code, for reference!
>
> *The errors in excel/Python:*
> Excel: "ZeroInflationTSZeroRate - 1st iteration: failed at 3rd alive
> instrument, pillar May 1st, 2026, maturity May 1st, 2026, reference date
> December 1st, 2025: root not bracketed: f[-0.5,0.5] ->
> [-2.184665e-01,-2.960285e-01]"
> Python: "RuntimeError: 1st iteration: failed at 3rd alive instrument,
> pillar May 1st, 2026, maturity May 1st, 2026, reference date December 1st,
> 2025: root not bracketed: f[-0.5,0.5] -> [-2.184665e-01,-2.960285e-01]"
> Note, the same error is produced when valuing swaps using the curve.
>
> *Observations:*
>
> - During debugging, values seem reasonable across the board. No
> unexpected anomalies in forecasted index fixings and corresponding rate
> calculations. (Excel)
> - When I change the settlement date to the 13th of Feb the
> calculations work just fine. (Excel)
> - Removing the first 7 ratehelpers (and reducing noisy short term
> data) makes calculations work again. (Excel)
> - Flat interpolation works fine, but using linear as I intend causes
> issues. (Python / excel)
> - Reducing curve accuracy has no effect (fails at 1st iteration).
> (excel)
>
>
> Please find details on my current setup below:
>
> *Inflation setup:*
> *Index:* EUHICPXT
> *Base date: *Dec25 @ 128.89
> *Frequency:* Monthly
> *Curve:* PiecewiseZeroInflationCurve
> *Calendar:* Target
> *DayCount:* Simple
> *Convention:* Modified Following
> *Settlement days:* 0
> *Settlement date:* 03. Feb 2026
> *Lag:* 3m
> *Seasonality:* Omitted for testing purposes / or set to 1 for all months
> *Interpolation: *Linear (Flat does not produce an error interestingly
> enough)
> *Curve Accuracy:* 1.00E-09
> *ZCISratehelpers Tenor & Example Prices:*
>
> Tenor
> Rate
> 3m
> -2.81%
> 4m
> -0.73%
> 5m
> 1.17%
> 6m
> 2.27%
> 7m
> 2.19%
> 8m
> 2.22%
> 9m
> 1.75%
> 10m
> 1.86%
> 11m
> 1.74%
> 1y
> 1.82%
> 15m
> 1.46%
> 18m
> 2.19%
> 21m
> 2.08%
> 2y
> 1.78%
> 3y
> 1.84%
> 4y
> 1.88%
> 5y
> 1.90%
> 6y
> 1.92%
> 7y
> 1.95%
> 8y
> 1.97%
> 9y
> 1.99%
> 10y
> 2.01%
> 12y
> 2.06%
> 15y
> 2.11%
> 20y
> 2.19%
> 25y
> 2.24%
> 30y
> 2.29%
>
> Any help or insights would be greatly appreciated!
> Have a great week, everyone.
>
> Kind regards,
> Magnus
> _______________________________________________
> QuantLib-users mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
|
|
From: Magnus G. <mag...@ho...> - 2026-02-24 13:27:54
|
Hi all, I am using QuantLib across python and excel (the latter of which has had all inflation related classes and any required processes updated to 1.39 as a hybrid build) and currently experiencing some issues on building inflation curves. My issue is that when the months change, for the first few days of each month, calculations using the inflation curve fail due to the "root is not bracketed"-error. For instance, on February 3rd my setup failed although it was fully functional at the end of January. I've tried to broaden the bands for the guesses without luck in inflationtraits.hpp: constexpr double maxInflation = 0.5; The error is the same in both my tests in python and excel. Ive attached my python code, for reference! The errors in excel/Python: Excel: "ZeroInflationTSZeroRate - 1st iteration: failed at 3rd alive instrument, pillar May 1st, 2026, maturity May 1st, 2026, reference date December 1st, 2025: root not bracketed: f[-0.5,0.5] -> [-2.184665e-01,-2.960285e-01]" Python: "RuntimeError: 1st iteration: failed at 3rd alive instrument, pillar May 1st, 2026, maturity May 1st, 2026, reference date December 1st, 2025: root not bracketed: f[-0.5,0.5] -> [-2.184665e-01,-2.960285e-01]" Note, the same error is produced when valuing swaps using the curve. Observations: * During debugging, values seem reasonable across the board. No unexpected anomalies in forecasted index fixings and corresponding rate calculations. (Excel) * When I change the settlement date to the 13th of Feb the calculations work just fine. (Excel) * Removing the first 7 ratehelpers (and reducing noisy short term data) makes calculations work again. (Excel) * Flat interpolation works fine, but using linear as I intend causes issues. (Python / excel) * Reducing curve accuracy has no effect (fails at 1st iteration). (excel) Please find details on my current setup below: Inflation setup: Index: EUHICPXT Base date: Dec25 @ 128.89 Frequency: Monthly Curve: PiecewiseZeroInflationCurve Calendar: Target DayCount: Simple Convention: Modified Following Settlement days: 0 Settlement date: 03. Feb 2026 Lag: 3m Seasonality: Omitted for testing purposes / or set to 1 for all months Interpolation: Linear (Flat does not produce an error interestingly enough) Curve Accuracy: 1.00E-09 ZCISratehelpers Tenor & Example Prices: Tenor Rate 3m -2.81% 4m -0.73% 5m 1.17% 6m 2.27% 7m 2.19% 8m 2.22% 9m 1.75% 10m 1.86% 11m 1.74% 1y 1.82% 15m 1.46% 18m 2.19% 21m 2.08% 2y 1.78% 3y 1.84% 4y 1.88% 5y 1.90% 6y 1.92% 7y 1.95% 8y 1.97% 9y 1.99% 10y 2.01% 12y 2.06% 15y 2.11% 20y 2.19% 25y 2.24% 30y 2.29% Any help or insights would be greatly appreciated! Have a great week, everyone. Kind regards, Magnus |
|
From: Mike K. <mik...@gm...> - 2026-02-24 13:01:09
|
Hi QuantLib Community, I recently discovered an interesting framework—Plotly/Dash—which allows you to build interactive websites using just Python (Flask + React). I put together two demo sites: one for equity options and another for rates. Options: https://options.plotly.app <https://options.plotly.app/> Rates: https://rates.plotly.app <https://rates.plotly.app/> Source Code: https://github.com/mkipnis/DashQL Dev guide (Options): https://mkipnis.substack.com/p/plotly-dash-and-quantlib-vanilla Can you please suggest any features or other products I should add? Best Regards, Mike |
|
From: Jorg L. <jor...@xc...> - 2026-02-09 10:46:49
|
Hi all, We would like to share an update on Automatic Differentiation (AAD) support in QuantLib under the project name QuantLibAAD (formerly QuantLib-Risks-Cpp). QuantLib can be used with AAD via the open-source XAD library and a dedicated integration module, allowing sensitivities to be computed directly through QuantLib code without modifying model logic. Recent work by da-roth (https://github.com/da-roth/) adds optional JIT-based execution support, enabling record-once / replay-many workflows for selected parts of a valuation. This is particularly relevant for Monte Carlo-style inner loops. In this setup: * A representative execution of a code region is recorded once * Optimised code is generated and compiled once * The compiled code is replayed efficiently across Monte Carlo paths This is not an all-or-nothing switch. For selected code regions that are evaluated repeatedly with different inputs, such as expensive Monte Carlo or PDE pricing engines, a recording mode can be activated. The overloaded operators then capture a computation graph, including branches, that can be JIT-compiled and replayed efficiently. The rest of the valuation simply runs through the overloaded operators as usual. The result is a hybrid workflow combining tape-based AAD with replay-based JIT-compiled execution. Example: Monte Carlo sensitivities A representative QuantLib Monte Carlo example applies replay-based execution to the MC loop while retaining tape-based AAD for curve construction and setup, and compares results against finite-difference sensitivities. The application prices a European swaption in a realistic production-style setup, with separate forecasting and OIS discounting curves, CVA/DVA, bootstrapped interest-rate and credit curves, Monte Carlo pricing, and sensitivities to all market inputs. Key result: a native QuantLib double valuation with 10,000 Monte Carlo paths and no sensitivities takes ~306 ms. With XAD and JIT enabled, computing all 90 sensitivities on the same 10,000 paths takes ~520 ms.* This illustrates that selectively applying replay-based execution can significantly reduce Monte Carlo sensitivity runtimes while retaining full AAD capabilities across the valuation pipeline. * QuantLib integration: https://github.com/auto-differentiation/QuantLibAAD * XAD library: https://github.com/auto-differentiation/xad We would be very interested in feedback on where this execution model fits (or does not fit) typical QuantLib Monte Carlo use cases. Questions and comments are very welcome. Best regards, Jorg * Timings are indicative only and depend on product structure and where replay-based execution can be applied. Full benchmark details are available here: https://gist.github.com/auto-differentiation-dev/9e6c472dcf913ffa00136d4b16423d16 |