You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(60) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(18) |
Feb
(4) |
Mar
(6) |
Apr
(2) |
May
|
Jun
(12) |
Jul
(48) |
Aug
(6) |
Sep
(3) |
Oct
(24) |
Nov
(15) |
Dec
(18) |
| 2002 |
Jan
(39) |
Feb
(12) |
Mar
(80) |
Apr
(72) |
May
(46) |
Jun
(27) |
Jul
(23) |
Aug
(34) |
Sep
(65) |
Oct
(71) |
Nov
(19) |
Dec
(14) |
| 2003 |
Jan
(44) |
Feb
(59) |
Mar
(18) |
Apr
(62) |
May
(54) |
Jun
(27) |
Jul
(46) |
Aug
(15) |
Sep
(44) |
Oct
(36) |
Nov
(19) |
Dec
(12) |
| 2004 |
Jan
(26) |
Feb
(33) |
Mar
(47) |
Apr
(63) |
May
(36) |
Jun
(65) |
Jul
(80) |
Aug
(163) |
Sep
(65) |
Oct
(39) |
Nov
(36) |
Dec
(39) |
| 2005 |
Jan
(97) |
Feb
(78) |
Mar
(64) |
Apr
(64) |
May
(48) |
Jun
(55) |
Jul
(89) |
Aug
(57) |
Sep
(51) |
Oct
(111) |
Nov
(86) |
Dec
(76) |
| 2006 |
Jan
(84) |
Feb
(103) |
Mar
(143) |
Apr
(92) |
May
(55) |
Jun
(58) |
Jul
(71) |
Aug
(57) |
Sep
(74) |
Oct
(59) |
Nov
(8) |
Dec
(32) |
| 2007 |
Jan
(60) |
Feb
(40) |
Mar
(50) |
Apr
(26) |
May
(61) |
Jun
(120) |
Jul
(119) |
Aug
(48) |
Sep
(121) |
Oct
(66) |
Nov
(103) |
Dec
(43) |
| 2008 |
Jan
(60) |
Feb
(109) |
Mar
(92) |
Apr
(106) |
May
(82) |
Jun
(59) |
Jul
(67) |
Aug
(118) |
Sep
(131) |
Oct
(56) |
Nov
(37) |
Dec
(69) |
| 2009 |
Jan
(75) |
Feb
(76) |
Mar
(103) |
Apr
(78) |
May
(61) |
Jun
(35) |
Jul
(66) |
Aug
(69) |
Sep
(166) |
Oct
(46) |
Nov
(72) |
Dec
(65) |
| 2010 |
Jan
(48) |
Feb
(57) |
Mar
(93) |
Apr
(85) |
May
(123) |
Jun
(82) |
Jul
(98) |
Aug
(121) |
Sep
(146) |
Oct
(86) |
Nov
(72) |
Dec
(34) |
| 2011 |
Jan
(96) |
Feb
(55) |
Mar
(73) |
Apr
(57) |
May
(33) |
Jun
(74) |
Jul
(89) |
Aug
(71) |
Sep
(103) |
Oct
(76) |
Nov
(52) |
Dec
(61) |
| 2012 |
Jan
(48) |
Feb
(54) |
Mar
(78) |
Apr
(60) |
May
(75) |
Jun
(59) |
Jul
(33) |
Aug
(66) |
Sep
(43) |
Oct
(46) |
Nov
(75) |
Dec
(51) |
| 2013 |
Jan
(112) |
Feb
(72) |
Mar
(49) |
Apr
(48) |
May
(42) |
Jun
(44) |
Jul
(80) |
Aug
(19) |
Sep
(33) |
Oct
(37) |
Nov
(38) |
Dec
(98) |
| 2014 |
Jan
(113) |
Feb
(93) |
Mar
(49) |
Apr
(106) |
May
(97) |
Jun
(155) |
Jul
(87) |
Aug
(127) |
Sep
(85) |
Oct
(48) |
Nov
(41) |
Dec
(37) |
| 2015 |
Jan
(34) |
Feb
(50) |
Mar
(104) |
Apr
(80) |
May
(82) |
Jun
(66) |
Jul
(41) |
Aug
(84) |
Sep
(37) |
Oct
(65) |
Nov
(83) |
Dec
(52) |
| 2016 |
Jan
(68) |
Feb
(35) |
Mar
(42) |
Apr
(35) |
May
(54) |
Jun
(75) |
Jul
(45) |
Aug
(52) |
Sep
(60) |
Oct
(52) |
Nov
(36) |
Dec
(64) |
| 2017 |
Jan
(92) |
Feb
(59) |
Mar
(35) |
Apr
(53) |
May
(83) |
Jun
(43) |
Jul
(65) |
Aug
(68) |
Sep
(46) |
Oct
(75) |
Nov
(40) |
Dec
(49) |
| 2018 |
Jan
(68) |
Feb
(54) |
Mar
(48) |
Apr
(58) |
May
(51) |
Jun
(44) |
Jul
(40) |
Aug
(68) |
Sep
(35) |
Oct
(15) |
Nov
(7) |
Dec
(37) |
| 2019 |
Jan
(43) |
Feb
(7) |
Mar
(22) |
Apr
(21) |
May
(31) |
Jun
(39) |
Jul
(73) |
Aug
(45) |
Sep
(47) |
Oct
(89) |
Nov
(19) |
Dec
(69) |
| 2020 |
Jan
(52) |
Feb
(63) |
Mar
(45) |
Apr
(59) |
May
(42) |
Jun
(57) |
Jul
(30) |
Aug
(29) |
Sep
(75) |
Oct
(64) |
Nov
(96) |
Dec
(22) |
| 2021 |
Jan
(14) |
Feb
(24) |
Mar
(35) |
Apr
(58) |
May
(36) |
Jun
(15) |
Jul
(18) |
Aug
(31) |
Sep
(30) |
Oct
(33) |
Nov
(27) |
Dec
(16) |
| 2022 |
Jan
(35) |
Feb
(22) |
Mar
(14) |
Apr
(20) |
May
(44) |
Jun
(53) |
Jul
(25) |
Aug
(56) |
Sep
(11) |
Oct
(47) |
Nov
(22) |
Dec
(36) |
| 2023 |
Jan
(30) |
Feb
(17) |
Mar
(31) |
Apr
(48) |
May
(31) |
Jun
(7) |
Jul
(25) |
Aug
(26) |
Sep
(61) |
Oct
(66) |
Nov
(19) |
Dec
(21) |
| 2024 |
Jan
(37) |
Feb
(29) |
Mar
(26) |
Apr
(26) |
May
(34) |
Jun
(9) |
Jul
(27) |
Aug
(13) |
Sep
(15) |
Oct
(25) |
Nov
(13) |
Dec
(8) |
| 2025 |
Jan
(13) |
Feb
(1) |
Mar
(16) |
Apr
(17) |
May
(8) |
Jun
(6) |
Jul
(9) |
Aug
|
Sep
(6) |
Oct
(15) |
Nov
(6) |
Dec
|
| 2026 |
Jan
(6) |
Feb
(4) |
Mar
(20) |
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Amine I. <ami...@gm...> - 2020-09-19 10:58:58
|
Hi Daniel, I believe the error is due to an initial check on the term structure that fails because The last tenor on the curve is less than the maturity date of your instrument/ underlying swap. I would try setting the last tenor on the curve to be longer than the last point on your instrument. Let me know how it goes ! Amine Ifri > On 19 Sep 2020, at 11:27, Daniel Lobo <dan...@gm...> wrote: > > Hi, > > I was replicating the examples as given in > https://github.com/lballabio/QuantLib/blob/master/Examples/BermudanSwaption/BermudanSwaption.cpp. > > However I changed the Term structure curve as below - > > Asin the file - > > Handle<YieldTermStructure> rhTermStructure( > ext::make_shared<FlatForward>( > settlementDate, Handle<Quote>(flatRate), > Actual365Fixed())); > > But I changed to - > > Handle<YieldTermStructure> rhTermStructure1( > ext::make_shared<FlatForward>( > settlementDate, Handle<Quote>(flatRate), > Actual365Fixed())); > > std::vector<QuantLib::Date> sr_dt; > std::vector<QuantLib::Real> sr_v; > sr_dt.push_back(Date(15, February, 2002)); > sr_dt.push_back(Date(15, February, 2003)); > sr_dt.push_back(Date(15, February, 2004)); > sr_v.push_back(0); > sr_v.push_back(1.5/100); > sr_v.push_back(2/100); > > Handle<YieldTermStructure> rhTermStructure( > ext::make_shared<ZeroCurve>(sr_dt, > sr_v, > Actual365Fixed() > )); > > With this change I failed to generate any value. I received error - > > 1st leg: time (2.01096) is past max curve time (2) > > Any insight why I get this error and how to resolve this would be > really helpful. > > Thanks for your time > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Daniel L. <dan...@gm...> - 2020-09-19 10:25:45
|
Hi, I was replicating the examples as given in https://github.com/lballabio/QuantLib/blob/master/Examples/BermudanSwaption/BermudanSwaption.cpp. However I changed the Term structure curve as below - Asin the file - Handle<YieldTermStructure> rhTermStructure( ext::make_shared<FlatForward>( settlementDate, Handle<Quote>(flatRate), Actual365Fixed())); But I changed to - Handle<YieldTermStructure> rhTermStructure1( ext::make_shared<FlatForward>( settlementDate, Handle<Quote>(flatRate), Actual365Fixed())); std::vector<QuantLib::Date> sr_dt; std::vector<QuantLib::Real> sr_v; sr_dt.push_back(Date(15, February, 2002)); sr_dt.push_back(Date(15, February, 2003)); sr_dt.push_back(Date(15, February, 2004)); sr_v.push_back(0); sr_v.push_back(1.5/100); sr_v.push_back(2/100); Handle<YieldTermStructure> rhTermStructure( ext::make_shared<ZeroCurve>(sr_dt, sr_v, Actual365Fixed() )); With this change I failed to generate any value. I received error - 1st leg: time (2.01096) is past max curve time (2) Any insight why I get this error and how to resolve this would be really helpful. Thanks for your time |
|
From: Arkadiy N. <ark...@gm...> - 2020-09-18 22:28:20
|
There is something basic in tests on github: https://github.com/lballabio/QuantLib/blob/master/test-suite/libormarketmodel.cpp On Fri, Sep 18, 2020 at 6:18 PM Daniel Lobo <dan...@gm...> wrote: > Thanks. Even any examples with c++ would help. Regards, > > On Sat, 19 Sep 2020 at 03:40, Arkadiy Naumov <ark...@gm...> > wrote: > > > > As far as I know, LMM isn't exposed via swig, so it won't be there in > Python package. You'd have to go C++ route to access the functionality. > There may be some examples of that available - I don't know much about C++ > myself, so I never looked into it. > > > > On Fri, Sep 18, 2020 at 3:11 AM Daniel Lobo <dan...@gm...> > wrote: > >> > >> Hi, > >> > >> Just thought to follow-up on this. Is there any way to get an example > >> to implement this model? > >> > >> Many thanks for your time. > >> > >> On Tue, 15 Sep 2020 at 14:26, Daniel Lobo <dan...@gm...> > wrote: > >> > > >> > Hi, > >> > > >> > I was struggling to understand how the Libor forward model can be used > >> > to value a swaption. > >> > > >> > This requires an instance of class LiborForwardModel (link : > >> > > https://rkapl123.github.io/QLAnnotatedSource/d6/d6f/class_quant_lib_1_1_libor_forward_model.html > ), > >> > but I failed to understand how to construct it. > >> > > >> > I am using Python build of QuantLib, do you have any example for > >> > LiborForwardModel's implementation? > >> > > >> > Your help is much appreciated. > >> > > >> > Thank you. Regards > >> > >> > >> _______________________________________________ > >> QuantLib-users mailing list > >> Qua...@li... > >> https://lists.sourceforge.net/lists/listinfo/quantlib-users > |
|
From: Daniel L. <dan...@gm...> - 2020-09-18 22:18:50
|
Thanks. Even any examples with c++ would help. Regards, On Sat, 19 Sep 2020 at 03:40, Arkadiy Naumov <ark...@gm...> wrote: > > As far as I know, LMM isn't exposed via swig, so it won't be there in Python package. You'd have to go C++ route to access the functionality. There may be some examples of that available - I don't know much about C++ myself, so I never looked into it. > > On Fri, Sep 18, 2020 at 3:11 AM Daniel Lobo <dan...@gm...> wrote: >> >> Hi, >> >> Just thought to follow-up on this. Is there any way to get an example >> to implement this model? >> >> Many thanks for your time. >> >> On Tue, 15 Sep 2020 at 14:26, Daniel Lobo <dan...@gm...> wrote: >> > >> > Hi, >> > >> > I was struggling to understand how the Libor forward model can be used >> > to value a swaption. >> > >> > This requires an instance of class LiborForwardModel (link : >> > https://rkapl123.github.io/QLAnnotatedSource/d6/d6f/class_quant_lib_1_1_libor_forward_model.html), >> > but I failed to understand how to construct it. >> > >> > I am using Python build of QuantLib, do you have any example for >> > LiborForwardModel's implementation? >> > >> > Your help is much appreciated. >> > >> > Thank you. Regards >> >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Arkadiy N. <ark...@gm...> - 2020-09-18 22:15:55
|
This isn't based on any research (I didn't actually look at the code to
confirm), but from a naive perspective - once you add a floor, you can no
longer use the discounted cash flows engine to value this bond, since it
has an embedded option. Unless of course there is something built into the
engine just for this case (i.e. it assumes zero volatility or something of
that nature).
On Sun, Sep 6, 2020 at 4:49 PM Sumit Sengupta <su...@mo...>
wrote:
> Hi all,
>
> I am trying to price a Floating rate note (as per the quantlib python cookbook).
>
> It seems to fail whenever I put a *floor = [0], * with the error...
>
> Traceback (most recent call last):
> File "C:/Users/sumit/.PyCharm2018.3/config/scratches/scratch_48.py", line 88, in calc_bond_price
> return (bond.cleanPrice() - price)**2
> File "C:\Users\sumit\Anaconda3\envs\msq-360-plus\lib\site-packages\QuantLib\QuantLib.py", line 16229, in cleanPrice
> return _QuantLib.Bond_cleanPrice(self, *args)
> RuntimeError: pricer not set
>
> Note that it fails when I try to fit a discount margin spread over my discount rate curve
>
> *My code is as below....*
>
> forecast_curve = ql.RelinkableYieldTermStructureHandle()
> discount_curve = ql.RelinkableYieldTermStructureHandle()
>
> term_structure_handle, index = generate_swaps_market_data()
> index.addFixing(ql.Date(16, 7, 2020), 0/100)
>
> forecast_curve.linkTo(ql.ZeroSpreadedTermStructure(term_structure_handle, ql.QuoteHandle(ql.SimpleQuote(0.))))
>
> issue_date = ql.Date(19, 1, 2001)
> maturity_date = ql.Date(19, 1, 2031)
>
> schedule = ql.Schedule(issue_date, maturity_date,ql.Period(ql.Quarterly), ql.TARGET(),
> ql.Following, ql.Following,ql.DateGeneration.Backward, False)
>
> bond = ql.FloatingRateBond(settlementDays = 2,faceAmount = 100,schedule = schedule,
> index = index,paymentDayCounter = ql.Actual360(),
> paymentConvention = ql.Following, fixingDays = index.fixingDays(),gearings = [],
> spreads = [0.3/10000],caps= [],*floors = [0]*,inArrears = False,redemption = 100.0,issueDate = issue_date
> )
>
> bond.setPricingEngine(ql.DiscountingBondEngine(discount_curve))
>
> DM = ql.SimpleQuote(0.0)
> discount_curve.linkTo(ql.ZeroSpreadedTermStructure(forecast_curve,ql.QuoteHandle(DM)))
>
> price=88.466
>
> def calc_bond_price(param):
> s = param[0]
> DM.setValue(s)
> return (bond.cleanPrice() - price)**2
>
> x0=0.0003
> bounds=[[-1000, 1000]]
> res = minimize(calc_bond_price, x0, bounds=bounds)
> print(f"DM:{res.x[0]*10000}")
>
> DM.setValue(res.x[0])
> print(f"clean price:{bond.cleanPrice()}")
>
>
> --
> Mosaic Smart Data
>
> mobile +44 (0)7961839363
> su...@mo...
> 25 Finsbury Circus ▫ EC2M 7EE ▫ London ▫ United Kingdom
> www.mosaicsmartdata.com
> _______________________________________________
> QuantLib-users mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
|
|
From: Arkadiy N. <ark...@gm...> - 2020-09-18 22:10:25
|
As far as I know, LMM isn't exposed via swig, so it won't be there in Python package. You'd have to go C++ route to access the functionality. There may be some examples of that available - I don't know much about C++ myself, so I never looked into it. On Fri, Sep 18, 2020 at 3:11 AM Daniel Lobo <dan...@gm...> wrote: > Hi, > > Just thought to follow-up on this. Is there any way to get an example > to implement this model? > > Many thanks for your time. > > On Tue, 15 Sep 2020 at 14:26, Daniel Lobo <dan...@gm...> wrote: > > > > Hi, > > > > I was struggling to understand how the Libor forward model can be used > > to value a swaption. > > > > This requires an instance of class LiborForwardModel (link : > > > https://rkapl123.github.io/QLAnnotatedSource/d6/d6f/class_quant_lib_1_1_libor_forward_model.html > ), > > but I failed to understand how to construct it. > > > > I am using Python build of QuantLib, do you have any example for > > LiborForwardModel's implementation? > > > > Your help is much appreciated. > > > > Thank you. Regards > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > |
|
From: Daniel L. <dan...@gm...> - 2020-09-18 07:08:15
|
Hi, Just thought to follow-up on this. Is there any way to get an example to implement this model? Many thanks for your time. On Tue, 15 Sep 2020 at 14:26, Daniel Lobo <dan...@gm...> wrote: > > Hi, > > I was struggling to understand how the Libor forward model can be used > to value a swaption. > > This requires an instance of class LiborForwardModel (link : > https://rkapl123.github.io/QLAnnotatedSource/d6/d6f/class_quant_lib_1_1_libor_forward_model.html), > but I failed to understand how to construct it. > > I am using Python build of QuantLib, do you have any example for > LiborForwardModel's implementation? > > Your help is much appreciated. > > Thank you. Regards |
|
From: Francois B. <ig...@gm...> - 2020-09-16 08:41:42
|
Thanks, Luigi. Does the BSD license then permit one to take the entire QuantLib source code, repackage it as a commercial project and sell it, with no modifications whatsoever (as long as you include the license text)? Of course it's not what I intend to do. I'm just curious about how permissive it is. And following on, would someone be able to take the project and relicense it under something else. I'm guessing that would require the permission of all code contributors first, which would be quite a practical challenge. Sorry if this is a bit off topic. Francois Botha On Sat, 5 Sep 2020 at 18:18, Luigi Ballabio <lui...@gm...> wrote: > Hello Mudit, Francois, > the QuantLib license is the 3-clause BSD license (< > https://opensource.org/licenses/BSD-3-Clause>). It allows you to do > anything with the QuantLib code: your product can be closed source, and if > you're modifying the QuantLib code, you don't have to make the modified > source available. I'm not a lawyer either, but as I read it, your only > obligation is that if you redistribute/sell whatever it is you do, in > binary or source form, you must also include the full text of the QuantLib > license, including the disclaimer of warranty. It doesn't mean you're > applying the same license to your product! Basically, you're saying that > your product includes or uses some QuantLib code, and you're including the > QuantLib license so it's clear to whomever uses it that the QuantLib > developers are not responsible for anything that might happen as a > consequence. > > Hope this helps. In any case, you can find more information by > researching the 3-clause BSD license. > > Luigi > > P.S. @Francois: GPL is an entirely different beast, and I'm not sure I'm > qualified to answer about that. > > > On Sat, Sep 5, 2020 at 9:27 AM Francois Botha <ig...@gm...> wrote: > >> Hi >> >> I'm also interested this question. Hope it's OK if I add to it, Mudit. >> >> I understand that the license is quite permissive, but I'm still not sure >> exactly what it requires. >> >> Can I link to quantlib from a commercial product? >> >> Can I copy code directly from quantlib into my project and compile it? >> >> When do I have to release the quantlib source code alongside my >> commercial product? >> >> I know few of us here are lawyers and that the usual disclaimer holds, >> but I'm sure someone else here is less confused than I am. >> >> While we're at it, it doesn't pertain to quantlib, but how do the answers >> to my questions change if the license were eg a GPL based license? >> >> Thanks >> Francois >> >> On Sat, 5 Sep 2020, 08:42 Mudit Sharma, <sha...@gm...> wrote: >> >>> Dear list, >>> >>> I intend to derive a commercial product relying on Quantlib. I just want >>> to be sure that >>> I can use Quantlib freely for my product. I have read the license and I >>> think my product will not violate it. However I have a doubt : >>> >>> 1) In this page : https://www.quantlib.org/license.shtml >>> there it is mentioned : It allows proprietary extensions to be >>> commercialized >>> I wanted to know what exactly is meant by this statement. >>> Can the extension be anything ? another library/api/website/blog etc ? >>> >>> Hoping to hear from you soon, >>> Mudit Sharma >>> _______________________________________________ >>> QuantLib-users mailing list >>> Qua...@li... >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users >> > |
|
From: Daniel L. <dan...@gm...> - 2020-09-15 08:57:06
|
Hi, I was struggling to understand how the Libor forward model can be used to value a swaption. This requires an instance of class LiborForwardModel (link : https://rkapl123.github.io/QLAnnotatedSource/d6/d6f/class_quant_lib_1_1_libor_forward_model.html), but I failed to understand how to construct it. I am using Python build of QuantLib, do you have any example for LiborForwardModel's implementation? Your help is much appreciated. Thank you. Regards |
|
From: Daniel L. <dan...@gm...> - 2020-09-14 08:29:19
|
Hi, I wanted to confirm if there is any way to value the cross-currency swaps with fixed/floating legs and different indices. I see only VanillaSwap class, which I believe only takes care of Interest Rate swaps. Kindly advise, which swap class can be used for cross-currency swaps. Thanks for your time. Kind regards |
|
From: Guan W. <gw...@co...> - 2020-09-12 04:52:19
|
Hi! I was wondering if there is some example out there showing how to use this class to build a SOFR curve from SOFR 3-month futures. Thanks in advance. |
|
From: Christofer B. <bog...@gm...> - 2020-09-11 21:23:21
|
Hi, I was looking at an example in - http://gouthamanbalaraman.com/blog/callable-bond-quantlib-python.html However I failed to understand how the call option schedule is constructed in below snippet? callability_schedule = ql.CallabilitySchedule() call_price = 100.0 call_date = ql.Date(15,ql.September,2016); null_calendar = ql.NullCalendar(); for i in range(0,24): callability_price = ql.CallabilityPrice( call_price, ql.CallabilityPrice.Clean) callability_schedule.append( ql.Callability(callability_price, ql.Callability.Call, call_date)) call_date = null_calendar.advance(call_date, 3, ql.Months); Why I need to run a loop as "for i in range(0,24)" to create a singleton schedule at ql.Date(15,ql.September,2016)? If I had only 2 callability schedules like ql.Date(15,ql.September,2016) & ql.Date(15,ql.October,2016) within the lifetime of the underlying Bond then how should I proceed? Your help will be very much appreciated. Thanks, |
|
From: Prasanna K. <pk...@ku...> - 2020-09-11 14:37:55
|
Peter, Thank you very much. Prasanna > On Sep 11, 2020, at 2:48 AM, Peter Caspers <pca...@gm...> wrote: > > Hi Prasanna, > > one suitable reference is this here > > https://arxiv.org/pdf/1204.0646.pdf > > Thanks > Peter > > On Thu, 10 Sep 2020 at 16:41, Prasanna Katta <pk...@ku...> wrote: >> >> Hello, >> Where can I find the background material related to the experimental SSVI implementation in the QuantLib library? >> >> Thanks. >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Peter C. <pca...@gm...> - 2020-09-11 06:49:30
|
Hi Prasanna, one suitable reference is this here https://arxiv.org/pdf/1204.0646.pdf Thanks Peter On Thu, 10 Sep 2020 at 16:41, Prasanna Katta <pk...@ku...> wrote: > > Hello, > Where can I find the background material related to the experimental SSVI implementation in the QuantLib library? > > Thanks. > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Prasanna K. <pk...@ku...> - 2020-09-10 14:40:46
|
Hello, Where can I find the background material related to the experimental SSVI implementation in the QuantLib library? Thanks. |
|
From: Marco C. <mar...@gm...> - 2020-09-09 17:16:26
|
Hi, >> I have a portfolio of bonds in a table that I would like to value. >> >> Can one suggest the most efficient way I can value all at once. I can only value one bond at a time. It may be worth having a look at ORE [1]. Cheers Marco [1] https://github.com/OpenSourceRisk/Engine -- Marco Craveiro MD, Domain Driven Consulting about: http://about.me/marcocraveiro blog: http://mcraveiro.blogspot.co.uk twitter: https://twitter.com/MarcoCraveiro That the Ideas are themselves manifestations (of the Idea-Idea) and that the Idea-Idea is a-kind-of Manifestation-Idea—which is a-kind-of itself, so that the system is completely self-describing— would have been appreciated by Plato as an extremely practical joke [Plato]. -- Alan Key |
|
From: Sumit S. <su...@mo...> - 2020-09-08 15:53:22
|
Hi, Please find attached my QL implementation for a ZCB. I have tried to reconcile what I get using my discount curve bootstrapped from a swap curve vs a simple calculation based on a flat YTM. I am getting a ytm of -6.3% - which doesn't look right when I compare that to a simple calc that I show in the code. Thanks, Sumit -- Mosaic Smart Data mobile +44 (0)7961839363 su...@mo... 25 Finsbury Circus ▫ EC2M 7EE ▫ London ▫ United Kingdom www.mosaicsmartdata.com |
|
From: Luigi B. <lui...@gm...> - 2020-09-07 12:37:02
|
Hello,
I'm afraid there's no concept of portfolio in the library. You'll have
to collect and sum the values of the individual bonds.
Luigi
On Sat, Sep 5, 2020 at 7:37 PM Ruth Masungwini via QuantLib-users <
qua...@li...> wrote:
> Hi ;
>
> I have a portfolio of bonds in a table that I would like to value.
>
> Can one suggest the most efficient way I can value all at once. I can
> only value one bond at a time.
>
> Thanks
> Regards;
> Ruth
>
> _______________________________________________
> QuantLib-users mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
|
|
From: Luigi B. <lui...@gm...> - 2020-09-07 12:29:15
|
Hello,
alternatively, I'd use a path-generator class (which takes care of
calling the process interface). Depending on your process, that might be
PathGenerator (if your process is 1-D, like the Black-Scholes-Merton
process) or MultiPathGenerator (e.g. for Heston, which has two variables).
You can find a 1-D example at <
http://gouthamanbalaraman.com/blog/hull-white-simulation-quantlib-python.html
>.
Luigi
On Sun, Sep 6, 2020 at 10:29 PM Amine Ifri <ami...@gm...> wrote:
> Hi Christofer,
>
> The process interface in QL has a Virtual method called evolve() with
> arguments to “evolve” your simulated variable through time from t to t+dt
> and is implemented for a variety of models per asset class. I use the
> discretisation of a time grid and just evolve the process from time point
> to the next until the last grid point.
>
> Hope this helps,
>
> Amine Ifri
>
> > On 6 Sep 2020, at 21:13, Christofer Bogaso <bog...@gm...>
> wrote:
> >
> > Hi,
> >
> > I am wondering if there is any way to get the simulated path generated
> > from some stochastic process like GBM with constant volatility and
> > Heston.
> >
> > I am using Python implementation of Quantlib.
> >
> > Any pointer will be highly appreciated.
> >
> > Thanks,
> >
> >
> > _______________________________________________
> > QuantLib-users mailing list
> > Qua...@li...
> > https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
>
> _______________________________________________
> QuantLib-users mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
|
|
From: <sh...@op...> - 2020-09-07 07:06:27
|
Hi Daniel, Good place to start are the unit tests in C++ for a C++ example. Look into varianceswaps.cpp in the testsuite project (https://github.com/lballabio/QuantLib/blob/master/test-suite/varianceswaps.cpp). Kind Regards, Steven -----Original Message----- From: Daniel Lobo <dan...@gm...> Sent: Sunday, 6 September 2020 23:35 To: qua...@li... Subject: [Quantlib-users] VarianceSwap Class Reference Hi Quantlib experts, I was looking for some implementation to value a spot Variance swap contract with discrete fixing points. I looked into the VarianceSwap Class Reference in https://rkapl123.github.io/QLAnnotatedSource/d1/dfb/class_quant_lib_1_1_variance_swap.html which is defined as below - VarianceSwap (Position::Type position, Real strike, Real notional, const Date &startDate, const Date &maturityDate) However I am missing few things as below - 1. How can I input the valuation date? 2. How can I input the discount curve 3. Is the startDate corresponding to the start date of fixing interval? 4. Is this class for discrete fixing or continuous fixing? Is there any workout example for this valuation either in c++ or python? Your pointer will be highly appreciated. Thanks for your time. _______________________________________________ QuantLib-users mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Daniel L. <dan...@gm...> - 2020-09-06 21:35:51
|
Hi Quantlib experts, I was looking for some implementation to value a spot Variance swap contract with discrete fixing points. I looked into the VarianceSwap Class Reference in https://rkapl123.github.io/QLAnnotatedSource/d1/dfb/class_quant_lib_1_1_variance_swap.html which is defined as below - VarianceSwap (Position::Type position, Real strike, Real notional, const Date &startDate, const Date &maturityDate) However I am missing few things as below - 1. How can I input the valuation date? 2. How can I input the discount curve 3. Is the startDate corresponding to the start date of fixing interval? 4. Is this class for discrete fixing or continuous fixing? Is there any workout example for this valuation either in c++ or python? Your pointer will be highly appreciated. Thanks for your time. |
|
From: Christofer B. <bog...@gm...> - 2020-09-06 21:30:34
|
Hi, Thanks for your reply. Do you have any Python-code example to share with me? Appreciate your help. Thanks, On Mon, Sep 7, 2020 at 1:57 AM Amine Ifri <ami...@gm...> wrote: > > Hi Christofer, > > The process interface in QL has a Virtual method called evolve() with arguments to “evolve” your simulated variable through time from t to t+dt and is implemented for a variety of models per asset class. I use the discretisation of a time grid and just evolve the process from time point to the next until the last grid point. > > Hope this helps, > > Amine Ifri > > > On 6 Sep 2020, at 21:13, Christofer Bogaso <bog...@gm...> wrote: > > > > Hi, > > > > I am wondering if there is any way to get the simulated path generated > > from some stochastic process like GBM with constant volatility and > > Heston. > > > > I am using Python implementation of Quantlib. > > > > Any pointer will be highly appreciated. > > > > Thanks, > > > > > > _______________________________________________ > > QuantLib-users mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Sumit S. <su...@mo...> - 2020-09-06 20:47:39
|
Hi all,
I am trying to price a Floating rate note (as per the quantlib
python cookbook).
It seems to fail whenever I put a *floor = [0], * with the error...
Traceback (most recent call last):
File "C:/Users/sumit/.PyCharm2018.3/config/scratches/scratch_48.py",
line 88, in calc_bond_price
return (bond.cleanPrice() - price)**2
File "C:\Users\sumit\Anaconda3\envs\msq-360-plus\lib\site-packages\QuantLib\QuantLib.py",
line 16229, in cleanPrice
return _QuantLib.Bond_cleanPrice(self, *args)
RuntimeError: pricer not set
Note that it fails when I try to fit a discount margin spread over my
discount rate curve
*My code is as below....*
forecast_curve = ql.RelinkableYieldTermStructureHandle()
discount_curve = ql.RelinkableYieldTermStructureHandle()
term_structure_handle, index = generate_swaps_market_data()
index.addFixing(ql.Date(16, 7, 2020), 0/100)
forecast_curve.linkTo(ql.ZeroSpreadedTermStructure(term_structure_handle,
ql.QuoteHandle(ql.SimpleQuote(0.))))
issue_date = ql.Date(19, 1, 2001)
maturity_date = ql.Date(19, 1, 2031)
schedule = ql.Schedule(issue_date,
maturity_date,ql.Period(ql.Quarterly), ql.TARGET(),
ql.Following,
ql.Following,ql.DateGeneration.Backward, False)
bond = ql.FloatingRateBond(settlementDays = 2,faceAmount =
100,schedule = schedule,
index = index,paymentDayCounter = ql.Actual360(),
paymentConvention = ql.Following,
fixingDays = index.fixingDays(),gearings = [],
spreads = [0.3/10000],caps= [],*floors =
[0]*,inArrears = False,redemption = 100.0,issueDate = issue_date
)
bond.setPricingEngine(ql.DiscountingBondEngine(discount_curve))
DM = ql.SimpleQuote(0.0)
discount_curve.linkTo(ql.ZeroSpreadedTermStructure(forecast_curve,ql.QuoteHandle(DM)))
price=88.466
def calc_bond_price(param):
s = param[0]
DM.setValue(s)
return (bond.cleanPrice() - price)**2
x0=0.0003
bounds=[[-1000, 1000]]
res = minimize(calc_bond_price, x0, bounds=bounds)
print(f"DM:{res.x[0]*10000}")
DM.setValue(res.x[0])
print(f"clean price:{bond.cleanPrice()}")
--
Mosaic Smart Data
mobile +44 (0)7961839363
su...@mo...
25 Finsbury Circus ▫ EC2M 7EE ▫ London ▫ United Kingdom
www.mosaicsmartdata.com
|
|
From: Sumit S. <su...@mo...> - 2020-09-06 20:43:12
|
Found Luigi's suggestion here... https://www.google.com/url?sa=t&source=web&rct=j&url=https://stackoverflow.com/questions/42195781/using-quantlib-to-compute-cash-flows-for-floatingratebond-with-floor&ved=2ahUKEwiRp6CLsdXrAhWEM-wKHQuMBCYQjjgwAHoECAsQAQ&usg=AOvVaw0IgfRAK7_x9qLg-l55bDbb On Sun, 6 Sep 2020, 21:16 Sumit Sengupta, <su...@mo...> wrote: > Hi all, > > I am trying to price a Floating rate note (as per the quantlib python cookbook). > > It seems to fail whenever I put a *floor = [0], * with the error... > > Traceback (most recent call last): > File "C:/Users/sumit/.PyCharm2018.3/config/scratches/scratch_48.py", line 88, in calc_bond_price > return (bond.cleanPrice() - price)**2 > File "C:\Users\sumit\Anaconda3\envs\msq-360-plus\lib\site-packages\QuantLib\QuantLib.py", line 16229, in cleanPrice > return _QuantLib.Bond_cleanPrice(self, *args) > RuntimeError: pricer not set > > Note that it fails when I try to fit a discount margin spread over my discount rate curve > > *My code is as below....* > > forecast_curve = ql.RelinkableYieldTermStructureHandle() > discount_curve = ql.RelinkableYieldTermStructureHandle() > > term_structure_handle, index = generate_swaps_market_data() > index.addFixing(ql.Date(16, 7, 2020), 0/100) > > forecast_curve.linkTo(ql.ZeroSpreadedTermStructure(term_structure_handle, ql.QuoteHandle(ql.SimpleQuote(0.)))) > > issue_date = ql.Date(19, 1, 2001) > maturity_date = ql.Date(19, 1, 2031) > > schedule = ql.Schedule(issue_date, maturity_date,ql.Period(ql.Quarterly), ql.TARGET(), > ql.Following, ql.Following,ql.DateGeneration.Backward, False) > > bond = ql.FloatingRateBond(settlementDays = 2,faceAmount = 100,schedule = schedule, > index = index,paymentDayCounter = ql.Actual360(), > paymentConvention = ql.Following, fixingDays = index.fixingDays(),gearings = [], > spreads = [0.3/10000],caps= [],*floors = [0]*,inArrears = False,redemption = 100.0,issueDate = issue_date > ) > > bond.setPricingEngine(ql.DiscountingBondEngine(discount_curve)) > > DM = ql.SimpleQuote(0.0) > discount_curve.linkTo(ql.ZeroSpreadedTermStructure(forecast_curve,ql.QuoteHandle(DM))) > > price=88.466 > > def calc_bond_price(param): > s = param[0] > DM.setValue(s) > return (bond.cleanPrice() - price)**2 > > x0=0.0003 > bounds=[[-1000, 1000]] > res = minimize(calc_bond_price, x0, bounds=bounds) > print(f"DM:{res.x[0]*10000}") > > DM.setValue(res.x[0]) > print(f"clean price:{bond.cleanPrice()}") > > > -- > Mosaic Smart Data > > mobile +44 (0)7961839363 > su...@mo... > 25 Finsbury Circus ▫ EC2M 7EE ▫ London ▫ United Kingdom > www.mosaicsmartdata.com > |
|
From: Amine I. <ami...@gm...> - 2020-09-06 20:27:39
|
Hi Christofer, The process interface in QL has a Virtual method called evolve() with arguments to “evolve” your simulated variable through time from t to t+dt and is implemented for a variety of models per asset class. I use the discretisation of a time grid and just evolve the process from time point to the next until the last grid point. Hope this helps, Amine Ifri > On 6 Sep 2020, at 21:13, Christofer Bogaso <bog...@gm...> wrote: > > Hi, > > I am wondering if there is any way to get the simulated path generated > from some stochastic process like GBM with constant volatility and > Heston. > > I am using Python implementation of Quantlib. > > Any pointer will be highly appreciated. > > Thanks, > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users |