You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(17) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(23) |
| 2002 |
Jan
(18) |
Feb
(20) |
Mar
(22) |
Apr
(41) |
May
(28) |
Jun
(25) |
Jul
(10) |
Aug
(7) |
Sep
(5) |
Oct
(20) |
Nov
(13) |
Dec
(11) |
| 2003 |
Jan
(28) |
Feb
(5) |
Mar
(6) |
Apr
(5) |
May
(17) |
Jun
(6) |
Jul
(45) |
Aug
(35) |
Sep
(24) |
Oct
(50) |
Nov
(53) |
Dec
(6) |
| 2004 |
Jan
(4) |
Feb
(10) |
Mar
(52) |
Apr
(46) |
May
(8) |
Jun
(25) |
Jul
(12) |
Aug
(6) |
Sep
(8) |
Oct
(8) |
Nov
(9) |
Dec
(7) |
| 2005 |
Jan
(18) |
Feb
(60) |
Mar
(19) |
Apr
(26) |
May
(14) |
Jun
(27) |
Jul
(8) |
Aug
(15) |
Sep
(19) |
Oct
(53) |
Nov
(20) |
Dec
(23) |
| 2006 |
Jan
(16) |
Feb
(27) |
Mar
(33) |
Apr
(51) |
May
(36) |
Jun
(25) |
Jul
(54) |
Aug
(30) |
Sep
(25) |
Oct
(67) |
Nov
(43) |
Dec
(13) |
| 2007 |
Jan
(23) |
Feb
(27) |
Mar
(55) |
Apr
(79) |
May
(60) |
Jun
(66) |
Jul
(46) |
Aug
(30) |
Sep
(90) |
Oct
(49) |
Nov
(85) |
Dec
(74) |
| 2008 |
Jan
(68) |
Feb
(59) |
Mar
(64) |
Apr
(28) |
May
(66) |
Jun
(35) |
Jul
(73) |
Aug
(76) |
Sep
(65) |
Oct
(46) |
Nov
(41) |
Dec
(19) |
| 2009 |
Jan
(46) |
Feb
(90) |
Mar
(51) |
Apr
(104) |
May
(13) |
Jun
(24) |
Jul
(20) |
Aug
(39) |
Sep
(109) |
Oct
(101) |
Nov
(117) |
Dec
(57) |
| 2010 |
Jan
(55) |
Feb
(42) |
Mar
(39) |
Apr
(22) |
May
(33) |
Jun
(41) |
Jul
(25) |
Aug
(52) |
Sep
(75) |
Oct
(60) |
Nov
(62) |
Dec
(52) |
| 2011 |
Jan
(70) |
Feb
(31) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(38) |
Jul
(51) |
Aug
(35) |
Sep
(27) |
Oct
(35) |
Nov
(10) |
Dec
(20) |
| 2012 |
Jan
(21) |
Feb
(29) |
Mar
(13) |
Apr
(37) |
May
(33) |
Jun
(12) |
Jul
(34) |
Aug
(27) |
Sep
(29) |
Oct
(35) |
Nov
(58) |
Dec
(27) |
| 2013 |
Jan
(27) |
Feb
(16) |
Mar
(40) |
Apr
(16) |
May
(34) |
Jun
(37) |
Jul
(6) |
Aug
(3) |
Sep
(4) |
Oct
(49) |
Nov
(13) |
Dec
(12) |
| 2014 |
Jan
(15) |
Feb
(21) |
Mar
(11) |
Apr
(13) |
May
(27) |
Jun
(60) |
Jul
(19) |
Aug
(29) |
Sep
(20) |
Oct
(28) |
Nov
(41) |
Dec
(15) |
| 2015 |
Jan
(33) |
Feb
(29) |
Mar
(26) |
Apr
(17) |
May
(2) |
Jun
(13) |
Jul
(21) |
Aug
(30) |
Sep
(22) |
Oct
(15) |
Nov
(46) |
Dec
(20) |
| 2016 |
Jan
(6) |
Feb
(5) |
Mar
(9) |
Apr
(15) |
May
(9) |
Jun
(4) |
Jul
(3) |
Aug
(4) |
Sep
(39) |
Oct
(8) |
Nov
(5) |
Dec
(8) |
| 2017 |
Jan
(4) |
Feb
(14) |
Mar
(4) |
Apr
(16) |
May
(5) |
Jun
(10) |
Jul
(25) |
Aug
(2) |
Sep
(5) |
Oct
(11) |
Nov
(8) |
Dec
(11) |
| 2018 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
(1) |
May
(4) |
Jun
(21) |
Jul
(8) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(1) |
Dec
|
| 2019 |
Jan
(1) |
Feb
(5) |
Mar
(18) |
Apr
(9) |
May
(5) |
Jun
(21) |
Jul
(25) |
Aug
(25) |
Sep
(4) |
Oct
(2) |
Nov
(2) |
Dec
(5) |
| 2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(6) |
Dec
|
| 2021 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(5) |
| 2022 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
(2) |
May
(5) |
Jun
(3) |
Jul
(3) |
Aug
(3) |
Sep
(3) |
Oct
(14) |
Nov
|
Dec
(1) |
| 2023 |
Jan
(10) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
|
Dec
|
| 2024 |
Jan
(8) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(1) |
| 2025 |
Jan
(3) |
Feb
(2) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2026 |
Jan
(1) |
Feb
(12) |
Mar
|
Apr
(2) |
May
(8) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <dr....@gm...> - 2019-06-12 20:41:40
|
Hi Alix, Well done on having a go! I have tried to expand the XL addin as well. Unfortunately I have only achieved limited results, due to time constraints of getting a job... I have managed to make some interest rate swap index definitions, for indexes that did not already exist. But I haven't distributed them, because I didn't really get how git worked before I ran out of time... Also, I tried to add inflation swaps, but unfortunately that was rather incomplete. One idea that you may find useful - I used a google virtual machine (you can get free credits for 1 year). The point was I could use my laptop while the VM complied the code. Also, I could work anywhere with no need to worry about how long things took with my laptop switching on / off etc. I'm not pushing google btw, others offer the similar deals. Finally, I'm no expert, but if you're passing through London and want to catch up for a chat about ql, just get in touch. Kind regards Richard -----Original Message----- From: qua...@li... <qua...@li...> Sent: 07 June 2019 13:08 To: qua...@li... Subject: QuantLib-dev Digest, Vol 152, Issue 3 Send QuantLib-dev mailing list submissions to qua...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/quantlib-dev or, via email, send a message with subject or body 'help' to qua...@li... You can reach the person managing the list at qua...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of QuantLib-dev digest..." Today's Topics: 1. Re: QuantLib Excel project (ALIX LASSAUZET) ---------------------------------------------------------------------- Message: 1 Date: Thu, 6 Jun 2019 14:29:18 +0200 From: ALIX LASSAUZET <al...@la...> To: Eric Ehlers <eri...@re...> Cc: qua...@li... Subject: Re: [Quantlib-dev] QuantLib Excel project Message-ID: <CAG...@ma...> Content-Type: text/plain; charset="utf-8" Hi Eric, Thanks again for your help. I managed to generate the 64 bit version of the addin. It took approximately ~2/3 hours. But I still don't know why and how it worked. Looking at the differences between your repo and my local files, I can only notice that a new XML tag has been added in QuantLibXLStatic_vc12.vcxproj following the selection of "Machine X64" in the field named "Target Machine" (Properties > Linker > Advanced > "Target Machine"). I am not sure this is the right reason ; for me it shoud be the default value when compiling in x64 mode - to be confirmed. I will share my investigations if I find out something interesting. Thanks, Alix Le mer. 5 juin 2019 ? 12:42, Eric Ehlers <eri...@re...> a ?crit : > Hi Alix, > > > Indeed, when I tried to compile the addin in ? release (static > > runtime) ? mode + ? x64 ?, the very last stage of the compilation > > routine (the compilation of QuantLibObjects project in fact) never > > stops and seems to generate a temporary xll file with an anormal > > size (~2MB vs 23MB in 32 bit). I even let it run overnight, but it > > did not reach the end... > > > > FYI, I am working with Win 10 (64 bit), VS express 2013, Python > > 3.7.3 > > (32 bit), Excel for Office365 64 bit. I am using the solution ? > > QuantLibXL_full_vc12.sln ?. I also tried to compile the project > > using > > VS2019 but I am facing other issues (VS compatibility I think). Have > > you ever faced this kind of issues ? > > Please see the thread below (near the end): > > https://sourceforge.net/p/quantlib/mailman/message/35898723/ > > Regards, > Eric > -------------- next part -------------- An HTML attachment was scrubbed... ------------------------------ ------------------------------ Subject: Digest Footer _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev ------------------------------ End of QuantLib-dev Digest, Vol 152, Issue 3 ******************************************** |
|
From: ALIX L. <al...@la...> - 2019-06-06 12:29:39
|
Hi Eric, Thanks again for your help. I managed to generate the 64 bit version of the addin. It took approximately ~2/3 hours. But I still don't know why and how it worked. Looking at the differences between your repo and my local files, I can only notice that a new XML tag has been added in QuantLibXLStatic_vc12.vcxproj following the selection of "Machine X64" in the field named "Target Machine" (Properties > Linker > Advanced > "Target Machine"). I am not sure this is the right reason ; for me it shoud be the default value when compiling in x64 mode - to be confirmed. I will share my investigations if I find out something interesting. Thanks, Alix Le mer. 5 juin 2019 à 12:42, Eric Ehlers <eri...@re...> a écrit : > Hi Alix, > > > Indeed, when I tried to compile the addin in « release (static > > runtime) » mode + « x64 », the very last stage of the compilation > > routine (the compilation of QuantLibObjects project in fact) never stops > > and seems to generate a temporary xll file with an anormal size (~2MB vs > > 23MB in 32 bit). I even let it run overnight, but it did not reach the > > end... > > > > FYI, I am working with Win 10 (64 bit), VS express 2013, Python 3.7.3 > > (32 bit), Excel for Office365 64 bit. I am using the solution « > > QuantLibXL_full_vc12.sln ». I also tried to compile the project using > > VS2019 but I am facing other issues (VS compatibility I think). Have you > > ever faced this kind of issues ? > > Please see the thread below (near the end): > > https://sourceforge.net/p/quantlib/mailman/message/35898723/ > > Regards, > Eric > |
|
From: Luigi B. <lui...@gm...> - 2019-06-05 15:51:18
|
I was about to suggest to use a root solver from scipy, but I see from Stack Overflow that you already did... Luigi On Sat, Jun 1, 2019 at 12:15 PM Robin Schreur <rob...@ho...> wrote: > Hi All, > > I have posted an question at stack exchange regarding retrieving the > implied swaption vol from a swaption price ( > https://stackoverflow.com/questions/56362943/retrieving-black-vol-from-quantlib-bachelierswaption-price). > Probably the mailinglist has more users who have an answer. > > My question: > > I want to retrieve a Black Vol from a swaption price calculated by the > Quantlib BachelierSwaptionEngine. It looks like this can be done in > Quantlib via an optimizer (such as the newton method) or direct via the > impliedVolatility method. I'm unable to use the Quantlib optimizer or the > impliedVolatility method within Quantlib Python. > > The code below shows how I calculate the swaption price in Quantlib. From > there I need to retrieve a Black vol based on the swaption price calculated > in the code > > calc_date = ql.Date(29,3,2019) > > rate = ql.SimpleQuote(0.01) > rate_handle = ql.QuoteHandle(rate) > dc = ql.Actual365Fixed() > spot_curve = ql.FlatForward(calc_date, rate_handle, dc) > > start = 10 > length = 10 > start_date = ql.TARGET().advance(calc_date, start, ql.Years) > maturity_date = start_date + ql.Period(length, ql.Years) > fixed_schedule = ql.Schedule(start_date, maturity_date, > ql.Period(1, ql.Years), ql.TARGET(), ql.Unadjusted, > ql.Unadjusted,ql.DateGeneration.Forward, False) > floating_schedule = ql.Schedule(start_date, maturity_date, > ql.Period(6, ql.Months), ql.TARGET(), > ql.ModifiedFollowing, ql.ModifiedFollowing, > ql.DateGeneration.Forward, True) > > rate = 1.45 / 100 > swap = ql.VanillaSwap(ql.VanillaSwap.Receiver, 10000000, > fixed_schedule, rate, ql.Thirty360(ql.Thirty360.BondBasis), > floating_schedule, index6m, 0.0, index6m.dayCounter()) > > swap.setPricingEngine(ql.DiscountingSwapEngine( > ql.YieldTermStructureHandle(spot_curve))) > > > swaption_normal_model = ql.Swaption(swap, > ql.EuropeanExercise(swap.startDate())) > > > normal_vol = ql.SimpleQuote(0.005266) > swaption_normal_model.setPricingEngine(ql.BachelierSwaptionEngine(ql.YieldTermStructureHandle(spot_curve), > ql.QuoteHandle(normal_vol))) > swaption_normal_model_value = swaption_normal_model.NPV() > > > Many thanks, > > Robin > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > |
|
From: Eric E. <eri...@re...> - 2019-06-05 10:42:35
|
Hi Alix, > Indeed, when I tried to compile the addin in « release (static > runtime) » mode + « x64 », the very last stage of the compilation > routine (the compilation of QuantLibObjects project in fact) never stops > and seems to generate a temporary xll file with an anormal size (~2MB vs > 23MB in 32 bit). I even let it run overnight, but it did not reach the > end... > > FYI, I am working with Win 10 (64 bit), VS express 2013, Python 3.7.3 > (32 bit), Excel for Office365 64 bit. I am using the solution « > QuantLibXL_full_vc12.sln ». I also tried to compile the project using > VS2019 but I am facing other issues (VS compatibility I think). Have you > ever faced this kind of issues ? Please see the thread below (near the end): https://sourceforge.net/p/quantlib/mailman/message/35898723/ Regards, Eric |
|
From: Lassauzet <al...@la...> - 2019-06-05 08:06:48
|
Hi Eric, Thanks for your help. To keep you informed, I managed to compile the addin from your repository using the latest version of Quantlib, available on Luigi’s repository (I just had to fix minor pieces of code in some XML files to make it working). In addition, working exclusively with python 3.x, I also had to translate some files in the gensrc project (just the one that was needed for the compilation, not the whole project) and it worked...at least for the generation of the 32 bit xll (I managed to load it and run it on a colleague’s machine working with Excel O365 32 bit). Indeed, when I tried to compile the addin in « release (static runtime) » mode + « x64 », the very last stage of the compilation routine (the compilation of QuantLibObjects project in fact) never stops and seems to generate a temporary xll file with an anormal size (~2MB vs 23MB in 32 bit). I even let it run overnight, but it did not reach the end... FYI, I am working with Win 10 (64 bit), VS express 2013, Python 3.7.3 (32 bit), Excel for Office365 64 bit. I am using the solution « QuantLibXL_full_vc12.sln ». I also tried to compile the project using VS2019 but I am facing other issues (VS compatibility I think). Have you ever faced this kind of issues ? Thanks, Alix Sent from my iPhone > Le 23 mai 2019 à 11:19, Eric Ehlers <eri...@re...> a écrit : > > Hi Alix, > > With the new design I managed to implement ~80% of the ~1,000 functions that QuantLibXL supports. I worked on it during a period of unemployment but unfortunately someone came along and gave me a job before I could finish it. I don't know if or when I will ever get back to it. > > Regards, > Eric > >> On 20/05/2019 09:35, ALIX LASSAUZET wrote: >> Thanks a lot Eric, will try to use this starting point instead. Any plan for the use of this new design? Is it in the pipe? >> Best regards, >> Alix >> Le dim. 19 mai 2019 à 14:09, Eric Ehlers <eri...@re... <mailto:eri...@re...>> a écrit : >> Hi Alix, >> I am still here, although I'm afraid I'm long overdue releasing >> QuantLibXL 1.15. >> There are two builds of QuantLibXL, the original design, which is in >> production (up until version 1.14), and a new design using SWIG. >> You are looking at the repos for the new build, which was never >> released. The old build relies on just one repo: >> https://github.com/eehlers/QuantLibAddin-Old.git >> That corresponds to the zip files for the public release of 1.14. >> Kind Regards, >> Eric >> On 19/05/2019 13:05, ALIX LASSAUZET wrote: >> > Hi QL-community, >> > >> > I would like to know what is the best way to contribute to QuantLib >> > Excel project. >> > Until now, I managed to install QuantLibXL from the source code, >> > following instructions available on the official website >> > (https://www.quantlib.org/quantlibaddin/build_qlxl.html). But this >> > installation starts from the download of the associated zip >> files, and >> > not from git repositories. I saw that Eric Ehlers was actively >> working >> > on several repositories related to this (maybe a new way to >> compile the >> > xll using swig? - https://github.com/eehlers?tab=repositories), >> but I >> > have no idea which one could be used and if it is the right way to >> > compile it despite the fact there are many project dependencies >> > (reposit, ql addin, ql xl, gensrc, ...). >> > >> > Could you please advice? >> > >> > Thanks, >> > Alix >> > >> > >> > >> > >> > _______________________________________________ >> > QuantLib-dev mailing list >> > Qua...@li... >> <mailto:Qua...@li...> >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> > |
|
From: Roland L. <rol...@qu...> - 2019-05-31 11:04:53
|
Dear all, ORE is the first end-to-end open source risk application based on QuantLib, see opensourcerisk.org <http://opensourcerisk.org/> and github.com/opensourcerisk/engine <https://github.com/opensourcerisk/engine>. This fourth release extends the - product range, adding Equity swaps, CMS spread options and the 6th asset class starting with commodity forwards and options - analytics, adding KVA to the value adjustments - unit test framework, examples and user guide - build system, adding CMake This release also starts ORE SWIG wrappers with focus on Python in a separate repository github.com/opensourcerisk/ore-swig <http://github.com/opensourcerisk/ore-swig> We hope that ORE will accelerate the process of the professional risk community embracing the Open Source opportunity to create a global standard. Please download the code and information at opensourcerisk.org <http://opensourcerisk.org/> and engage with your peers through the forum to contribute to the development of the next generation global risk standards. Best regards, Roland |
|
From: Eric E. <eri...@re...> - 2019-05-23 09:20:24
|
Hi Alix, With the new design I managed to implement ~80% of the ~1,000 functions that QuantLibXL supports. I worked on it during a period of unemployment but unfortunately someone came along and gave me a job before I could finish it. I don't know if or when I will ever get back to it. Regards, Eric On 20/05/2019 09:35, ALIX LASSAUZET wrote: > Thanks a lot Eric, will try to use this starting point instead. Any plan > for the use of this new design? Is it in the pipe? > > Best regards, > Alix > > Le dim. 19 mai 2019 à 14:09, Eric Ehlers <eri...@re... > <mailto:eri...@re...>> a écrit : > > Hi Alix, > > I am still here, although I'm afraid I'm long overdue releasing > QuantLibXL 1.15. > > There are two builds of QuantLibXL, the original design, which is in > production (up until version 1.14), and a new design using SWIG. > > You are looking at the repos for the new build, which was never > released. The old build relies on just one repo: > > https://github.com/eehlers/QuantLibAddin-Old.git > > That corresponds to the zip files for the public release of 1.14. > > Kind Regards, > Eric > > On 19/05/2019 13:05, ALIX LASSAUZET wrote: > > Hi QL-community, > > > > I would like to know what is the best way to contribute to QuantLib > > Excel project. > > Until now, I managed to install QuantLibXL from the source code, > > following instructions available on the official website > > (https://www.quantlib.org/quantlibaddin/build_qlxl.html). But this > > installation starts from the download of the associated zip > files, and > > not from git repositories. I saw that Eric Ehlers was actively > working > > on several repositories related to this (maybe a new way to > compile the > > xll using swig? - https://github.com/eehlers?tab=repositories), > but I > > have no idea which one could be used and if it is the right way to > > compile it despite the fact there are many project dependencies > > (reposit, ql addin, ql xl, gensrc, ...). > > > > Could you please advice? > > > > Thanks, > > Alix > > > > > > > > > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > <mailto:Qua...@li...> > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > |
|
From: ALIX L. <al...@la...> - 2019-05-20 09:06:03
|
Thanks a lot Eric, will try to use this starting point instead. Any plan for the use of this new design? Is it in the pipe? Best regards, Alix Le dim. 19 mai 2019 à 14:09, Eric Ehlers <eri...@re...> a écrit : > Hi Alix, > > I am still here, although I'm afraid I'm long overdue releasing > QuantLibXL 1.15. > > There are two builds of QuantLibXL, the original design, which is in > production (up until version 1.14), and a new design using SWIG. > > You are looking at the repos for the new build, which was never > released. The old build relies on just one repo: > > https://github.com/eehlers/QuantLibAddin-Old.git > > That corresponds to the zip files for the public release of 1.14. > > Kind Regards, > Eric > > On 19/05/2019 13:05, ALIX LASSAUZET wrote: > > Hi QL-community, > > > > I would like to know what is the best way to contribute to QuantLib > > Excel project. > > Until now, I managed to install QuantLibXL from the source code, > > following instructions available on the official website > > (https://www.quantlib.org/quantlibaddin/build_qlxl.html). But this > > installation starts from the download of the associated zip files, and > > not from git repositories. I saw that Eric Ehlers was actively working > > on several repositories related to this (maybe a new way to compile the > > xll using swig? - https://github.com/eehlers?tab=repositories), but I > > have no idea which one could be used and if it is the right way to > > compile it despite the fact there are many project dependencies > > (reposit, ql addin, ql xl, gensrc, ...). > > > > Could you please advice? > > > > Thanks, > > Alix > > > > > > > > > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > |
|
From: Eric E. <eri...@re...> - 2019-05-19 12:31:19
|
Hi Alix, I am still here, although I'm afraid I'm long overdue releasing QuantLibXL 1.15. There are two builds of QuantLibXL, the original design, which is in production (up until version 1.14), and a new design using SWIG. You are looking at the repos for the new build, which was never released. The old build relies on just one repo: https://github.com/eehlers/QuantLibAddin-Old.git That corresponds to the zip files for the public release of 1.14. Kind Regards, Eric On 19/05/2019 13:05, ALIX LASSAUZET wrote: > Hi QL-community, > > I would like to know what is the best way to contribute to QuantLib > Excel project. > Until now, I managed to install QuantLibXL from the source code, > following instructions available on the official website > (https://www.quantlib.org/quantlibaddin/build_qlxl.html). But this > installation starts from the download of the associated zip files, and > not from git repositories. I saw that Eric Ehlers was actively working > on several repositories related to this (maybe a new way to compile the > xll using swig? - https://github.com/eehlers?tab=repositories), but I > have no idea which one could be used and if it is the right way to > compile it despite the fact there are many project dependencies > (reposit, ql addin, ql xl, gensrc, ...). > > Could you please advice? > > Thanks, > Alix > > > > > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |
|
From: ALIX L. <al...@la...> - 2019-05-19 11:31:06
|
Hi QL-community, I would like to know what is the best way to contribute to QuantLib Excel project. Until now, I managed to install QuantLibXL from the source code, following instructions available on the official website ( https://www.quantlib.org/quantlibaddin/build_qlxl.html). But this installation starts from the download of the associated zip files, and not from git repositories. I saw that Eric Ehlers was actively working on several repositories related to this (maybe a new way to compile the xll using swig? - https://github.com/eehlers?tab=repositories), but I have no idea which one could be used and if it is the right way to compile it despite the fact there are many project dependencies (reposit, ql addin, ql xl, gensrc, ...). Could you please advice? Thanks, Alix |
|
From: Luigi B. <lui...@gm...> - 2019-04-26 15:14:02
|
It should be it. Logarithms can't handle negative values, and rates extend into that range when searching. I don't see any such constraint in other interpolations. On Fri, Apr 26, 2019 at 5:11 PM R S <raj...@ho...> wrote: > Ok - thanks for that. > > Is that the only “rule” or do you think there is some sort of mapping > between the Interpolator’s and the Trait’s? > > (or is it a question of trial and error?) > > > Regards > -RS > On 26 Apr 2019, 16:09 +0100, Luigi Ballabio <lui...@gm...>, > wrote: > > Ok, I checked. Log interpolation is indeed not usable with forward or > zero rates. > > Luigi > > > On Fri, Apr 26, 2019 at 4:04 PM R S <raj...@ho...> wrote: > >> I am using the very old version - nothing negative there >> >> BusinessDayConvention depoBizDayConv = ModifiedFollowing; >> DayCounter depoDCC = Actual360(); >> vector<Rate> rates; >> rates.push_back(0.0382); >> rates.push_back(0.0372); >> rates.push_back(0.0363); >> rates.push_back(0.0353); >> rates.push_back(0.0348); >> rates.push_back(0.0345); >> /** >> * Derfine deposit ladder >> */ >> vector<Period> qlperiods; >> qlperiods.push_back(1 * Weeks); >> qlperiods.push_back(1 * Months); >> qlperiods.push_back(3 * Months); >> qlperiods.push_back(6 * Months); >> qlperiods.push_back(9 * Months); >> qlperiods.push_back(1 * Years); >> /** >> * Populate Deposit Helpers >> */ >> rateUtility.depoHelpers(rates, qlperiods, calendar, fixingDays, >> true, depoDCC, depoBizDayConv, helper); >> >> /** >> * Define swap rates >> */ >> Frequency swapFixedLegFrequency = Annual; >> BusinessDayConvention swapFixedLegConvention = Unadjusted; >> DayCounter swFixedLegDCC = Thirty360(Thirty360::European); >> boost::shared_ptr<IborIndex> swapFloatingLegIndex(new Euribor6M); >> >> rates.clear(); >> rates.push_back(0.037125); >> rates.push_back(0.0398); >> rates.push_back(0.0443); >> rates.push_back(0.05165); >> rates.push_back(0.055175); >> /** >> * define swap ladder >> */ >> qlperiods.clear(); >> qlperiods.push_back(2 * Years); >> qlperiods.push_back(3 * Years); >> qlperiods.push_back(5 * Years); >> qlperiods.push_back(10 * Years); >> qlperiods.push_back(15 * Years); >> /** >> * Populate Swap Helpers >> */ >> rateUtility.swapRateHelpers(rates, qlperiods, calendar, >> swapFixedLegFrequency, >> swapFixedLegConvention, swFixedLegDCC, swapFloatingLegIndex, helper); >> >> >> Regards >> -RS >> On 26 Apr 2019, 14:34 +0100, Luigi Ballabio <lui...@gm...>, >> wrote: >> >> What version of the examples? In the most recent one, a few of the input >> rates are negatives and log-linear interpolation can't handle them. >> >> Luigi >> >> >> On Tue, Apr 9, 2019 at 9:31 AM R S <raj...@ho...> wrote: >> >>> Yes - I get an error on certain combinations of Trait and. Interpolator >>> >>> For example, with a declaration of PiecewiseYieldCurve<ForwardRate, >>> BackwardFlat>, I can get a dump of dates and rates from the curve >>> >>> However, if I. change the declaration >>> to PiecewiseYieldCurve<ForwardRate, LogLinear>, I get this error: >>> >>> terminate called after throwing an instance of 'QuantLib::Error' >>> what(): 1st iteration: failed at 1st alive instrument, pillar September >>> 29th, 2004, maturity September 29th, 2004, reference date September 22nd, >>> 2004: invalid value (-1) at index 0 >>> >>> Process finished with exit code 134 (interrupted by signal 6: SIGABRT) >>> >>> The data is based on the DepoSwap example from the Quantlib Examples >>> >>> >>> Regards >>> -RS >>> On 8 Apr 2019, 16:42 +0100, Luigi Ballabio <lui...@gm...>, >>> wrote: >>> >>> Yes, the bootstrap is done when the curve is first used. That would be >>> when it's first asked for rates or discounts during swap valuation. >>> >>> What do you mean when you say that some combinations don't work? Do you >>> get a compile-time error, or does the bootstrap fail at run-time? >>> >>> Luigi >>> >>> >>> On Wed, Mar 27, 2019 at 10:18 PM R S <raj...@ho...> wrote: >>> >>>> Thanks for this tip on this serialisation. I attach the results of >>>> running Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus >>>> InterpolatedDiscount<LogLinear> curve >>>> (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> >>>> with InterpolatedDiscount<BackwardFlat>) >>>> >>>> As you can see, the curve generation time remains unchanged but the >>>> swap valuation time is halved (all times in nanoseconds) >>>> >>>> Is this because the bootstrapping occurs only when NPV on the swap is >>>> called? >>>> >>>> Also, I noticed that certain Trait’s work only with certain >>>> interpolators. For example, ForwardRate trait only works with BackwardFlat. >>>> >>>> Are the valid combinations documented somewhere? >>>> >>>> >>>> |
|
From: R S <raj...@ho...> - 2019-04-26 15:11:41
|
Ok - thanks for that. Is that the only “rule” or do you think there is some sort of mapping between the Interpolator’s and the Trait’s? (or is it a question of trial and error?) Regards -RS On 26 Apr 2019, 16:09 +0100, Luigi Ballabio <lui...@gm...>, wrote: Ok, I checked. Log interpolation is indeed not usable with forward or zero rates. Luigi On Fri, Apr 26, 2019 at 4:04 PM R S <raj...@ho...<mailto:raj...@ho...>> wrote: I am using the very old version - nothing negative there BusinessDayConvention depoBizDayConv = ModifiedFollowing; DayCounter depoDCC = Actual360(); vector<Rate> rates; rates.push_back(0.0382); rates.push_back(0.0372); rates.push_back(0.0363); rates.push_back(0.0353); rates.push_back(0.0348); rates.push_back(0.0345); /** * Derfine deposit ladder */ vector<Period> qlperiods; qlperiods.push_back(1 * Weeks); qlperiods.push_back(1 * Months); qlperiods.push_back(3 * Months); qlperiods.push_back(6 * Months); qlperiods.push_back(9 * Months); qlperiods.push_back(1 * Years); /** * Populate Deposit Helpers */ rateUtility.depoHelpers(rates, qlperiods, calendar, fixingDays, true, depoDCC, depoBizDayConv, helper); /** * Define swap rates */ Frequency swapFixedLegFrequency = Annual; BusinessDayConvention swapFixedLegConvention = Unadjusted; DayCounter swFixedLegDCC = Thirty360(Thirty360::European); boost::shared_ptr<IborIndex> swapFloatingLegIndex(new Euribor6M); rates.clear(); rates.push_back(0.037125); rates.push_back(0.0398); rates.push_back(0.0443); rates.push_back(0.05165); rates.push_back(0.055175); /** * define swap ladder */ qlperiods.clear(); qlperiods.push_back(2 * Years); qlperiods.push_back(3 * Years); qlperiods.push_back(5 * Years); qlperiods.push_back(10 * Years); qlperiods.push_back(15 * Years); /** * Populate Swap Helpers */ rateUtility.swapRateHelpers(rates, qlperiods, calendar, swapFixedLegFrequency, swapFixedLegConvention, swFixedLegDCC, swapFloatingLegIndex, helper); Regards -RS On 26 Apr 2019, 14:34 +0100, Luigi Ballabio <lui...@gm...<mailto:lui...@gm...>>, wrote: What version of the examples? In the most recent one, a few of the input rates are negatives and log-linear interpolation can't handle them. Luigi On Tue, Apr 9, 2019 at 9:31 AM R S <raj...@ho...<mailto:raj...@ho...>> wrote: Yes - I get an error on certain combinations of Trait and. Interpolator For example, with a declaration of PiecewiseYieldCurve<ForwardRate, BackwardFlat>, I can get a dump of dates and rates from the curve However, if I. change the declaration to PiecewiseYieldCurve<ForwardRate, LogLinear>, I get this error: terminate called after throwing an instance of 'QuantLib::Error' what(): 1st iteration: failed at 1st alive instrument, pillar September 29th, 2004, maturity September 29th, 2004, reference date September 22nd, 2004: invalid value (-1) at index 0 Process finished with exit code 134 (interrupted by signal 6: SIGABRT) The data is based on the DepoSwap example from the Quantlib Examples Regards -RS On 8 Apr 2019, 16:42 +0100, Luigi Ballabio <lui...@gm...<mailto:lui...@gm...>>, wrote: Yes, the bootstrap is done when the curve is first used. That would be when it's first asked for rates or discounts during swap valuation. What do you mean when you say that some combinations don't work? Do you get a compile-time error, or does the bootstrap fail at run-time? Luigi On Wed, Mar 27, 2019 at 10:18 PM R S <raj...@ho...<mailto:raj...@ho...>> wrote: Thanks for this tip on this serialisation. I attach the results of running Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus InterpolatedDiscount<LogLinear> curve (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> with InterpolatedDiscount<BackwardFlat>) As you can see, the curve generation time remains unchanged but the swap valuation time is halved (all times in nanoseconds) Is this because the bootstrapping occurs only when NPV on the swap is called? Also, I noticed that certain Trait’s work only with certain interpolators. For example, ForwardRate trait only works with BackwardFlat. Are the valid combinations documented somewhere? |
|
From: Luigi B. <lui...@gm...> - 2019-04-26 15:09:32
|
Ok, I checked. Log interpolation is indeed not usable with forward or zero rates. Luigi On Fri, Apr 26, 2019 at 4:04 PM R S <raj...@ho...> wrote: > I am using the very old version - nothing negative there > > BusinessDayConvention depoBizDayConv = ModifiedFollowing; > DayCounter depoDCC = Actual360(); > vector<Rate> rates; > rates.push_back(0.0382); > rates.push_back(0.0372); > rates.push_back(0.0363); > rates.push_back(0.0353); > rates.push_back(0.0348); > rates.push_back(0.0345); > /** > * Derfine deposit ladder > */ > vector<Period> qlperiods; > qlperiods.push_back(1 * Weeks); > qlperiods.push_back(1 * Months); > qlperiods.push_back(3 * Months); > qlperiods.push_back(6 * Months); > qlperiods.push_back(9 * Months); > qlperiods.push_back(1 * Years); > /** > * Populate Deposit Helpers > */ > rateUtility.depoHelpers(rates, qlperiods, calendar, fixingDays, > true, depoDCC, depoBizDayConv, helper); > > /** > * Define swap rates > */ > Frequency swapFixedLegFrequency = Annual; > BusinessDayConvention swapFixedLegConvention = Unadjusted; > DayCounter swFixedLegDCC = Thirty360(Thirty360::European); > boost::shared_ptr<IborIndex> swapFloatingLegIndex(new Euribor6M); > > rates.clear(); > rates.push_back(0.037125); > rates.push_back(0.0398); > rates.push_back(0.0443); > rates.push_back(0.05165); > rates.push_back(0.055175); > /** > * define swap ladder > */ > qlperiods.clear(); > qlperiods.push_back(2 * Years); > qlperiods.push_back(3 * Years); > qlperiods.push_back(5 * Years); > qlperiods.push_back(10 * Years); > qlperiods.push_back(15 * Years); > /** > * Populate Swap Helpers > */ > rateUtility.swapRateHelpers(rates, qlperiods, calendar, > swapFixedLegFrequency, > swapFixedLegConvention, swFixedLegDCC, swapFloatingLegIndex, helper); > > > Regards > -RS > On 26 Apr 2019, 14:34 +0100, Luigi Ballabio <lui...@gm...>, > wrote: > > What version of the examples? In the most recent one, a few of the input > rates are negatives and log-linear interpolation can't handle them. > > Luigi > > > On Tue, Apr 9, 2019 at 9:31 AM R S <raj...@ho...> wrote: > >> Yes - I get an error on certain combinations of Trait and. Interpolator >> >> For example, with a declaration of PiecewiseYieldCurve<ForwardRate, >> BackwardFlat>, I can get a dump of dates and rates from the curve >> >> However, if I. change the declaration to PiecewiseYieldCurve<ForwardRate, >> LogLinear>, I get this error: >> >> terminate called after throwing an instance of 'QuantLib::Error' >> what(): 1st iteration: failed at 1st alive instrument, pillar September >> 29th, 2004, maturity September 29th, 2004, reference date September 22nd, >> 2004: invalid value (-1) at index 0 >> >> Process finished with exit code 134 (interrupted by signal 6: SIGABRT) >> >> The data is based on the DepoSwap example from the Quantlib Examples >> >> >> Regards >> -RS >> On 8 Apr 2019, 16:42 +0100, Luigi Ballabio <lui...@gm...>, >> wrote: >> >> Yes, the bootstrap is done when the curve is first used. That would be >> when it's first asked for rates or discounts during swap valuation. >> >> What do you mean when you say that some combinations don't work? Do you >> get a compile-time error, or does the bootstrap fail at run-time? >> >> Luigi >> >> >> On Wed, Mar 27, 2019 at 10:18 PM R S <raj...@ho...> wrote: >> >>> Thanks for this tip on this serialisation. I attach the results of >>> running Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus >>> InterpolatedDiscount<LogLinear> curve >>> (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> >>> with InterpolatedDiscount<BackwardFlat>) >>> >>> As you can see, the curve generation time remains unchanged but the swap >>> valuation time is halved (all times in nanoseconds) >>> >>> Is this because the bootstrapping occurs only when NPV on the swap is >>> called? >>> >>> Also, I noticed that certain Trait’s work only with certain >>> interpolators. For example, ForwardRate trait only works with BackwardFlat. >>> >>> Are the valid combinations documented somewhere? >>> >>> >>> |
|
From: R S <raj...@ho...> - 2019-04-26 14:04:54
|
I am using the very old version - nothing negative there BusinessDayConvention depoBizDayConv = ModifiedFollowing; DayCounter depoDCC = Actual360(); vector<Rate> rates; rates.push_back(0.0382); rates.push_back(0.0372); rates.push_back(0.0363); rates.push_back(0.0353); rates.push_back(0.0348); rates.push_back(0.0345); /** * Derfine deposit ladder */ vector<Period> qlperiods; qlperiods.push_back(1 * Weeks); qlperiods.push_back(1 * Months); qlperiods.push_back(3 * Months); qlperiods.push_back(6 * Months); qlperiods.push_back(9 * Months); qlperiods.push_back(1 * Years); /** * Populate Deposit Helpers */ rateUtility.depoHelpers(rates, qlperiods, calendar, fixingDays, true, depoDCC, depoBizDayConv, helper); /** * Define swap rates */ Frequency swapFixedLegFrequency = Annual; BusinessDayConvention swapFixedLegConvention = Unadjusted; DayCounter swFixedLegDCC = Thirty360(Thirty360::European); boost::shared_ptr<IborIndex> swapFloatingLegIndex(new Euribor6M); rates.clear(); rates.push_back(0.037125); rates.push_back(0.0398); rates.push_back(0.0443); rates.push_back(0.05165); rates.push_back(0.055175); /** * define swap ladder */ qlperiods.clear(); qlperiods.push_back(2 * Years); qlperiods.push_back(3 * Years); qlperiods.push_back(5 * Years); qlperiods.push_back(10 * Years); qlperiods.push_back(15 * Years); /** * Populate Swap Helpers */ rateUtility.swapRateHelpers(rates, qlperiods, calendar, swapFixedLegFrequency, swapFixedLegConvention, swFixedLegDCC, swapFloatingLegIndex, helper); Regards -RS On 26 Apr 2019, 14:34 +0100, Luigi Ballabio <lui...@gm...>, wrote: What version of the examples? In the most recent one, a few of the input rates are negatives and log-linear interpolation can't handle them. Luigi On Tue, Apr 9, 2019 at 9:31 AM R S <raj...@ho...<mailto:raj...@ho...>> wrote: Yes - I get an error on certain combinations of Trait and. Interpolator For example, with a declaration of PiecewiseYieldCurve<ForwardRate, BackwardFlat>, I can get a dump of dates and rates from the curve However, if I. change the declaration to PiecewiseYieldCurve<ForwardRate, LogLinear>, I get this error: terminate called after throwing an instance of 'QuantLib::Error' what(): 1st iteration: failed at 1st alive instrument, pillar September 29th, 2004, maturity September 29th, 2004, reference date September 22nd, 2004: invalid value (-1) at index 0 Process finished with exit code 134 (interrupted by signal 6: SIGABRT) The data is based on the DepoSwap example from the Quantlib Examples Regards -RS On 8 Apr 2019, 16:42 +0100, Luigi Ballabio <lui...@gm...<mailto:lui...@gm...>>, wrote: Yes, the bootstrap is done when the curve is first used. That would be when it's first asked for rates or discounts during swap valuation. What do you mean when you say that some combinations don't work? Do you get a compile-time error, or does the bootstrap fail at run-time? Luigi On Wed, Mar 27, 2019 at 10:18 PM R S <raj...@ho...<mailto:raj...@ho...>> wrote: Thanks for this tip on this serialisation. I attach the results of running Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus InterpolatedDiscount<LogLinear> curve (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> with InterpolatedDiscount<BackwardFlat>) As you can see, the curve generation time remains unchanged but the swap valuation time is halved (all times in nanoseconds) Is this because the bootstrapping occurs only when NPV on the swap is called? Also, I noticed that certain Trait’s work only with certain interpolators. For example, ForwardRate trait only works with BackwardFlat. Are the valid combinations documented somewhere? |
|
From: Luigi B. <lui...@gm...> - 2019-04-26 13:34:28
|
What version of the examples? In the most recent one, a few of the input rates are negatives and log-linear interpolation can't handle them. Luigi On Tue, Apr 9, 2019 at 9:31 AM R S <raj...@ho...> wrote: > Yes - I get an error on certain combinations of Trait and. Interpolator > > For example, with a declaration of PiecewiseYieldCurve<ForwardRate, > BackwardFlat>, I can get a dump of dates and rates from the curve > > However, if I. change the declaration to PiecewiseYieldCurve<ForwardRate, > LogLinear>, I get this error: > > terminate called after throwing an instance of 'QuantLib::Error' > what(): 1st iteration: failed at 1st alive instrument, pillar September > 29th, 2004, maturity September 29th, 2004, reference date September 22nd, > 2004: invalid value (-1) at index 0 > > Process finished with exit code 134 (interrupted by signal 6: SIGABRT) > > The data is based on the DepoSwap example from the Quantlib Examples > > > Regards > -RS > On 8 Apr 2019, 16:42 +0100, Luigi Ballabio <lui...@gm...>, > wrote: > > Yes, the bootstrap is done when the curve is first used. That would be > when it's first asked for rates or discounts during swap valuation. > > What do you mean when you say that some combinations don't work? Do you > get a compile-time error, or does the bootstrap fail at run-time? > > Luigi > > > On Wed, Mar 27, 2019 at 10:18 PM R S <raj...@ho...> wrote: > >> Thanks for this tip on this serialisation. I attach the results of >> running Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus >> InterpolatedDiscount<LogLinear> curve >> (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> >> with InterpolatedDiscount<BackwardFlat>) >> >> As you can see, the curve generation time remains unchanged but the swap >> valuation time is halved (all times in nanoseconds) >> >> Is this because the bootstrapping occurs only when NPV on the swap is >> called? >> >> Also, I noticed that certain Trait’s work only with certain >> interpolators. For example, ForwardRate trait only works with BackwardFlat. >> >> Are the valid combinations documented somewhere? >> >> >> |
|
From: R S <raj...@ho...> - 2019-04-09 07:31:58
|
Yes - I get an error on certain combinations of Trait and. Interpolator For example, with a declaration of PiecewiseYieldCurve<ForwardRate, BackwardFlat>, I can get a dump of dates and rates from the curve However, if I. change the declaration to PiecewiseYieldCurve<ForwardRate, LogLinear>, I get this error: terminate called after throwing an instance of 'QuantLib::Error' what(): 1st iteration: failed at 1st alive instrument, pillar September 29th, 2004, maturity September 29th, 2004, reference date September 22nd, 2004: invalid value (-1) at index 0 Process finished with exit code 134 (interrupted by signal 6: SIGABRT) The data is based on the DepoSwap example from the Quantlib Examples Regards -RS On 8 Apr 2019, 16:42 +0100, Luigi Ballabio <lui...@gm...>, wrote: Yes, the bootstrap is done when the curve is first used. That would be when it's first asked for rates or discounts during swap valuation. What do you mean when you say that some combinations don't work? Do you get a compile-time error, or does the bootstrap fail at run-time? Luigi On Wed, Mar 27, 2019 at 10:18 PM R S <raj...@ho...<mailto:raj...@ho...>> wrote: Thanks for this tip on this serialisation. I attach the results of running Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus InterpolatedDiscount<LogLinear> curve (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> with InterpolatedDiscount<BackwardFlat>) As you can see, the curve generation time remains unchanged but the swap valuation time is halved (all times in nanoseconds) Is this because the bootstrapping occurs only when NPV on the swap is called? Also, I noticed that certain Trait’s work only with certain interpolators. For example, ForwardRate trait only works with BackwardFlat. Are the valid combinations documented somewhere? |
|
From: Luigi B. <lui...@gm...> - 2019-04-08 15:42:18
|
Yes, the bootstrap is done when the curve is first used. That would be when it's first asked for rates or discounts during swap valuation. What do you mean when you say that some combinations don't work? Do you get a compile-time error, or does the bootstrap fail at run-time? Luigi On Wed, Mar 27, 2019 at 10:18 PM R S <raj...@ho...> wrote: > Thanks for this tip on this serialisation. I attach the results of running > Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus > InterpolatedDiscount<LogLinear> curve > (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> > with InterpolatedDiscount<BackwardFlat>) > > As you can see, the curve generation time remains unchanged but the swap > valuation time is halved (all times in nanoseconds) > > Is this because the bootstrapping occurs only when NPV on the swap is > called? > > Also, I noticed that certain Trait’s work only with certain interpolators. > For example, ForwardRate trait only works with BackwardFlat. > > Are the valid combinations documented somewhere? > > > > Regards > -RS > On 11 Mar 2019, 16:31 +0000, Luigi Ballabio <lui...@gm...>, > wrote: > > You can use the InterpolatedForwardCurve class, which is used > underneath PiecewiseYieldCurve when you select the ForwardRate traits. > Once you bootstrap your curve, extract curve.dates(), curve.forwards() > and curve.dayCounter() and serialize them. Later, deserialize them > and pass them to the InterpolatedForwardCurve constructor. You'll > have to instantiate it with the same interpolator you used for the > bootstrap, so, for instance, PiecewiseYieldCurve<ForwardRate, > BackwardFlat> can be deserialized into an > InterpolatedForwardCurve<BackwardFlat>. > > Other traits have corresponding interpolated curves. > > Hope this helps, > Luigi > > On Fri, Mar 1, 2019 at 5:50 PM rajs1 <raj...@ho...> wrote: > > > I have seen quite a few older posts on this. What I am trying to do is to > send the curve(s) data (in AVRO) along with the swaptrade (AVRO) together. > I want to avoid the bootstrap process - so want to resurrect > YieldTermStructure from, say, forward rates From 2012, this link: > http://quantlib.10058.n7.nabble.com/How-to-construct-a-curve-from-forward-rates-by-using-function-qlInterpolatedYieldCurve-td5242.html > talks about building a PiecewiseYieldCurve with TraitsID=ForwardRate. The > curve points will be represented internally as forward rates from which - I > presume - one could get back to YieldTermStructure. However, most examples > deal with QuantlibXL addin. Is there anyone who could point me to a bare > bones C++ skeleton (on which I can build and test please)? If there are > alternative ideas - I am happy to try and even post back blogs for > posterity. Thanks in advance > ________________________________ > Sent from the quantlib-dev mailing list archive at Nabble.com. > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > |
|
From: Luigi B. <lui...@gm...> - 2019-04-08 15:36:40
|
I guess it was copied wrong. Thanks for the heads up. Luigi On Tue, Apr 2, 2019 at 2:11 PM Theo Boafo via QuantLib-dev < qua...@li...> wrote: > Hi Quantlib, > > Any reason why for the MulticurveBootstrapping example, the respective > ois rate helpers as per code snippet below are using only the ois 1 week > quote and not > the corresponding week quote as defined in the code? I saw this a whilst > back but seems its in the current release. > > ext::shared_ptr<RateHelper> ois1W(new OISRateHelper( > 2, 1 * Weeks, > Handle<Quote>(ois1WRate), eonia)); > ext::shared_ptr<RateHelper> ois2W(new OISRateHelper( > 2, 2 * Weeks, > Handle<Quote>(ois1WRate), eonia)); > ext::shared_ptr<RateHelper> ois3W(new OISRateHelper( > 2, 3 * Weeks, > Handle<Quote>(ois1WRate), eonia)); > ext::shared_ptr<RateHelper> ois1M(new OISRateHelper( > 2, 1 * Months, > Handle<Quote>(ois1WRate), eonia)); > > Regards > > Theo > > -----Original Message----- > From: quantlib-dev-request <qua...@li...> > To: quantlib-dev <qua...@li...> > Sent: Thu, 28 Mar 2019 4:33 > Subject: QuantLib-dev Digest, Vol 149, Issue 11 > > Send QuantLib-dev mailing list submissions to > qua...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > or, via email, send a message with subject or body 'help' to > qua...@li... > > You can reach the person managing the list at > qua...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of QuantLib-dev digest..." > > > Today's Topics: > > 1. Re: Serialising YieldTermStructure (R S) > 2. Fed Fund futures (Ben Watson) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 27 Mar 2019 21:18:02 +0000 > From: R S <raj...@ho...> > To: Luigi Ballabio <lui...@gm...> > Cc: QuantLib developers <qua...@li...> > Subject: Re: [Quantlib-dev] Serialising YieldTermStructure > Message-ID: > < > DB7...@DB... > > > > Content-Type: text/plain; charset="utf-8" > > Thanks for this tip on this serialisation. I attach the results of running > Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus > InterpolatedDiscount<LogLinear> curve > (I get similar results when I compare > PiecewiseYieldCurve<ForwardRate,BackwardFlat> with > InterpolatedDiscount<BackwardFlat>) > > As you can see, the curve generation time remains unchanged but the swap > valuation time is halved (all times in nanoseconds) > > Is this because the bootstrapping occurs only when NPV on the swap is > called? > > Also, I noticed that certain Trait?s work only with certain interpolators. > For example, ForwardRate trait only works with BackwardFlat. > > Are the valid combinations documented somewhere? > > > > Regards > -RS > On 11 Mar 2019, 16:31 +0000, Luigi Ballabio <lui...@gm...>, > wrote: > You can use the InterpolatedForwardCurve class, which is used > underneath PiecewiseYieldCurve when you select the ForwardRate traits. > Once you bootstrap your curve, extract curve.dates(), curve.forwards() > and curve.dayCounter() and serialize them. Later, deserialize them > and pass them to the InterpolatedForwardCurve constructor. You'll > have to instantiate it with the same interpolator you used for the > bootstrap, so, for instance, PiecewiseYieldCurve<ForwardRate, > BackwardFlat> can be deserialized into an > InterpolatedForwardCurve<BackwardFlat>. > > Other traits have corresponding interpolated curves. > > Hope this helps, > Luigi > > On Fri, Mar 1, 2019 at 5:50 PM rajs1 <raj...@ho...> wrote: > > I have seen quite a few older posts on this. What I am trying to do is to > send the curve(s) data (in AVRO) along with the swaptrade (AVRO) together. > I want to avoid the bootstrap process - so want to resurrect > YieldTermStructure from, say, forward rates From 2012, this link: http://quantlib.10058.n7.nabble.com/How-to-construct-a-curve-from-forward-rates-by-using-function-qlInterpolatedYieldCurve-td5242.html > talks about building a PiecewiseYieldCurve with TraitsID=ForwardRate. The > curve points will be represented internally as forward rates from which - I > presume - one could get back to YieldTermStructure. However, most examples > deal with QuantlibXL addin. Is there anyone who could point me to a bare > bones C++ skeleton (on which I can build and test please)? If there are > alternative ideas - I am happy to try and even post back blogs for > posterity. Thanks in advance > ________________________________ > Sent from the quantlib-dev mailing list archive at Nabble.com. > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > -------------- next part -------------- > An HTML attachment was scrubbed... > -------------- next part -------------- > An embedded and charset-unspecified text was scrubbed... > Name: comparison.txt > > ------------------------------ > > Message: 2 > Date: Thu, 28 Mar 2019 12:07:24 +0800 > From: Ben Watson <ben...@ma...> > To: qua...@li... > Cc: qua...@li... > Subject: [Quantlib-dev] Fed Fund futures > Message-ID: > <CAD...@ma...> > Content-Type: text/plain; charset="utf-8" > > Hi there, > > Just a quick question, does quantlib support fed fund futures. The use case > is for an OIS curve that includes these futures as part of curve > construction. > > Regards > > Ben > > On Thu, 28 Mar. 2019, 5:18 am R S, <raj...@ho...> wrote: > > > Thanks for this tip on this serialisation. I attach the results of > running > > Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus > > InterpolatedDiscount<LogLinear> curve > > (I get similar results when I compare > PiecewiseYieldCurve<ForwardRate,BackwardFlat> > > with InterpolatedDiscount<BackwardFlat>) > > > > As you can see, the curve generation time remains unchanged but the swap > > valuation time is halved (all times in nanoseconds) > > > > Is this because the bootstrapping occurs only when NPV on the swap is > > called? > > > > Also, I noticed that certain Trait?s work only with certain > interpolators. > > For example, ForwardRate trait only works with BackwardFlat. > > > > Are the valid combinations documented somewhere? > > > > > > > > Regards > > -RS > > On 11 Mar 2019, 16:31 +0000, Luigi Ballabio <lui...@gm...>, > > wrote: > > > > You can use the InterpolatedForwardCurve class, which is used > > underneath PiecewiseYieldCurve when you select the ForwardRate traits. > > Once you bootstrap your curve, extract curve.dates(), curve.forwards() > > and curve.dayCounter() and serialize them. Later, deserialize them > > and pass them to the InterpolatedForwardCurve constructor. You'll > > have to instantiate it with the same interpolator you used for the > > bootstrap, so, for instance, PiecewiseYieldCurve<ForwardRate, > > BackwardFlat> can be deserialized into an > > InterpolatedForwardCurve<BackwardFlat>. > > > > Other traits have corresponding interpolated curves. > > > > Hope this helps, > > Luigi > > > > On Fri, Mar 1, 2019 at 5:50 PM rajs1 <raj...@ho...> wrote: > > > > > > I have seen quite a few older posts on this. What I am trying to do is to > > send the curve(s) data (in AVRO) along with the swaptrade (AVRO) > together. > > I want to avoid the bootstrap process - so want to resurrect > > YieldTermStructure from, say, forward rates From 2012, this link: > > > http://quantlib.10058.n7.nabble.com/How-to-construct-a-curve-from-forward-rates-by-using-function-qlInterpolatedYieldCurve-td5242.html > > talks about building a PiecewiseYieldCurve with TraitsID=ForwardRate. The > > curve points will be represented internally as forward rates from which > - I > > presume - one could get back to YieldTermStructure. However, most > examples > > deal with QuantlibXL addin. Is there anyone who could point me to a bare > > bones C++ skeleton (on which I can build and test please)? If there are > > alternative ideas - I am happy to try and even post back blogs for > > posterity. Thanks in advance > > ________________________________ > > Sent from the quantlib-dev mailing list archive at Nabble.com. > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > ------------------------------ > > End of QuantLib-dev Digest, Vol 149, Issue 11 > ********************************************* > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |
|
From: Theo B. <tb...@ao...> - 2019-04-02 12:10:14
|
Hi Quantlib, Any reason why for the MulticurveBootstrapping example, the respective ois rate helpers as per code snippet below are using only the ois 1 week quote and notthe corresponding week quote as defined in the code? I saw this a whilst back but seems its in the current release. ext::shared_ptr<RateHelper> ois1W(new OISRateHelper( 2, 1 * Weeks, Handle<Quote>(ois1WRate), eonia)); ext::shared_ptr<RateHelper> ois2W(new OISRateHelper( 2, 2 * Weeks, Handle<Quote>(ois1WRate), eonia)); ext::shared_ptr<RateHelper> ois3W(new OISRateHelper( 2, 3 * Weeks, Handle<Quote>(ois1WRate), eonia)); ext::shared_ptr<RateHelper> ois1M(new OISRateHelper( 2, 1 * Months, Handle<Quote>(ois1WRate), eonia)); Regards Theo -----Original Message----- From: quantlib-dev-request <qua...@li...> To: quantlib-dev <qua...@li...> Sent: Thu, 28 Mar 2019 4:33 Subject: QuantLib-dev Digest, Vol 149, Issue 11 Send QuantLib-dev mailing list submissions to qua...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/quantlib-dev or, via email, send a message with subject or body 'help' to qua...@li... You can reach the person managing the list at qua...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of QuantLib-dev digest..." Today's Topics: 1. Re: Serialising YieldTermStructure (R S) 2. Fed Fund futures (Ben Watson) ---------------------------------------------------------------------- Message: 1 Date: Wed, 27 Mar 2019 21:18:02 +0000 From: R S <raj...@ho...> To: Luigi Ballabio <lui...@gm...> Cc: QuantLib developers <qua...@li...> Subject: Re: [Quantlib-dev] Serialising YieldTermStructure Message-ID: <DB7...@DB...> Content-Type: text/plain; charset="utf-8" Thanks for this tip on this serialisation. I attach the results of running Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus InterpolatedDiscount<LogLinear> curve (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> with InterpolatedDiscount<BackwardFlat>) As you can see, the curve generation time remains unchanged but the swap valuation time is halved (all times in nanoseconds) Is this because the bootstrapping occurs only when NPV on the swap is called? Also, I noticed that certain Trait?s work only with certain interpolators. For example, ForwardRate trait only works with BackwardFlat. Are the valid combinations documented somewhere? Regards -RS On 11 Mar 2019, 16:31 +0000, Luigi Ballabio <lui...@gm...>, wrote: You can use the InterpolatedForwardCurve class, which is used underneath PiecewiseYieldCurve when you select the ForwardRate traits. Once you bootstrap your curve, extract curve.dates(), curve.forwards() and curve.dayCounter() and serialize them. Later, deserialize them and pass them to the InterpolatedForwardCurve constructor. You'll have to instantiate it with the same interpolator you used for the bootstrap, so, for instance, PiecewiseYieldCurve<ForwardRate, BackwardFlat> can be deserialized into an InterpolatedForwardCurve<BackwardFlat>. Other traits have corresponding interpolated curves. Hope this helps, Luigi On Fri, Mar 1, 2019 at 5:50 PM rajs1 <raj...@ho...> wrote: I have seen quite a few older posts on this. What I am trying to do is to send the curve(s) data (in AVRO) along with the swaptrade (AVRO) together. I want to avoid the bootstrap process - so want to resurrect YieldTermStructure from, say, forward rates From 2012, this link: http://quantlib.10058.n7.nabble.com/How-to-construct-a-curve-from-forward-rates-by-using-function-qlInterpolatedYieldCurve-td5242.html talks about building a PiecewiseYieldCurve with TraitsID=ForwardRate. The curve points will be represented internally as forward rates from which - I presume - one could get back to YieldTermStructure. However, most examples deal with QuantlibXL addin. Is there anyone who could point me to a bare bones C++ skeleton (on which I can build and test please)? If there are alternative ideas - I am happy to try and even post back blogs for posterity. Thanks in advance ________________________________ Sent from the quantlib-dev mailing list archive at Nabble.com. _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev -------------- next part -------------- An HTML attachment was scrubbed... -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: comparison.txt ------------------------------ Message: 2 Date: Thu, 28 Mar 2019 12:07:24 +0800 From: Ben Watson <ben...@ma...> To: qua...@li... Cc: qua...@li... Subject: [Quantlib-dev] Fed Fund futures Message-ID: <CAD...@ma...> Content-Type: text/plain; charset="utf-8" Hi there, Just a quick question, does quantlib support fed fund futures. The use case is for an OIS curve that includes these futures as part of curve construction. Regards Ben On Thu, 28 Mar. 2019, 5:18 am R S, <raj...@ho...> wrote: > Thanks for this tip on this serialisation. I attach the results of running > Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus > InterpolatedDiscount<LogLinear> curve > (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> > with InterpolatedDiscount<BackwardFlat>) > > As you can see, the curve generation time remains unchanged but the swap > valuation time is halved (all times in nanoseconds) > > Is this because the bootstrapping occurs only when NPV on the swap is > called? > > Also, I noticed that certain Trait?s work only with certain interpolators. > For example, ForwardRate trait only works with BackwardFlat. > > Are the valid combinations documented somewhere? > > > > Regards > -RS > On 11 Mar 2019, 16:31 +0000, Luigi Ballabio <lui...@gm...>, > wrote: > > You can use the InterpolatedForwardCurve class, which is used > underneath PiecewiseYieldCurve when you select the ForwardRate traits. > Once you bootstrap your curve, extract curve.dates(), curve.forwards() > and curve.dayCounter() and serialize them. Later, deserialize them > and pass them to the InterpolatedForwardCurve constructor. You'll > have to instantiate it with the same interpolator you used for the > bootstrap, so, for instance, PiecewiseYieldCurve<ForwardRate, > BackwardFlat> can be deserialized into an > InterpolatedForwardCurve<BackwardFlat>. > > Other traits have corresponding interpolated curves. > > Hope this helps, > Luigi > > On Fri, Mar 1, 2019 at 5:50 PM rajs1 <raj...@ho...> wrote: > > > I have seen quite a few older posts on this. What I am trying to do is to > send the curve(s) data (in AVRO) along with the swaptrade (AVRO) together. > I want to avoid the bootstrap process - so want to resurrect > YieldTermStructure from, say, forward rates From 2012, this link: > http://quantlib.10058.n7.nabble.com/How-to-construct-a-curve-from-forward-rates-by-using-function-qlInterpolatedYieldCurve-td5242.html > talks about building a PiecewiseYieldCurve with TraitsID=ForwardRate. The > curve points will be represented internally as forward rates from which - I > presume - one could get back to YieldTermStructure. However, most examples > deal with QuantlibXL addin. Is there anyone who could point me to a bare > bones C++ skeleton (on which I can build and test please)? If there are > alternative ideas - I am happy to try and even post back blogs for > posterity. Thanks in advance > ________________________________ > Sent from the quantlib-dev mailing list archive at Nabble.com. > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > -------------- next part -------------- An HTML attachment was scrubbed... ------------------------------ ------------------------------ Subject: Digest Footer _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev ------------------------------ End of QuantLib-dev Digest, Vol 149, Issue 11 ********************************************* |
|
From: Ben W. <ben...@ma...> - 2019-03-28 04:33:20
|
Hi there, Just a quick question, does quantlib support fed fund futures. The use case is for an OIS curve that includes these futures as part of curve construction. Regards Ben On Thu, 28 Mar. 2019, 5:18 am R S, <raj...@ho...> wrote: > Thanks for this tip on this serialisation. I attach the results of running > Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus > InterpolatedDiscount<LogLinear> curve > (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> > with InterpolatedDiscount<BackwardFlat>) > > As you can see, the curve generation time remains unchanged but the swap > valuation time is halved (all times in nanoseconds) > > Is this because the bootstrapping occurs only when NPV on the swap is > called? > > Also, I noticed that certain Trait’s work only with certain interpolators. > For example, ForwardRate trait only works with BackwardFlat. > > Are the valid combinations documented somewhere? > > > > Regards > -RS > On 11 Mar 2019, 16:31 +0000, Luigi Ballabio <lui...@gm...>, > wrote: > > You can use the InterpolatedForwardCurve class, which is used > underneath PiecewiseYieldCurve when you select the ForwardRate traits. > Once you bootstrap your curve, extract curve.dates(), curve.forwards() > and curve.dayCounter() and serialize them. Later, deserialize them > and pass them to the InterpolatedForwardCurve constructor. You'll > have to instantiate it with the same interpolator you used for the > bootstrap, so, for instance, PiecewiseYieldCurve<ForwardRate, > BackwardFlat> can be deserialized into an > InterpolatedForwardCurve<BackwardFlat>. > > Other traits have corresponding interpolated curves. > > Hope this helps, > Luigi > > On Fri, Mar 1, 2019 at 5:50 PM rajs1 <raj...@ho...> wrote: > > > I have seen quite a few older posts on this. What I am trying to do is to > send the curve(s) data (in AVRO) along with the swaptrade (AVRO) together. > I want to avoid the bootstrap process - so want to resurrect > YieldTermStructure from, say, forward rates From 2012, this link: > http://quantlib.10058.n7.nabble.com/How-to-construct-a-curve-from-forward-rates-by-using-function-qlInterpolatedYieldCurve-td5242.html > talks about building a PiecewiseYieldCurve with TraitsID=ForwardRate. The > curve points will be represented internally as forward rates from which - I > presume - one could get back to YieldTermStructure. However, most examples > deal with QuantlibXL addin. Is there anyone who could point me to a bare > bones C++ skeleton (on which I can build and test please)? If there are > alternative ideas - I am happy to try and even post back blogs for > posterity. Thanks in advance > ________________________________ > Sent from the quantlib-dev mailing list archive at Nabble.com. > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |
|
From: R S <raj...@ho...> - 2019-03-27 21:18:14
|
Thanks for this tip on this serialisation. I attach the results of running Swap pricing with PiecewiseYieldCurve<Discount,LogLinear> versus InterpolatedDiscount<LogLinear> curve (I get similar results when I compare PiecewiseYieldCurve<ForwardRate,BackwardFlat> with InterpolatedDiscount<BackwardFlat>) As you can see, the curve generation time remains unchanged but the swap valuation time is halved (all times in nanoseconds) Is this because the bootstrapping occurs only when NPV on the swap is called? Also, I noticed that certain Trait’s work only with certain interpolators. For example, ForwardRate trait only works with BackwardFlat. Are the valid combinations documented somewhere? Regards -RS On 11 Mar 2019, 16:31 +0000, Luigi Ballabio <lui...@gm...>, wrote: You can use the InterpolatedForwardCurve class, which is used underneath PiecewiseYieldCurve when you select the ForwardRate traits. Once you bootstrap your curve, extract curve.dates(), curve.forwards() and curve.dayCounter() and serialize them. Later, deserialize them and pass them to the InterpolatedForwardCurve constructor. You'll have to instantiate it with the same interpolator you used for the bootstrap, so, for instance, PiecewiseYieldCurve<ForwardRate, BackwardFlat> can be deserialized into an InterpolatedForwardCurve<BackwardFlat>. Other traits have corresponding interpolated curves. Hope this helps, Luigi On Fri, Mar 1, 2019 at 5:50 PM rajs1 <raj...@ho...> wrote: I have seen quite a few older posts on this. What I am trying to do is to send the curve(s) data (in AVRO) along with the swaptrade (AVRO) together. I want to avoid the bootstrap process - so want to resurrect YieldTermStructure from, say, forward rates From 2012, this link: http://quantlib.10058.n7.nabble.com/How-to-construct-a-curve-from-forward-rates-by-using-function-qlInterpolatedYieldCurve-td5242.html talks about building a PiecewiseYieldCurve with TraitsID=ForwardRate. The curve points will be represented internally as forward rates from which - I presume - one could get back to YieldTermStructure. However, most examples deal with QuantlibXL addin. Is there anyone who could point me to a bare bones C++ skeleton (on which I can build and test please)? If there are alternative ideas - I am happy to try and even post back blogs for posterity. Thanks in advance ________________________________ Sent from the quantlib-dev mailing list archive at Nabble.com. _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: R S <raj...@ho...> - 2019-03-22 13:26:24
|
I think it was a rookie error on my part - putting the iterator initialisation of the period inside the loop instead of outside
Pointing out that the dates comparison was erring on the 2nd iteration was my clue - so thanks for that Luigi
Regards
-RS
On 22 Mar 2019, 12:22 +0000, RajSubReg <raj...@ho...>, wrote:
Sorry - my mistake - no idea why I am reading != as == (brain has curdled of late - perhaps)
I have a utility that constructs the deposit helper (I am adding various helpers to a vector through it)
RateUtility::depoHelper(float rate, Period qlperiod, Calendar &calendar,
int fixingDays, bool endOfMonth,
DayCounter &dayCounter,
BusinessDayConvention &bizDayConven) {
Natural _fixingDays = Natural(fixingDays);
boost::shared_ptr<SimpleQuote> quote(new SimpleQuote(rate));
boost::shared_ptr<RateHelper> dh(new DepositRateHelper(Handle<Quote>(quote),
qlperiod, _fixingDays,
calendar, bizDayConven,
endOfMonth, dayCounter));
return dh;
}
I am building two vectors (as I mentioned earlier):
vector<float> rates;
rates.push_back(0.0382);
rates.push_back(0.0372);
vector<Period> qlperiods;
qlperiods.push_back(1 * Weeks);
qlperiods.push_back(4 * Weeks);
then add the helpers in a loop:
for (vector<float>::iterator it = rates.begin(); it < rates.end(); it++) {
vector<Period>::iterator p_it = qlperiods.begin();
helper.push_back(this->depoHelper(*it, *p_it, calendar, fixingDays,
endOfMonth, dayCounter, bizDayConven));
p_it++;
}
The various parameters are:
Calendar calendar = TARGET();
Settings::instance().evaluationDate() = Date(30,August,2010);
DayCounter dayCounter = Actual360();
BusinessDayConvention bizDayConv = ModifiedFollowing;
int fixingDays = 2;
Regards
-RS
On 22 Mar 2019, 11:17 +0000, Luigi Ballabio <lui...@gm...>, wrote:
It's not failing when i == 1. The QL_REQUIRE specifies the condition
to be satisfied, and it is (the dates are different, as required).
It's failing when i == 2, because the two dates are the same. How are
you creating the two deposits?
On Fri, Mar 22, 2019 at 11:50 AM R S <raj...@ho...> wrote:
Both pillars are 40429 (8/Sep/2010) - I can see this under ts_ -> instruments_ -> px -> YieldTermStructure
But I guess its failing when i == 1
because
dates[0] is 40422
and
dates[1] is 40429
Regards
-RS
On 22 Mar 2019, 10:36 +0000, Luigi Ballabio <lui...@gm...>, wrote:
alive_ = 2 means that you have two deposits. dates[0] is the
reference date of the curve. dates[1] is the pillar of the first
deposit. What is the value of dates[2], i.e., the pillar of the
second deposit? If it is equal to dates[1], which seems to be the
case, how are you initializing the deposits?
Luigi
On Thu, Mar 21, 2019 at 9:34 PM R S <raj...@ho...> wrote:
I have been debugging the following use case
Two DepositHelper constructed with the following rates and periods:
0.0382, 1 * Weeks
0.0372, 4 * Weeks
with following parameters:
DayCounter dayCounter = Actual360();
BusinessDayConvention bizDayConv = ModifiedFollowing;
int fixingDays = 2;
Date settlementDate(1, September, 2010);
double tolerance = 1.0e-15;
I am constructing a
PiecewiseYieldCurve<Discount, LogLinear>(settlementDate, helper, ActualActual(ActualActual::ISDA), tolerance)
I am actually constructing the shared pointer as follows:
boost::shared_ptr<PiecewiseYieldCurve<Discount, LogLinear>> depoSwapTermStructure(
new PiecewiseYieldCurve<Discount, LogLinear>(settlementDate, helper,
ActualActual(ActualActual::ISDA),
tolerance)
);
All executes well except when i try and do this:
vector<Date> curvedates = depoSwapTermStructure->dates();
The exception is:
terminate called after throwing an instance of 'QuantLib::Error'
what(): more than one instrument with pillar September 8th, 2010
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
This happens at line 111 (for loop) of iterativebootstrap.hpp
At line 102, dates array is defined as:
dates.resize(alive_+1); where alive_ = 2
firstDate is set to 40422 (1/Sep/2010) which becomes dates[0]
The pillar date is set to 40429 (8/Sep/2010) on the DepositHelpers which becomes dates[1]
which ends up satisfying this condition:
QL_REQUIRE(dates[i-1]!=dates[i],
"more than one instrument with pillar " << dates[i]);
Clearly I am missing an important step in the bootstrap before I extract the dates and rates out (I want to extract the forward rates to feed it back to an InterpolatedCurve to avoid repeating bootstrap)
Any pointers would be appreciated
Regards
-RS
On 13 Mar 2019, 11:57 +0000, Eric Ehlers , wrote:
All three files received - curve_hydration.zip, curve_hydration.tar, and curve_hydration.tar.gz. I will take a look this weekend and report back here.
Regards,
Eric
On 12/03/2019 20:32, R S wrote:
zip was blocked, tar was too large. Trying to send as tar.gz
Regards
-RS
On 11 Mar 2019, 15:10 +0000, Eric Ehlers <eri...@re...>, wrote:
Would you mind sending over the smallest standalone program that recreates the error?
Regards,
Eric
On 08/03/2019 21:16, R S wrote:
As advised here
http://quantlib.10058.n7.nabble.com/How-to-serialize-an-object-in-Quantlibxl-td763.html
I am attempting to save date and rates from my curve in order to reconstruct it (avoid bootstrap)
I am taking a pre-canned example with deposit and swap helpers
rates.push_back(0.0382); qlperiods.push_back(5 * Days);
rates.push_back(0.0372); qlperiods.push_back(1 * Months);
rates.push_back(0.037125); qlperiods.push_back(2 * Years);
(I have more but I have narrowed it to these to keep it simple)
First two go into building DepositRateHelper and the last one, SwapRateHelper
I then construct a PiecewiseYieldCurve<Discount, LogLinear>
When I try to print the dates and rates from. this. depoSwap curve
vector<Date> curvedates = depoSwapTermStructure->dates();
vector<Real> curverates = depoSwapTermStructure->data();
vector<Real>::iterator ri = curverates.begin();
for (vector<Date>::iterator it = curvedates.begin(); it != curvedates.end(); it++) {
cout << *it << " : " << *ri << endl;
ri++;
}
I keep getting this error
terminate called after throwing an instance of 'QuantLib::Error'
what(): more than one instrument with pillar March 19th, 2019
Settlement is set to
Date settlementDate(1, September, 2010);
The error stops if i comment out
rates.push_back(0.0382); qlperiods.push_back(5 * Days);
I am lost as to why
Regards
-RS
_______________________________________________
QuantLib-dev mailing list
Qua...@li...
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
_______________________________________________
QuantLib-dev mailing list
Qua...@li...
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
|
|
From: R S <raj...@ho...> - 2019-03-22 12:23:07
|
Sorry - my mistake - no idea why I am reading != as == (brain has curdled of late - perhaps)
I have a utility that constructs the deposit helper (I am adding various helpers to a vector through it)
RateUtility::depoHelper(float rate, Period qlperiod, Calendar &calendar,
int fixingDays, bool endOfMonth,
DayCounter &dayCounter,
BusinessDayConvention &bizDayConven) {
Natural _fixingDays = Natural(fixingDays);
boost::shared_ptr<SimpleQuote> quote(new SimpleQuote(rate));
boost::shared_ptr<RateHelper> dh(new DepositRateHelper(Handle<Quote>(quote),
qlperiod, _fixingDays,
calendar, bizDayConven,
endOfMonth, dayCounter));
return dh;
}
I am building two vectors (as I mentioned earlier):
vector<float> rates;
rates.push_back(0.0382);
rates.push_back(0.0372);
vector<Period> qlperiods;
qlperiods.push_back(1 * Weeks);
qlperiods.push_back(4 * Weeks);
then add the helpers in a loop:
for (vector<float>::iterator it = rates.begin(); it < rates.end(); it++) {
vector<Period>::iterator p_it = qlperiods.begin();
helper.push_back(this->depoHelper(*it, *p_it, calendar, fixingDays,
endOfMonth, dayCounter, bizDayConven));
p_it++;
}
The various parameters are:
Calendar calendar = TARGET();
Settings::instance().evaluationDate() = Date(30,August,2010);
DayCounter dayCounter = Actual360();
BusinessDayConvention bizDayConv = ModifiedFollowing;
int fixingDays = 2;
Regards
-RS
On 22 Mar 2019, 11:17 +0000, Luigi Ballabio <lui...@gm...>, wrote:
It's not failing when i == 1. The QL_REQUIRE specifies the condition
to be satisfied, and it is (the dates are different, as required).
It's failing when i == 2, because the two dates are the same. How are
you creating the two deposits?
On Fri, Mar 22, 2019 at 11:50 AM R S <raj...@ho...> wrote:
Both pillars are 40429 (8/Sep/2010) - I can see this under ts_ -> instruments_ -> px -> YieldTermStructure
But I guess its failing when i == 1
because
dates[0] is 40422
and
dates[1] is 40429
Regards
-RS
On 22 Mar 2019, 10:36 +0000, Luigi Ballabio <lui...@gm...>, wrote:
alive_ = 2 means that you have two deposits. dates[0] is the
reference date of the curve. dates[1] is the pillar of the first
deposit. What is the value of dates[2], i.e., the pillar of the
second deposit? If it is equal to dates[1], which seems to be the
case, how are you initializing the deposits?
Luigi
On Thu, Mar 21, 2019 at 9:34 PM R S <raj...@ho...> wrote:
I have been debugging the following use case
Two DepositHelper constructed with the following rates and periods:
0.0382, 1 * Weeks
0.0372, 4 * Weeks
with following parameters:
DayCounter dayCounter = Actual360();
BusinessDayConvention bizDayConv = ModifiedFollowing;
int fixingDays = 2;
Date settlementDate(1, September, 2010);
double tolerance = 1.0e-15;
I am constructing a
PiecewiseYieldCurve<Discount, LogLinear>(settlementDate, helper, ActualActual(ActualActual::ISDA), tolerance)
I am actually constructing the shared pointer as follows:
boost::shared_ptr<PiecewiseYieldCurve<Discount, LogLinear>> depoSwapTermStructure(
new PiecewiseYieldCurve<Discount, LogLinear>(settlementDate, helper,
ActualActual(ActualActual::ISDA),
tolerance)
);
All executes well except when i try and do this:
vector<Date> curvedates = depoSwapTermStructure->dates();
The exception is:
terminate called after throwing an instance of 'QuantLib::Error'
what(): more than one instrument with pillar September 8th, 2010
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
This happens at line 111 (for loop) of iterativebootstrap.hpp
At line 102, dates array is defined as:
dates.resize(alive_+1); where alive_ = 2
firstDate is set to 40422 (1/Sep/2010) which becomes dates[0]
The pillar date is set to 40429 (8/Sep/2010) on the DepositHelpers which becomes dates[1]
which ends up satisfying this condition:
QL_REQUIRE(dates[i-1]!=dates[i],
"more than one instrument with pillar " << dates[i]);
Clearly I am missing an important step in the bootstrap before I extract the dates and rates out (I want to extract the forward rates to feed it back to an InterpolatedCurve to avoid repeating bootstrap)
Any pointers would be appreciated
Regards
-RS
On 13 Mar 2019, 11:57 +0000, Eric Ehlers , wrote:
All three files received - curve_hydration.zip, curve_hydration.tar, and curve_hydration.tar.gz. I will take a look this weekend and report back here.
Regards,
Eric
On 12/03/2019 20:32, R S wrote:
zip was blocked, tar was too large. Trying to send as tar.gz
Regards
-RS
On 11 Mar 2019, 15:10 +0000, Eric Ehlers <eri...@re...>, wrote:
Would you mind sending over the smallest standalone program that recreates the error?
Regards,
Eric
On 08/03/2019 21:16, R S wrote:
As advised here
http://quantlib.10058.n7.nabble.com/How-to-serialize-an-object-in-Quantlibxl-td763.html
I am attempting to save date and rates from my curve in order to reconstruct it (avoid bootstrap)
I am taking a pre-canned example with deposit and swap helpers
rates.push_back(0.0382); qlperiods.push_back(5 * Days);
rates.push_back(0.0372); qlperiods.push_back(1 * Months);
rates.push_back(0.037125); qlperiods.push_back(2 * Years);
(I have more but I have narrowed it to these to keep it simple)
First two go into building DepositRateHelper and the last one, SwapRateHelper
I then construct a PiecewiseYieldCurve<Discount, LogLinear>
When I try to print the dates and rates from. this. depoSwap curve
vector<Date> curvedates = depoSwapTermStructure->dates();
vector<Real> curverates = depoSwapTermStructure->data();
vector<Real>::iterator ri = curverates.begin();
for (vector<Date>::iterator it = curvedates.begin(); it != curvedates.end(); it++) {
cout << *it << " : " << *ri << endl;
ri++;
}
I keep getting this error
terminate called after throwing an instance of 'QuantLib::Error'
what(): more than one instrument with pillar March 19th, 2019
Settlement is set to
Date settlementDate(1, September, 2010);
The error stops if i comment out
rates.push_back(0.0382); qlperiods.push_back(5 * Days);
I am lost as to why
Regards
-RS
_______________________________________________
QuantLib-dev mailing list
Qua...@li...
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
_______________________________________________
QuantLib-dev mailing list
Qua...@li...
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
|
|
From: Luigi B. <lui...@gm...> - 2019-03-22 11:17:59
|
It's not failing when i == 1. The QL_REQUIRE specifies the condition to be satisfied, and it is (the dates are different, as required). It's failing when i == 2, because the two dates are the same. How are you creating the two deposits? On Fri, Mar 22, 2019 at 11:50 AM R S <raj...@ho...> wrote: > > Both pillars are 40429 (8/Sep/2010) - I can see this under ts_ -> instruments_ -> px -> YieldTermStructure > > But I guess its failing when i == 1 > > because > dates[0] is 40422 > and > dates[1] is 40429 > > > Regards > -RS > On 22 Mar 2019, 10:36 +0000, Luigi Ballabio <lui...@gm...>, wrote: > > alive_ = 2 means that you have two deposits. dates[0] is the > reference date of the curve. dates[1] is the pillar of the first > deposit. What is the value of dates[2], i.e., the pillar of the > second deposit? If it is equal to dates[1], which seems to be the > case, how are you initializing the deposits? > > Luigi > > On Thu, Mar 21, 2019 at 9:34 PM R S <raj...@ho...> wrote: > > > I have been debugging the following use case > > Two DepositHelper constructed with the following rates and periods: > 0.0382, 1 * Weeks > 0.0372, 4 * Weeks > > with following parameters: > DayCounter dayCounter = Actual360(); > BusinessDayConvention bizDayConv = ModifiedFollowing; > int fixingDays = 2; > Date settlementDate(1, September, 2010); > double tolerance = 1.0e-15; > > I am constructing a > PiecewiseYieldCurve<Discount, LogLinear>(settlementDate, helper, ActualActual(ActualActual::ISDA), tolerance) > > I am actually constructing the shared pointer as follows: > boost::shared_ptr<PiecewiseYieldCurve<Discount, LogLinear>> depoSwapTermStructure( > new PiecewiseYieldCurve<Discount, LogLinear>(settlementDate, helper, > ActualActual(ActualActual::ISDA), > tolerance) > ); > > All executes well except when i try and do this: > > vector<Date> curvedates = depoSwapTermStructure->dates(); > > The exception is: > terminate called after throwing an instance of 'QuantLib::Error' > what(): more than one instrument with pillar September 8th, 2010 > Process finished with exit code 134 (interrupted by signal 6: SIGABRT) > > This happens at line 111 (for loop) of iterativebootstrap.hpp > > At line 102, dates array is defined as: > dates.resize(alive_+1); where alive_ = 2 > > firstDate is set to 40422 (1/Sep/2010) which becomes dates[0] > > The pillar date is set to 40429 (8/Sep/2010) on the DepositHelpers which becomes dates[1] > > which ends up satisfying this condition: > QL_REQUIRE(dates[i-1]!=dates[i], > "more than one instrument with pillar " << dates[i]); > > Clearly I am missing an important step in the bootstrap before I extract the dates and rates out (I want to extract the forward rates to feed it back to an InterpolatedCurve to avoid repeating bootstrap) > > Any pointers would be appreciated > > > Regards > -RS > On 13 Mar 2019, 11:57 +0000, Eric Ehlers , wrote: > > All three files received - curve_hydration.zip, curve_hydration.tar, and curve_hydration.tar.gz. I will take a look this weekend and report back here. > > Regards, > > Eric > > On 12/03/2019 20:32, R S wrote: > > zip was blocked, tar was too large. Trying to send as tar.gz > > > > Regards > -RS > On 11 Mar 2019, 15:10 +0000, Eric Ehlers <eri...@re...>, wrote: > > Would you mind sending over the smallest standalone program that recreates the error? > > Regards, > > Eric > > On 08/03/2019 21:16, R S wrote: > > As advised here > http://quantlib.10058.n7.nabble.com/How-to-serialize-an-object-in-Quantlibxl-td763.html > > I am attempting to save date and rates from my curve in order to reconstruct it (avoid bootstrap) > > I am taking a pre-canned example with deposit and swap helpers > > rates.push_back(0.0382); qlperiods.push_back(5 * Days); > rates.push_back(0.0372); qlperiods.push_back(1 * Months); > rates.push_back(0.037125); qlperiods.push_back(2 * Years); > > (I have more but I have narrowed it to these to keep it simple) > > First two go into building DepositRateHelper and the last one, SwapRateHelper > > I then construct a PiecewiseYieldCurve<Discount, LogLinear> > > When I try to print the dates and rates from. this. depoSwap curve > > vector<Date> curvedates = depoSwapTermStructure->dates(); > vector<Real> curverates = depoSwapTermStructure->data(); > > vector<Real>::iterator ri = curverates.begin(); > for (vector<Date>::iterator it = curvedates.begin(); it != curvedates.end(); it++) { > cout << *it << " : " << *ri << endl; > ri++; > } > > I keep getting this error > terminate called after throwing an instance of 'QuantLib::Error' > what(): more than one instrument with pillar March 19th, 2019 > > Settlement is set to > Date settlementDate(1, September, 2010); > > The error stops if i comment out > rates.push_back(0.0382); qlperiods.push_back(5 * Days); > > I am lost as to why > > > > Regards > -RS > > > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: R S <raj...@ho...> - 2019-03-22 10:50:43
|
Both pillars are 40429 (8/Sep/2010) - I can see this under ts_ -> instruments_ -> px -> YieldTermStructure But I guess its failing when i == 1 because dates[0] is 40422 and dates[1] is 40429 Regards -RS On 22 Mar 2019, 10:36 +0000, Luigi Ballabio <lui...@gm...>, wrote: alive_ = 2 means that you have two deposits. dates[0] is the reference date of the curve. dates[1] is the pillar of the first deposit. What is the value of dates[2], i.e., the pillar of the second deposit? If it is equal to dates[1], which seems to be the case, how are you initializing the deposits? Luigi On Thu, Mar 21, 2019 at 9:34 PM R S <raj...@ho...> wrote: I have been debugging the following use case Two DepositHelper constructed with the following rates and periods: 0.0382, 1 * Weeks 0.0372, 4 * Weeks with following parameters: DayCounter dayCounter = Actual360(); BusinessDayConvention bizDayConv = ModifiedFollowing; int fixingDays = 2; Date settlementDate(1, September, 2010); double tolerance = 1.0e-15; I am constructing a PiecewiseYieldCurve<Discount, LogLinear>(settlementDate, helper, ActualActual(ActualActual::ISDA), tolerance) I am actually constructing the shared pointer as follows: boost::shared_ptr<PiecewiseYieldCurve<Discount, LogLinear>> depoSwapTermStructure( new PiecewiseYieldCurve<Discount, LogLinear>(settlementDate, helper, ActualActual(ActualActual::ISDA), tolerance) ); All executes well except when i try and do this: vector<Date> curvedates = depoSwapTermStructure->dates(); The exception is: terminate called after throwing an instance of 'QuantLib::Error' what(): more than one instrument with pillar September 8th, 2010 Process finished with exit code 134 (interrupted by signal 6: SIGABRT) This happens at line 111 (for loop) of iterativebootstrap.hpp At line 102, dates array is defined as: dates.resize(alive_+1); where alive_ = 2 firstDate is set to 40422 (1/Sep/2010) which becomes dates[0] The pillar date is set to 40429 (8/Sep/2010) on the DepositHelpers which becomes dates[1] which ends up satisfying this condition: QL_REQUIRE(dates[i-1]!=dates[i], "more than one instrument with pillar " << dates[i]); Clearly I am missing an important step in the bootstrap before I extract the dates and rates out (I want to extract the forward rates to feed it back to an InterpolatedCurve to avoid repeating bootstrap) Any pointers would be appreciated Regards -RS On 13 Mar 2019, 11:57 +0000, Eric Ehlers , wrote: All three files received - curve_hydration.zip, curve_hydration.tar, and curve_hydration.tar.gz. I will take a look this weekend and report back here. Regards, Eric On 12/03/2019 20:32, R S wrote: zip was blocked, tar was too large. Trying to send as tar.gz Regards -RS On 11 Mar 2019, 15:10 +0000, Eric Ehlers <eri...@re...>, wrote: Would you mind sending over the smallest standalone program that recreates the error? Regards, Eric On 08/03/2019 21:16, R S wrote: As advised here http://quantlib.10058.n7.nabble.com/How-to-serialize-an-object-in-Quantlibxl-td763.html I am attempting to save date and rates from my curve in order to reconstruct it (avoid bootstrap) I am taking a pre-canned example with deposit and swap helpers rates.push_back(0.0382); qlperiods.push_back(5 * Days); rates.push_back(0.0372); qlperiods.push_back(1 * Months); rates.push_back(0.037125); qlperiods.push_back(2 * Years); (I have more but I have narrowed it to these to keep it simple) First two go into building DepositRateHelper and the last one, SwapRateHelper I then construct a PiecewiseYieldCurve<Discount, LogLinear> When I try to print the dates and rates from. this. depoSwap curve vector<Date> curvedates = depoSwapTermStructure->dates(); vector<Real> curverates = depoSwapTermStructure->data(); vector<Real>::iterator ri = curverates.begin(); for (vector<Date>::iterator it = curvedates.begin(); it != curvedates.end(); it++) { cout << *it << " : " << *ri << endl; ri++; } I keep getting this error terminate called after throwing an instance of 'QuantLib::Error' what(): more than one instrument with pillar March 19th, 2019 Settlement is set to Date settlementDate(1, September, 2010); The error stops if i comment out rates.push_back(0.0382); qlperiods.push_back(5 * Days); I am lost as to why Regards -RS _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev |