You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(60) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(18) |
Feb
(4) |
Mar
(6) |
Apr
(2) |
May
|
Jun
(12) |
Jul
(48) |
Aug
(6) |
Sep
(3) |
Oct
(24) |
Nov
(15) |
Dec
(18) |
| 2002 |
Jan
(39) |
Feb
(12) |
Mar
(80) |
Apr
(72) |
May
(46) |
Jun
(27) |
Jul
(23) |
Aug
(34) |
Sep
(65) |
Oct
(71) |
Nov
(19) |
Dec
(14) |
| 2003 |
Jan
(44) |
Feb
(59) |
Mar
(18) |
Apr
(62) |
May
(54) |
Jun
(27) |
Jul
(46) |
Aug
(15) |
Sep
(44) |
Oct
(36) |
Nov
(19) |
Dec
(12) |
| 2004 |
Jan
(26) |
Feb
(33) |
Mar
(47) |
Apr
(63) |
May
(36) |
Jun
(65) |
Jul
(80) |
Aug
(163) |
Sep
(65) |
Oct
(39) |
Nov
(36) |
Dec
(39) |
| 2005 |
Jan
(97) |
Feb
(78) |
Mar
(64) |
Apr
(64) |
May
(48) |
Jun
(55) |
Jul
(89) |
Aug
(57) |
Sep
(51) |
Oct
(111) |
Nov
(86) |
Dec
(76) |
| 2006 |
Jan
(84) |
Feb
(103) |
Mar
(143) |
Apr
(92) |
May
(55) |
Jun
(58) |
Jul
(71) |
Aug
(57) |
Sep
(74) |
Oct
(59) |
Nov
(8) |
Dec
(32) |
| 2007 |
Jan
(60) |
Feb
(40) |
Mar
(50) |
Apr
(26) |
May
(61) |
Jun
(120) |
Jul
(119) |
Aug
(48) |
Sep
(121) |
Oct
(66) |
Nov
(103) |
Dec
(43) |
| 2008 |
Jan
(60) |
Feb
(109) |
Mar
(92) |
Apr
(106) |
May
(82) |
Jun
(59) |
Jul
(67) |
Aug
(118) |
Sep
(131) |
Oct
(56) |
Nov
(37) |
Dec
(69) |
| 2009 |
Jan
(75) |
Feb
(76) |
Mar
(103) |
Apr
(78) |
May
(61) |
Jun
(35) |
Jul
(66) |
Aug
(69) |
Sep
(166) |
Oct
(46) |
Nov
(72) |
Dec
(65) |
| 2010 |
Jan
(48) |
Feb
(57) |
Mar
(93) |
Apr
(85) |
May
(123) |
Jun
(82) |
Jul
(98) |
Aug
(121) |
Sep
(146) |
Oct
(86) |
Nov
(72) |
Dec
(34) |
| 2011 |
Jan
(96) |
Feb
(55) |
Mar
(73) |
Apr
(57) |
May
(33) |
Jun
(74) |
Jul
(89) |
Aug
(71) |
Sep
(103) |
Oct
(76) |
Nov
(52) |
Dec
(61) |
| 2012 |
Jan
(48) |
Feb
(54) |
Mar
(78) |
Apr
(60) |
May
(75) |
Jun
(59) |
Jul
(33) |
Aug
(66) |
Sep
(43) |
Oct
(46) |
Nov
(75) |
Dec
(51) |
| 2013 |
Jan
(112) |
Feb
(72) |
Mar
(49) |
Apr
(48) |
May
(42) |
Jun
(44) |
Jul
(80) |
Aug
(19) |
Sep
(33) |
Oct
(37) |
Nov
(38) |
Dec
(98) |
| 2014 |
Jan
(113) |
Feb
(93) |
Mar
(49) |
Apr
(106) |
May
(97) |
Jun
(155) |
Jul
(87) |
Aug
(127) |
Sep
(85) |
Oct
(48) |
Nov
(41) |
Dec
(37) |
| 2015 |
Jan
(34) |
Feb
(50) |
Mar
(104) |
Apr
(80) |
May
(82) |
Jun
(66) |
Jul
(41) |
Aug
(84) |
Sep
(37) |
Oct
(65) |
Nov
(83) |
Dec
(52) |
| 2016 |
Jan
(68) |
Feb
(35) |
Mar
(42) |
Apr
(35) |
May
(54) |
Jun
(75) |
Jul
(45) |
Aug
(52) |
Sep
(60) |
Oct
(52) |
Nov
(36) |
Dec
(64) |
| 2017 |
Jan
(92) |
Feb
(59) |
Mar
(35) |
Apr
(53) |
May
(83) |
Jun
(43) |
Jul
(65) |
Aug
(68) |
Sep
(46) |
Oct
(75) |
Nov
(40) |
Dec
(49) |
| 2018 |
Jan
(68) |
Feb
(54) |
Mar
(48) |
Apr
(58) |
May
(51) |
Jun
(44) |
Jul
(40) |
Aug
(68) |
Sep
(35) |
Oct
(15) |
Nov
(7) |
Dec
(37) |
| 2019 |
Jan
(43) |
Feb
(7) |
Mar
(22) |
Apr
(21) |
May
(31) |
Jun
(39) |
Jul
(73) |
Aug
(45) |
Sep
(47) |
Oct
(89) |
Nov
(19) |
Dec
(69) |
| 2020 |
Jan
(52) |
Feb
(63) |
Mar
(45) |
Apr
(59) |
May
(42) |
Jun
(57) |
Jul
(30) |
Aug
(29) |
Sep
(75) |
Oct
(64) |
Nov
(96) |
Dec
(22) |
| 2021 |
Jan
(14) |
Feb
(24) |
Mar
(35) |
Apr
(58) |
May
(36) |
Jun
(15) |
Jul
(18) |
Aug
(31) |
Sep
(30) |
Oct
(33) |
Nov
(27) |
Dec
(16) |
| 2022 |
Jan
(35) |
Feb
(22) |
Mar
(14) |
Apr
(20) |
May
(44) |
Jun
(53) |
Jul
(25) |
Aug
(56) |
Sep
(11) |
Oct
(47) |
Nov
(22) |
Dec
(36) |
| 2023 |
Jan
(30) |
Feb
(17) |
Mar
(31) |
Apr
(48) |
May
(31) |
Jun
(7) |
Jul
(25) |
Aug
(26) |
Sep
(61) |
Oct
(66) |
Nov
(19) |
Dec
(21) |
| 2024 |
Jan
(37) |
Feb
(29) |
Mar
(26) |
Apr
(26) |
May
(34) |
Jun
(9) |
Jul
(27) |
Aug
(13) |
Sep
(15) |
Oct
(25) |
Nov
(13) |
Dec
(8) |
| 2025 |
Jan
(13) |
Feb
(1) |
Mar
(16) |
Apr
(17) |
May
(8) |
Jun
(6) |
Jul
(9) |
Aug
|
Sep
(6) |
Oct
(15) |
Nov
(6) |
Dec
|
| 2026 |
Jan
(6) |
Feb
(4) |
Mar
(20) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <for...@ya...> - 2024-08-13 04:34:18
|
* { font-size: 13px; font-family: 'MS Pゴシック', sans-serif;}p, ul, ol, blockquote { margin: 0;}a { color: #0064c8; text-decoration: none;}a:hover { color: #0057af; text-decoration: underline;}a:active { color: #004c98;}
Hi,
I apologize for my question below.
I solved it by adding "swapOBJ.setPricingEngine(ql.DiscountingSwapEngine(dCrvHDL))".
Please forget about it.
Kenji
----- Forwarded Message -----
From: "me" <for...@ya...>
To: "Qua...@li..." <Qua...@li...>
Date: 2024/08/12 月 23:32
Subject: Swap NPV cannot be zero under two curve.
Hi, there
I am calculating the swap NPV under two curves with the QuantLib's code attached,
which is my toy model, but the swap NPV does not become zero.
Could someone please point out what is wrong with my code?
Thanks in advance, Kenji
PS) If you run the attached, you will find "1x2 fwdIX: 0.1968" which I agreed.
But I cannot agree "Swap NPV:-39,077.00", which should be zero.
I guess that MakeVanillaSwap constructor is wrong. Are there any other constructor for multi-curve?
|
|
From: <for...@ya...> - 2024-08-12 14:35:46
|
* { font-size: 13px; font-family: 'MS Pゴシック', sans-serif;}p, ul, ol, blockquote { margin: 0;}a { color: #0064c8; text-decoration: none;}a:hover { color: #0057af; text-decoration: underline;}a:active { color: #004c98;}
Hi, there
I am calculating the swap NPV under two curves with the QuantLib's code attached,
which is my toy model, but the swap NPV does not become zero.
Could someone please point out what is wrong with my code?
Thanks in advance, Kenji
PS) If you run the attached, you will find "1x2 fwdIX: 0.1968" which I agreed.
But I cannot agree "Swap NPV:-39,077.00", which should be zero.
I guess that MakeVanillaSwap constructor is wrong. Are there any other constructor for multi-curve?
|
|
From: Philippe H. <pha...@ma...> - 2024-07-25 14:17:41
|
G2++ is probably ok to decorrelate term rates. it is HW2F that I was referring to as far as not being very suitable given short rate model. Problem is how to build a curve and get CMS rates from a Python interface to the QL G2++ process. I do not see any available working interface to do that, as the existing Python API is not correct versus the C++ signature as mentioned below. If you're happy with HW2F then you probably have most of what is required although I never used it, so guessing. Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 25, 2024, at 6:37 AM, Valerio Santaniello <val...@gm...> wrote: Hi Philippe, thanks a lot for your explanations. I'm quite aware of the limitations of the G2++ model when used to price CMS related instruments but we use it for "risk management" purposes (if this is an excuse) rather than for P&L purposes. Therefore, the choice of the model has been made essentially for simplicity reasons. Having said that, I'll start delving into the implementations of the model ported to Python and see if I can find some workaround. P.S.: I just noticed that I wrongly quoted Peter Casper in my first email, so I added it in the recipients of this email. I hope this doesn't bother you Peter and does not go against the mailing list's rules. Best, Valerio Il giorno mer 24 lug 2024 alle ore 15:47 Philippe Hatstadt < pha...@ma... > ha scritto: Sorry, this is the thread I am referring to. https://sourceforge.net/p/quantlib/mailman/message/58733701/ Essentially, there is a working Python calibration routine for G2++. However, certain process C++ classes were not 100% migrated to Python and they currently do not work, as there is a mismatch in required parameters (curve handle missing for instance). So it's not clear how to generate paths of CMS rates from the calibrated engine, as the processes cannot be called. Using a 2-factor HW is not something I would spend time on if the goal is to price CMS spread options, or any contingent payoff that depends on short versus longer tenors, as HW2F is still a short rate model, and it is not capable of substantially decorrelating say CMS2Y versus CMS10Y. The latter is essential to build GNMA prepayment and OAS models, so HW2F would clearly underprice the (negative) convexity. Your product is a CMS steepener, so I think it may suffer form the same issues. I guess what I'm saying is that I am unsure that there is any Python way of doing this with QL for claims that depend on dual CMS tenors. Luigi had asked me if I could help finish the G2++ processes to work in Python, but I don't really have the bandwidth. it would be nice if someone did it at some point. Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 24, 2024, at 8:51 AM, Valerio Santaniello < val...@gm... > wrote: Hi Philippe, which class are you referring to? I read in this thread that @PeterCasper had a working code to price CMS Spread Options with HW2F model, which would be very helpful to start thinking about a workaround. Best, Valerio Il giorno mer 24 lug 2024 alle ore 11:47 Philippe Hatstadt < phi...@ex... > ha scritto: As far as I know, the G2++ engine only has a C++ calibration implementation. Lack of a Python interface for it was a show stopper for me but if that doesn’t stop you then you might be able to price CMS steepeners at least via MC form the engine although I am unsure if that exists in Python either. Regards Philippe Hatstadt +1-203-252-0408 > On Jul 24, 2024, at 4:34 AM, Valerio Santaniello < val...@gm... > wrote: > > > Hi, > > I am trying to price CMS Steepeners Bonds with a G2++ model in QuantLib Python. I looked at the pricers available, but it seems that the only option would be to build a CMSSpreadLeg and use the lognormalCMSSpreadPricer, which does not appear to implement the G2++ model. Am I right or is there something I am missing? > > Best, > Valerio > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users -- 31 East 32nd Street, 3rd Floor | New York, NY | 10016 < https://www.exosfinancial.com/ > < https://www.linkedin.com/company/meetexos/about/ > Broker-Dealer services offered through Exos Securities LLC, Member SIPC, FINRA. For important disclosures including Form CRS and Regulation BI click here < https://www.exosfinancial.com/general-disclosures >. Confidentiality Notice: The information contained in this email (including attachments) is only for the personal and confidential use of the sender and recipient named above. If the reader is not the intended recipient, you are notified that you have received this message in error and that any review, dissemination, copying or distribution is prohibited. If you have received this communication in error, please notify the sender immediately by e-mail and delete or destroy the original message and all copies. Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline <untitled attachment> |
|
From: Valerio S. <val...@gm...> - 2024-07-25 10:38:05
|
Hi Philippe, thanks a lot for your explanations. I'm quite aware of the limitations of the G2++ model when used to price CMS related instruments but we use it for "risk management" purposes (if this is an excuse) rather than for P&L purposes. Therefore, the choice of the model has been made essentially for simplicity reasons. Having said that, I'll start delving into the implementations of the model ported to Python and see if I can find some workaround. P.S.: I just noticed that I wrongly quoted Peter Casper in my first email, so I added it in the recipients of this email. I hope this doesn't bother you Peter and does not go against the mailing list's rules. Best, Valerio Il giorno mer 24 lug 2024 alle ore 15:47 Philippe Hatstadt < pha...@ma...> ha scritto: > Sorry, this is the thread I am referring to. > https://sourceforge.net/p/quantlib/mailman/message/58733701/ > > Essentially, there is a working Python calibration routine for G2++. > However, certain process C++ classes were not 100% migrated to Python and > they currently do not work, as there is a mismatch in required parameters > (curve handle missing for instance). > So it's not clear how to generate paths of CMS rates from the calibrated > engine, as the processes cannot be called. > Using a 2-factor HW is not something I would spend time on if the goal is > to price CMS spread options, or any contingent payoff that depends on short > versus longer tenors, as HW2F is still a short rate model, and it is not > capable of substantially decorrelating say CMS2Y versus CMS10Y. The latter > is essential to build GNMA prepayment and OAS models, so HW2F would clearly > underprice the (negative) convexity. > Your product is a CMS steepener, so I think it may suffer form the same > issues. I guess what I'm saying is that I am unsure that there is any > Python way of doing this with QL for claims that depend on dual CMS tenors. > Luigi had asked me if I could help finish the G2++ processes to work in > Python, but I don't really have the bandwidth. it would be nice if someone > did it at some point. > > Best regards Philippe Hatstadt 203-252-0408 > https://www.linkedin.com/in/philippe-hatstadt/ > > On Jul 24, 2024, at 8:51 AM, Valerio Santaniello < > val...@gm...> wrote: > > > Hi Philippe, > > which class are you referring to? I read in this > <https://sourceforge.net/p/quantlib/mailman/quantlib-users/thread/OF5FBC4935.9C0A60CB-ONC1257729.00341421-C1257729.00357A0E%40wgz-bank.de/#msg25312187> > thread that @PeterCasper had a working code to price CMS Spread Options > with HW2F model, which would be very helpful to start thinking about a > workaround. > > Best, > Valerio > > Il giorno mer 24 lug 2024 alle ore 11:47 Philippe Hatstadt < > phi...@ex...> ha scritto: > >> As far as I know, the G2++ engine only has a C++ calibration >> implementation. Lack of a Python interface for it was a show stopper for me >> but if that doesn’t stop you then you might be able to price CMS steepeners >> at least via MC form the engine although I am unsure if that exists in >> Python either. >> >> Regards >> >> Philippe Hatstadt >> +1-203-252-0408 >> >> >> > On Jul 24, 2024, at 4:34 AM, Valerio Santaniello < >> val...@gm...> wrote: >> > >> > >> > Hi, >> > >> > I am trying to price CMS Steepeners Bonds with a G2++ model in QuantLib >> Python. I looked at the pricers available, but it seems that the only >> option would be to build a CMSSpreadLeg and use the >> lognormalCMSSpreadPricer, which does not appear to implement the G2++ >> model. Am I right or is there something I am missing? >> > >> > Best, >> > Valerio >> > _______________________________________________ >> > QuantLib-users mailing list >> > Qua...@li... >> > https://lists.sourceforge.net/lists/listinfo/quantlib-users >> >> -- >> >> >> 31 East 32nd Street, 3rd Floor | New York, NY | 10016 >> >> >> <https://www.exosfinancial.com/> >> <https://www.linkedin.com/company/meetexos/about/> >> >> >> Broker-Dealer >> services offered through Exos Securities LLC, Member SIPC, FINRA. For >> important disclosures including Form CRS and Regulation BI click here >> <https://www.exosfinancial.com/general-disclosures>. >> >> >> >> >> >> Confidentiality >> Notice: The information contained in this email (including attachments) >> is >> only for the personal and confidential use of the sender and recipient >> named above. If the reader is not the intended recipient, you are >> notified >> that you have received this message in error and that any review, >> dissemination, copying or distribution is prohibited. If you have >> received >> this communication in error, please notify the sender immediately by >> e-mail >> and delete or destroy the original message and all copies. >> > Content-Type: text/plain; charset="us-ascii" > MIME-Version: 1.0 > Content-Transfer-Encoding: 7bit > Content-Disposition: inline > <untitled attachment> > > > |
|
From: Philippe H. <pha...@ma...> - 2024-07-24 13:47:57
|
Sorry, this is the thread I am referring to. https://sourceforge.net/p/quantlib/mailman/message/58733701/ Essentially, there is a working Python calibration routine for G2++. However, certain process C++ classes were not 100% migrated to Python and they currently do not work, as there is a mismatch in required parameters (curve handle missing for instance). So it's not clear how to generate paths of CMS rates from the calibrated engine, as the processes cannot be called. Using a 2-factor HW is not something I would spend time on if the goal is to price CMS spread options, or any contingent payoff that depends on short versus longer tenors, as HW2F is still a short rate model, and it is not capable of substantially decorrelating say CMS2Y versus CMS10Y. The latter is essential to build GNMA prepayment and OAS models, so HW2F would clearly underprice the (negative) convexity. Your product is a CMS steepener, so I think it may suffer form the same issues. I guess what I'm saying is that I am unsure that there is any Python way of doing this with QL for claims that depend on dual CMS tenors. Luigi had asked me if I could help finish the G2++ processes to work in Python, but I don't really have the bandwidth. it would be nice if someone did it at some point. Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 24, 2024, at 8:51 AM, Valerio Santaniello <val...@gm...> wrote: Hi Philippe, which class are you referring to? I read in this thread that @PeterCasper had a working code to price CMS Spread Options with HW2F model, which would be very helpful to start thinking about a workaround. Best, Valerio Il giorno mer 24 lug 2024 alle ore 11:47 Philippe Hatstadt < phi...@ex... > ha scritto: As far as I know, the G2++ engine only has a C++ calibration implementation. Lack of a Python interface for it was a show stopper for me but if that doesn’t stop you then you might be able to price CMS steepeners at least via MC form the engine although I am unsure if that exists in Python either. Regards Philippe Hatstadt +1-203-252-0408 > On Jul 24, 2024, at 4:34 AM, Valerio Santaniello < val...@gm... > wrote: > > > Hi, > > I am trying to price CMS Steepeners Bonds with a G2++ model in QuantLib Python. I looked at the pricers available, but it seems that the only option would be to build a CMSSpreadLeg and use the lognormalCMSSpreadPricer, which does not appear to implement the G2++ model. Am I right or is there something I am missing? > > Best, > Valerio > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users -- 31 East 32nd Street, 3rd Floor | New York, NY | 10016 < https://www.exosfinancial.com/ > < https://www.linkedin.com/company/meetexos/about/ > Broker-Dealer services offered through Exos Securities LLC, Member SIPC, FINRA. For important disclosures including Form CRS and Regulation BI click here < https://www.exosfinancial.com/general-disclosures >. Confidentiality Notice: The information contained in this email (including attachments) is only for the personal and confidential use of the sender and recipient named above. If the reader is not the intended recipient, you are notified that you have received this message in error and that any review, dissemination, copying or distribution is prohibited. If you have received this communication in error, please notify the sender immediately by e-mail and delete or destroy the original message and all copies. Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline <untitled attachment> |
|
From: Valerio S. <val...@gm...> - 2024-07-24 12:50:26
|
Hi Philippe, which class are you referring to? I read in this <https://sourceforge.net/p/quantlib/mailman/quantlib-users/thread/OF5FBC4935.9C0A60CB-ONC1257729.00341421-C1257729.00357A0E%40wgz-bank.de/#msg25312187> thread that @PeterCasper had a working code to price CMS Spread Options with HW2F model, which would be very helpful to start thinking about a workaround. Best, Valerio Il giorno mer 24 lug 2024 alle ore 11:47 Philippe Hatstadt < phi...@ex...> ha scritto: > As far as I know, the G2++ engine only has a C++ calibration > implementation. Lack of a Python interface for it was a show stopper for me > but if that doesn’t stop you then you might be able to price CMS steepeners > at least via MC form the engine although I am unsure if that exists in > Python either. > > Regards > > Philippe Hatstadt > +1-203-252-0408 > > > > On Jul 24, 2024, at 4:34 AM, Valerio Santaniello < > val...@gm...> wrote: > > > > > > Hi, > > > > I am trying to price CMS Steepeners Bonds with a G2++ model in QuantLib > Python. I looked at the pricers available, but it seems that the only > option would be to build a CMSSpreadLeg and use the > lognormalCMSSpreadPricer, which does not appear to implement the G2++ > model. Am I right or is there something I am missing? > > > > Best, > > Valerio > > _______________________________________________ > > QuantLib-users mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > -- > > > 31 East 32nd Street, 3rd Floor | New York, NY | 10016 > > > <https://www.exosfinancial.com/> > <https://www.linkedin.com/company/meetexos/about/> > > > Broker-Dealer > services offered through Exos Securities LLC, Member SIPC, FINRA. For > important disclosures including Form CRS and Regulation BI click here > <https://www.exosfinancial.com/general-disclosures>. > > > > > > Confidentiality > Notice: The information contained in this email (including attachments) is > only for the personal and confidential use of the sender and recipient > named above. If the reader is not the intended recipient, you are notified > that you have received this message in error and that any review, > dissemination, copying or distribution is prohibited. If you have received > this communication in error, please notify the sender immediately by > e-mail > and delete or destroy the original message and all copies. > |
|
From: Philippe H. <phi...@ex...> - 2024-07-24 11:33:37
|
As far as I know, the G2++ engine only has a C++ calibration implementation. Lack of a Python interface for it was a show stopper for me but if that doesn’t stop you then you might be able to price CMS steepeners at least via MC form the engine although I am unsure if that exists in Python either. Regards Philippe Hatstadt +1-203-252-0408 > On Jul 24, 2024, at 4:34 AM, Valerio Santaniello <val...@gm...> wrote: > > > Hi, > > I am trying to price CMS Steepeners Bonds with a G2++ model in QuantLib Python. I looked at the pricers available, but it seems that the only option would be to build a CMSSpreadLeg and use the lognormalCMSSpreadPricer, which does not appear to implement the G2++ model. Am I right or is there something I am missing? > > Best, > Valerio > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users -- 31 East 32nd Street, 3rd Floor | New York, NY | 10016 <https://www.exosfinancial.com/> <https://www.linkedin.com/company/meetexos/about/> Broker-Dealer services offered through Exos Securities LLC, Member SIPC, FINRA. For important disclosures including Form CRS and Regulation BI click here <https://www.exosfinancial.com/general-disclosures>. Confidentiality Notice: The information contained in this email (including attachments) is only for the personal and confidential use of the sender and recipient named above. If the reader is not the intended recipient, you are notified that you have received this message in error and that any review, dissemination, copying or distribution is prohibited. If you have received this communication in error, please notify the sender immediately by e-mail and delete or destroy the original message and all copies. |
|
From: Valerio S. <val...@gm...> - 2024-07-24 08:32:59
|
Hi, I am trying to price CMS Steepeners Bonds with a G2++ model in QuantLib Python. I looked at the pricers available, but it seems that the only option would be to build a CMSSpreadLeg and use the lognormalCMSSpreadPricer, which does not appear to implement the G2++ model. Am I right or is there something I am missing? Best, Valerio |
|
From: Luigi B. <lui...@gm...> - 2024-07-23 10:53:35
|
Hello—no, it's not in QuantLib yet. I described a workaround in https://www.implementingquantlib.com/2021/10/libor-fallback-calculation.html which is a bit out of date, as it mentions a couple of outstanding issues that were since solved; the accrual calculation has been correct for quite a while, and as of the latest release (1.35) the overnight coupon can also manage lookback days, lockout days and observation shifts. Hope this helps, Luigi On Sun, Jul 21, 2024 at 5:41 PM Quant <qua...@gm...> wrote: > Hi QuantLib Users, > > I just want to check if the Libor-fallback pricer below was actually > implemented in any version of QuantLib: > > https://github.com/lballabio/QuantLib/issues/1075 > > I am asking because I can not find it in the latest version 1.34. @Peter > Caspers <pca...@gm...> it seems you were running with this some > few years ago. > > Thanks & regards, > NK > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > |
|
From: Luigi B. <lui...@gm...> - 2024-07-23 07:38:39
|
QuantLib 1.35 is available for download at < https://www.quantlib.org/download.shtml>; precompiled binaries are also available from PyPI and NuGet for Python and C# respectively. The list of changes for this release is at < https://www.quantlib.org/reference/history.html>. If you have any problems with this release, please report them here on the QuantLib mailing list (<qua...@li...>), or open a GitHub issue at <https://github.com/lballabio/quantlib/issues>. |
|
From: Quant <qua...@gm...> - 2024-07-21 15:38:42
|
Hi QuantLib Users, I just want to check if the Libor-fallback pricer below was actually implemented in any version of QuantLib: https://github.com/lballabio/QuantLib/issues/1075 I am asking because I can not find it in the latest version 1.34. @Peter Caspers <pca...@gm...> it seems you were running with this some few years ago. Thanks & regards, NK |
|
From: Philippe H. <pha...@ma...> - 2024-07-16 22:25:58
|
So to answer Peter's suggestion below: "Maybe we should add a PriceCalibrationHelper that inherits from CalibrationHelper and a HestonPriceCalibrationHelper from PriceCalibrationHelper. Both of them operate directly in premium space rather than vol space." There might be an easier approach all in python. What I found is that the python helper has an impliedVolatility() method, which expects a premium as an input. So I could do a two step process whereby I fbuild a first-stage helper with an "external" BS implied vol, and then I fine-tune the value by calling the impliedVolatility() method of the helper, passing the correct market option price. This way, the vola I pass are by definition guaranteed to have the helper reprice the market. However... I do not know "officially" whether the helper created a Call or a Put. I could guess and it's not super hard, but it clearly would be much easier if such attribute was obtainable. So is there a way to know the option type of a given such helper from python? Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 16, 2024, at 6:02 PM, Philippe Hatstadt <pha...@ma...> wrote: Please disregard. dummy error: T_minus_t = nd/365 instead of T_minus_t = nd/252 Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 16, 2024, at 10:10 AM, Philippe Hatstadt <pha...@ma...> wrote: Here is a piece of portable code that attempts to compare the price of a call and a put using Black-Scholes-Merton versus the value that the HestonHelper uses to calibrate itself, using helper.marketValue() for such purpose. Please note that I didn't bother running the calibration, because I don't agree with what the helper believes the market price that it should calibrate to actually is, which needs to be sorted out first. This is the output, which demonstrates that the helper marketValue() methods doesn't return either the market call or put price, as proxied by the bsm valuation. spot strike expiration fwd vol helper_mv bsm_call bsm_put 5600 5400 January 18th, 2025 5600.0 0.15 193.522986 348.832747 148.832747 5600 5500 January 18th, 2025 5600.0 0.15 237.701503 290.942419 190.942419 5600 5600 January 18th, 2025 5600.0 0.15 287.487574 239.748097 239.748097 5600 5700 January 18th, 2025 5600.0 0.15 242.786146 195.164877 295.164877 5600 5800 January 18th, 2025 5600.0 0.15 203.403335 156.934525 356.934525 import QuantLib as ql from math import pow, sqrt import pandas as pd import numpy as np from scipy import stats def gbsm(s, k, r, b, sigma, t, call_put): d1 = (np.log(s / k) + t * (b + sigma ** 2 / 2)) / (sigma * np.sqrt(t)) d2 = d1 - sigma * np.sqrt(t) if call_put == 'C': return s * np.exp((b-r) * t) * stats.norm.cdf(d1) - k * np.exp(-r * t) * stats.norm.cdf(d2) elif call_put == 'P': return k * np.exp(-r * t) * stats.norm.cdf(-d2) - s * np.exp((b-r) * t) * stats.norm.cdf(-d1) day_count = ql.Actual365Fixed() calendar = ql.UnitedStates(ql.UnitedStates.NYSE) calculation_date = ql.Date(15, 7, 2024) ql.Settings.instance().evaluationDate = calculation_date spot = 5600 rf_rate = 0.0 div_yield = 0.0 yield_ts = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date, rf_rate, day_count)) dividend_ts = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date, div_yield, day_count)) expiration_date = ql.Date(18, 1, 2025) vol = .15 nd = expiration_date - calculation_date p = ql.Period(nd, ql.Days) df = pd.DataFrame(columns=['spot', 'strike', 'expiration', 'fwd', 'vol', 'helper_mv', 'bsm_call', 'bsm_put']) for i, strike in enumerate([5400, 5500, 5600, 5700, 5800]): helper = ql.HestonModelHelper(p, calendar, spot, strike, ql.QuoteHandle(ql.SimpleQuote(vol)),yield_ts, dividend_ts) # compute risk-neutral fwd value b = rf_rate - div_yield fwd = spot * np.exp(b * t) # compute bsm value T_minus_t = nd/365 bsm_call = gbsm(spot,strike,rf_rate, b, vol, T_minus_t,"C") bsm_put = gbsm(spot,strike,rf_rate, b, vol, T_minus_t,"P") df.loc[i] = { 'spot': spot, 'strike':strike, 'expiration':str(expiration_date), 'fwd':fwd, 'vol':vol, 'helper_mv':helper.marketValue(), 'bsm_call':bsm_call, 'bsm_put': bsm_put } display(df) Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 15, 2024, at 9:08 PM, philippe hatstadt via QuantLib-users <qua...@li...> wrote: By the way how do you handle hard to borrow stock? Is put versus call nor using the same (secured) funding curve or does put call parity no longer hold? Regards Philippe Hatstadt +1-203-252-0408 On Jul 15, 2024, at 7:47 PM, James Mac Hale <jam...@qu...> wrote: ORE has a class for stripping a forward curve given put and call option prices here https://github.com/OpenSourceRisk/Engine/blob/master/QuantExt/qle/termstructures/equityforwardcurvestripper.hpp That's half the battle. It works well for OPRA SPX data but you need to remove some maturities with only a handful of strikes. On Mon, Jul 15, 2024, 10:19 PM philippe hatstadt via QuantLib-users < qua...@li... > wrote: That would be nice. I just built a prototype that uses SPX option quotes, and attempts to derive RidkNeutralForward/Strike for each option, carefully eliminating all calls where such ratio is >= 1 and puts where it is <1. I then compute a BS implied volatility for each option and use such data to build a helpers list, from which I calibrate Heston parameters via ql.LevenbergMarquart. If I then compute the calibration errors, what I observe is that for each helper, the value helper.marketValue() is nowhere near the market values I had used to compute the BS implied volatilities. Such respective values differ by anywhere from 15% to 65% relative option premium. I suppose I need to post some code if I want someone to help? But curious of the steps I took are ok? Regards Philippe Hatstadt +1-203-252-0408 > On Jul 15, 2024, at 2:35 PM, Peter Caspers < pca...@gm... > wrote: > > Maybe we should add a PriceCalibrationHelper that inherits from > CalibrationHelper and a HestonPriceCalibrationHelper from > PriceCalibrationHelper. Both of them operate directly in premium space > rather than vol space. > >> On Fri, 12 Jul 2024 at 22:15, Philippe Hatstadt < pha...@ma... > wrote: >> >> So if what I have are option quotes, I need to: >> 1. compute the risk-neutral forward for each expiry, replicating exactly what the Heston engine does? is there a way to do that using the engine? If not, what's the best way? >> 2. Use a BSM model, again making sure that it computes the same exact risk-neutral forward, compute the BSM implied volatility, correctly using either a call or a put depending on OTM forward. >> 3. Pass the vols and strikes to the HestonHelpers? >> >> For #1 and #2, I assume that passing the same exact dividend and risk-free rate handles to the respective BSM and Heston engines would guarantee matching risk-neutral forwards, but is there another approach altogether given than what I have are call and put prices? >> >> Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >> >> On Jul 12, 2024, at 4:06 PM, Peter Caspers < pca...@gm... > wrote: >> >> >> forward I believe >> >> >> ------- Weitergeleitete Nachricht ------ >> Von: philippe hatstadt < pha...@ma... > >> Datum: Fr. 12. Juli 2024 um 20:37 >> Betreff: Re: [Quantlib-users] Heston Calibration >> An: Peter Caspers < pca...@gm... > >> Cc: < qua...@li... > >> >> >> Out of the money spot or forward? >> Regards >> >> Philippe Hatstadt >> +1-203-252-0408 >> >> >>>> On Jul 12, 2024, at 2:10 PM, Peter Caspers < pca...@gm... > wrote: >>> >>> Yes. It will always build the option type which is out-of-the-money. >>> Best, Peter >>> >>>> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users >>>> < qua...@li... > wrote: >>>> >>>> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? >>>> >>>> Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >>>> >>>> >>>> _______________________________________________ >>>> 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 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline <untitled attachment> |
|
From: Philippe H. <pha...@ma...> - 2024-07-16 22:03:02
|
Please disregard. dummy error: T_minus_t = nd/365 instead of T_minus_t = nd/252 Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 16, 2024, at 10:10 AM, Philippe Hatstadt <pha...@ma...> wrote: Here is a piece of portable code that attempts to compare the price of a call and a put using Black-Scholes-Merton versus the value that the HestonHelper uses to calibrate itself, using helper.marketValue() for such purpose. Please note that I didn't bother running the calibration, because I don't agree with what the helper believes the market price that it should calibrate to actually is, which needs to be sorted out first. This is the output, which demonstrates that the helper marketValue() methods doesn't return either the market call or put price, as proxied by the bsm valuation. spot strike expiration fwd vol helper_mv bsm_call bsm_put 5600 5400 January 18th, 2025 5600.0 0.15 193.522986 348.832747 148.832747 5600 5500 January 18th, 2025 5600.0 0.15 237.701503 290.942419 190.942419 5600 5600 January 18th, 2025 5600.0 0.15 287.487574 239.748097 239.748097 5600 5700 January 18th, 2025 5600.0 0.15 242.786146 195.164877 295.164877 5600 5800 January 18th, 2025 5600.0 0.15 203.403335 156.934525 356.934525 import QuantLib as ql from math import pow, sqrt import pandas as pd import numpy as np from scipy import stats def gbsm(s, k, r, b, sigma, t, call_put): d1 = (np.log(s / k) + t * (b + sigma ** 2 / 2)) / (sigma * np.sqrt(t)) d2 = d1 - sigma * np.sqrt(t) if call_put == 'C': return s * np.exp((b-r) * t) * stats.norm.cdf(d1) - k * np.exp(-r * t) * stats.norm.cdf(d2) elif call_put == 'P': return k * np.exp(-r * t) * stats.norm.cdf(-d2) - s * np.exp((b-r) * t) * stats.norm.cdf(-d1) day_count = ql.Actual365Fixed() calendar = ql.UnitedStates(ql.UnitedStates.NYSE) calculation_date = ql.Date(15, 7, 2024) ql.Settings.instance().evaluationDate = calculation_date spot = 5600 rf_rate = 0.0 div_yield = 0.0 yield_ts = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date, rf_rate, day_count)) dividend_ts = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date, div_yield, day_count)) expiration_date = ql.Date(18, 1, 2025) vol = .15 nd = expiration_date - calculation_date p = ql.Period(nd, ql.Days) df = pd.DataFrame(columns=['spot', 'strike', 'expiration', 'fwd', 'vol', 'helper_mv', 'bsm_call', 'bsm_put']) for i, strike in enumerate([5400, 5500, 5600, 5700, 5800]): helper = ql.HestonModelHelper(p, calendar, spot, strike, ql.QuoteHandle(ql.SimpleQuote(vol)),yield_ts, dividend_ts) # compute risk-neutral fwd value b = rf_rate - div_yield fwd = spot * np.exp(b * t) # compute bsm value T_minus_t = nd/365 bsm_call = gbsm(spot,strike,rf_rate, b, vol, T_minus_t,"C") bsm_put = gbsm(spot,strike,rf_rate, b, vol, T_minus_t,"P") df.loc[i] = { 'spot': spot, 'strike':strike, 'expiration':str(expiration_date), 'fwd':fwd, 'vol':vol, 'helper_mv':helper.marketValue(), 'bsm_call':bsm_call, 'bsm_put': bsm_put } display(df) Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 15, 2024, at 9:08 PM, philippe hatstadt via QuantLib-users <qua...@li...> wrote: By the way how do you handle hard to borrow stock? Is put versus call nor using the same (secured) funding curve or does put call parity no longer hold? Regards Philippe Hatstadt +1-203-252-0408 On Jul 15, 2024, at 7:47 PM, James Mac Hale <jam...@qu...> wrote: ORE has a class for stripping a forward curve given put and call option prices here https://github.com/OpenSourceRisk/Engine/blob/master/QuantExt/qle/termstructures/equityforwardcurvestripper.hpp That's half the battle. It works well for OPRA SPX data but you need to remove some maturities with only a handful of strikes. On Mon, Jul 15, 2024, 10:19 PM philippe hatstadt via QuantLib-users < qua...@li... > wrote: That would be nice. I just built a prototype that uses SPX option quotes, and attempts to derive RidkNeutralForward/Strike for each option, carefully eliminating all calls where such ratio is >= 1 and puts where it is <1. I then compute a BS implied volatility for each option and use such data to build a helpers list, from which I calibrate Heston parameters via ql.LevenbergMarquart. If I then compute the calibration errors, what I observe is that for each helper, the value helper.marketValue() is nowhere near the market values I had used to compute the BS implied volatilities. Such respective values differ by anywhere from 15% to 65% relative option premium. I suppose I need to post some code if I want someone to help? But curious of the steps I took are ok? Regards Philippe Hatstadt +1-203-252-0408 > On Jul 15, 2024, at 2:35 PM, Peter Caspers < pca...@gm... > wrote: > > Maybe we should add a PriceCalibrationHelper that inherits from > CalibrationHelper and a HestonPriceCalibrationHelper from > PriceCalibrationHelper. Both of them operate directly in premium space > rather than vol space. > >> On Fri, 12 Jul 2024 at 22:15, Philippe Hatstadt < pha...@ma... > wrote: >> >> So if what I have are option quotes, I need to: >> 1. compute the risk-neutral forward for each expiry, replicating exactly what the Heston engine does? is there a way to do that using the engine? If not, what's the best way? >> 2. Use a BSM model, again making sure that it computes the same exact risk-neutral forward, compute the BSM implied volatility, correctly using either a call or a put depending on OTM forward. >> 3. Pass the vols and strikes to the HestonHelpers? >> >> For #1 and #2, I assume that passing the same exact dividend and risk-free rate handles to the respective BSM and Heston engines would guarantee matching risk-neutral forwards, but is there another approach altogether given than what I have are call and put prices? >> >> Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >> >> On Jul 12, 2024, at 4:06 PM, Peter Caspers < pca...@gm... > wrote: >> >> >> forward I believe >> >> >> ------- Weitergeleitete Nachricht ------ >> Von: philippe hatstadt < pha...@ma... > >> Datum: Fr. 12. Juli 2024 um 20:37 >> Betreff: Re: [Quantlib-users] Heston Calibration >> An: Peter Caspers < pca...@gm... > >> Cc: < qua...@li... > >> >> >> Out of the money spot or forward? >> Regards >> >> Philippe Hatstadt >> +1-203-252-0408 >> >> >>>> On Jul 12, 2024, at 2:10 PM, Peter Caspers < pca...@gm... > wrote: >>> >>> Yes. It will always build the option type which is out-of-the-money. >>> Best, Peter >>> >>>> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users >>>> < qua...@li... > wrote: >>>> >>>> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? >>>> >>>> Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >>>> >>>> >>>> _______________________________________________ >>>> 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 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline <untitled attachment> |
|
From: Philippe H. <pha...@ma...> - 2024-07-16 14:10:26
|
Here is a piece of portable code that attempts to compare the price of a call and a put using Black-Scholes-Merton versus the value that the HestonHelper uses to calibrate itself, using helper.marketValue() for such purpose. Please note that I didn't bother running the calibration, because I don't agree with what the helper believes the market price that it should calibrate to actually is, which needs to be sorted out first. This is the output, which demonstrates that the helper marketValue() methods doesn't return either the market call or put price, as proxied by the bsm valuation. spot strike expiration fwd vol helper_mv bsm_call bsm_put 5600 5400 January 18th, 2025 5600.0 0.15 193.522986 348.832747 148.832747 5600 5500 January 18th, 2025 5600.0 0.15 237.701503 290.942419 190.942419 5600 5600 January 18th, 2025 5600.0 0.15 287.487574 239.748097 239.748097 5600 5700 January 18th, 2025 5600.0 0.15 242.786146 195.164877 295.164877 5600 5800 January 18th, 2025 5600.0 0.15 203.403335 156.934525 356.934525 import QuantLib as ql from math import pow, sqrt import pandas as pd import numpy as np from scipy import stats def gbsm(s, k, r, b, sigma, t, call_put): d1 = (np.log(s / k) + t * (b + sigma ** 2 / 2)) / (sigma * np.sqrt(t)) d2 = d1 - sigma * np.sqrt(t) if call_put == 'C': return s * np.exp((b-r) * t) * stats.norm.cdf(d1) - k * np.exp(-r * t) * stats.norm.cdf(d2) elif call_put == 'P': return k * np.exp(-r * t) * stats.norm.cdf(-d2) - s * np.exp((b-r) * t) * stats.norm.cdf(-d1) day_count = ql.Actual365Fixed() calendar = ql.UnitedStates(ql.UnitedStates.NYSE) calculation_date = ql.Date(15, 7, 2024) ql.Settings.instance().evaluationDate = calculation_date spot = 5600 rf_rate = 0.0 div_yield = 0.0 yield_ts = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date, rf_rate, day_count)) dividend_ts = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date, div_yield, day_count)) expiration_date = ql.Date(18, 1, 2025) vol = .15 nd = expiration_date - calculation_date p = ql.Period(nd, ql.Days) df = pd.DataFrame(columns=['spot', 'strike', 'expiration', 'fwd', 'vol', 'helper_mv', 'bsm_call', 'bsm_put']) for i, strike in enumerate([5400, 5500, 5600, 5700, 5800]): helper = ql.HestonModelHelper(p, calendar, spot, strike, ql.QuoteHandle(ql.SimpleQuote(vol)),yield_ts, dividend_ts) # compute risk-neutral fwd value b = rf_rate - div_yield fwd = spot * np.exp(b * t) # compute bsm value T_minus_t = nd/365 bsm_call = gbsm(spot,strike,rf_rate, b, vol, T_minus_t,"C") bsm_put = gbsm(spot,strike,rf_rate, b, vol, T_minus_t,"P") df.loc[i] = { 'spot': spot, 'strike':strike, 'expiration':str(expiration_date), 'fwd':fwd, 'vol':vol, 'helper_mv':helper.marketValue(), 'bsm_call':bsm_call, 'bsm_put': bsm_put } display(df) Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 15, 2024, at 9:08 PM, philippe hatstadt via QuantLib-users <qua...@li...> wrote: By the way how do you handle hard to borrow stock? Is put versus call nor using the same (secured) funding curve or does put call parity no longer hold? Regards Philippe Hatstadt +1-203-252-0408 On Jul 15, 2024, at 7:47 PM, James Mac Hale <jam...@qu...> wrote: ORE has a class for stripping a forward curve given put and call option prices here https://github.com/OpenSourceRisk/Engine/blob/master/QuantExt/qle/termstructures/equityforwardcurvestripper.hpp That's half the battle. It works well for OPRA SPX data but you need to remove some maturities with only a handful of strikes. On Mon, Jul 15, 2024, 10:19 PM philippe hatstadt via QuantLib-users < qua...@li... > wrote: That would be nice. I just built a prototype that uses SPX option quotes, and attempts to derive RidkNeutralForward/Strike for each option, carefully eliminating all calls where such ratio is >= 1 and puts where it is <1. I then compute a BS implied volatility for each option and use such data to build a helpers list, from which I calibrate Heston parameters via ql.LevenbergMarquart. If I then compute the calibration errors, what I observe is that for each helper, the value helper.marketValue() is nowhere near the market values I had used to compute the BS implied volatilities. Such respective values differ by anywhere from 15% to 65% relative option premium. I suppose I need to post some code if I want someone to help? But curious of the steps I took are ok? Regards Philippe Hatstadt +1-203-252-0408 > On Jul 15, 2024, at 2:35 PM, Peter Caspers < pca...@gm... > wrote: > > Maybe we should add a PriceCalibrationHelper that inherits from > CalibrationHelper and a HestonPriceCalibrationHelper from > PriceCalibrationHelper. Both of them operate directly in premium space > rather than vol space. > >> On Fri, 12 Jul 2024 at 22:15, Philippe Hatstadt < pha...@ma... > wrote: >> >> So if what I have are option quotes, I need to: >> 1. compute the risk-neutral forward for each expiry, replicating exactly what the Heston engine does? is there a way to do that using the engine? If not, what's the best way? >> 2. Use a BSM model, again making sure that it computes the same exact risk-neutral forward, compute the BSM implied volatility, correctly using either a call or a put depending on OTM forward. >> 3. Pass the vols and strikes to the HestonHelpers? >> >> For #1 and #2, I assume that passing the same exact dividend and risk-free rate handles to the respective BSM and Heston engines would guarantee matching risk-neutral forwards, but is there another approach altogether given than what I have are call and put prices? >> >> Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >> >> On Jul 12, 2024, at 4:06 PM, Peter Caspers < pca...@gm... > wrote: >> >> >> forward I believe >> >> >> ------- Weitergeleitete Nachricht ------ >> Von: philippe hatstadt < pha...@ma... > >> Datum: Fr. 12. Juli 2024 um 20:37 >> Betreff: Re: [Quantlib-users] Heston Calibration >> An: Peter Caspers < pca...@gm... > >> Cc: < qua...@li... > >> >> >> Out of the money spot or forward? >> Regards >> >> Philippe Hatstadt >> +1-203-252-0408 >> >> >>>> On Jul 12, 2024, at 2:10 PM, Peter Caspers < pca...@gm... > wrote: >>> >>> Yes. It will always build the option type which is out-of-the-money. >>> Best, Peter >>> >>>> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users >>>> < qua...@li... > wrote: >>>> >>>> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? >>>> >>>> Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >>>> >>>> >>>> _______________________________________________ >>>> 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 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline <untitled attachment> |
|
From: James M. H. <jam...@qu...> - 2024-07-16 01:36:17
|
ORE has a class for stripping a forward curve given put and call option prices here https://github.com/OpenSourceRisk/Engine/blob/master/QuantExt/qle/termstructures/equityforwardcurvestripper.hpp That's half the battle. It works well for OPRA SPX data but you need to remove some maturities with only a handful of strikes. On Mon, Jul 15, 2024, 10:19 PM philippe hatstadt via QuantLib-users < qua...@li...> wrote: > That would be nice. > I just built a prototype that uses SPX option quotes, and attempts to > derive RidkNeutralForward/Strike for each option, carefully eliminating all > calls where such ratio is >= 1 and puts where it is <1. > I then compute a BS implied volatility for each option and use such data > to build a helpers list, from which I calibrate Heston parameters via > ql.LevenbergMarquart. If I then compute the calibration errors, what I > observe is that for each helper, the value helper.marketValue() is nowhere > near the market values I had used to compute the BS implied volatilities. > Such respective values differ by anywhere from 15% to 65% relative option > premium. > I suppose I need to post some code if I want someone to help? But curious > of the steps I took are ok? > Regards > > Philippe Hatstadt > +1-203-252-0408 > > > > On Jul 15, 2024, at 2:35 PM, Peter Caspers <pca...@gm...> > wrote: > > > > Maybe we should add a PriceCalibrationHelper that inherits from > > CalibrationHelper and a HestonPriceCalibrationHelper from > > PriceCalibrationHelper. Both of them operate directly in premium space > > rather than vol space. > > > >> On Fri, 12 Jul 2024 at 22:15, Philippe Hatstadt <pha...@ma...> > wrote: > >> > >> So if what I have are option quotes, I need to: > >> 1. compute the risk-neutral forward for each expiry, replicating > exactly what the Heston engine does? is there a way to do that using the > engine? If not, what's the best way? > >> 2. Use a BSM model, again making sure that it computes the same exact > risk-neutral forward, compute the BSM implied volatility, correctly using > either a call or a put depending on OTM forward. > >> 3. Pass the vols and strikes to the HestonHelpers? > >> > >> For #1 and #2, I assume that passing the same exact dividend and > risk-free rate handles to the respective BSM and Heston engines would > guarantee matching risk-neutral forwards, but is there another approach > altogether given than what I have are call and put prices? > >> > >> Philippe Hatstadt 203-252-0408 > https://www.linkedin.com/in/philippe-hatstadt/ > >> > >> On Jul 12, 2024, at 4:06 PM, Peter Caspers <pca...@gm...> > wrote: > >> > >> > >> forward I believe > >> > >> > >> ------- Weitergeleitete Nachricht ------ > >> Von: philippe hatstadt <pha...@ma...> > >> Datum: Fr. 12. Juli 2024 um 20:37 > >> Betreff: Re: [Quantlib-users] Heston Calibration > >> An: Peter Caspers <pca...@gm...> > >> Cc: <qua...@li...> > >> > >> > >> Out of the money spot or forward? > >> Regards > >> > >> Philippe Hatstadt > >> +1-203-252-0408 > >> > >> > >>>> On Jul 12, 2024, at 2:10 PM, Peter Caspers <pca...@gm...> > wrote: > >>> > >>> Yes. It will always build the option type which is out-of-the-money. > >>> Best, Peter > >>> > >>>> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users > >>>> <qua...@li...> wrote: > >>>> > >>>> Does the ql.HestonModelHelper only expects a BSM implied volatility > as an input? I am asking because there doesn't seem to be any parameter for > option type (call or put)? > >>>> > >>>> Best regards Philippe Hatstadt 203-252-0408 > https://www.linkedin.com/in/philippe-hatstadt/ > >>>> > >>>> > >>>> _______________________________________________ > >>>> 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: philippe h. <pha...@ma...> - 2024-07-16 01:06:34
|
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">By the way how do you handle hard to borrow stock? Is put versus call nor using the same (secured) funding curve or does put call parity no longer hold?<br id="lineBreakAtBeginningOfSignature"><div dir="ltr">Regards<div><br></div><div>Philippe Hatstadt</div><div>+1-203-252-0408</div><div><br></div></div><div dir="ltr"><br><blockquote type="cite">On Jul 15, 2024, at 7:47 PM, James Mac Hale <jam...@qu...> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="auto">ORE has a class for stripping a forward curve given put and call option prices here <a href="https://github.com/OpenSourceRisk/Engine/blob/master/QuantExt/qle/termstructures/equityforwardcurvestripper.hpp">https://github.com/OpenSourceRisk/Engine/blob/master/QuantExt/qle/termstructures/equityforwardcurvestripper.hpp</a><div dir="auto"><br></div><div dir="auto">That's half the battle. It works well for OPRA SPX data but you need to remove some maturities with only a handful of strikes.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 15, 2024, 10:19 PM philippe hatstadt via QuantLib-users <<a href="mailto:qua...@li...">qua...@li...</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That would be nice.<br> I just built a prototype that uses SPX option quotes, and attempts to derive RidkNeutralForward/Strike for each option, carefully eliminating all calls where such ratio is >= 1 and puts where it is <1.<br> I then compute a BS implied volatility for each option and use such data to build a helpers list, from which I calibrate Heston parameters via ql.LevenbergMarquart. If I then compute the calibration errors, what I observe is that for each helper, the value helper.marketValue() is nowhere near the market values I had used to compute the BS implied volatilities. Such respective values differ by anywhere from 15% to 65% relative option premium.<br> I suppose I need to post some code if I want someone to help? But curious of the steps I took are ok?<br> Regards<br> <br> Philippe Hatstadt<br> +1-203-252-0408<br> <br> <br> > On Jul 15, 2024, at 2:35 PM, Peter Caspers <<a href="mailto:pca...@gm..." target="_blank" rel="noreferrer">pca...@gm...</a>> wrote:<br> > <br> > Maybe we should add a PriceCalibrationHelper that inherits from<br> > CalibrationHelper and a HestonPriceCalibrationHelper from<br> > PriceCalibrationHelper. Both of them operate directly in premium space<br> > rather than vol space.<br> > <br> >> On Fri, 12 Jul 2024 at 22:15, Philippe Hatstadt <<a href="mailto:pha...@ma..." target="_blank" rel="noreferrer">pha...@ma...</a>> wrote:<br> >> <br> >> So if what I have are option quotes, I need to:<br> >> 1. compute the risk-neutral forward for each expiry, replicating exactly what the Heston engine does? is there a way to do that using the engine? If not, what's the best way?<br> >> 2. Use a BSM model, again making sure that it computes the same exact risk-neutral forward, compute the BSM implied volatility, correctly using either a call or a put depending on OTM forward.<br> >> 3. Pass the vols and strikes to the HestonHelpers?<br> >> <br> >> For #1 and #2, I assume that passing the same exact dividend and risk-free rate handles to the respective BSM and Heston engines would guarantee matching risk-neutral forwards, but is there another approach altogether given than what I have are call and put prices?<br> >> <br> >> Philippe Hatstadt 203-252-0408 <a href="https://www.linkedin.com/in/philippe-hatstadt/" rel="noreferrer noreferrer" target="_blank">https://www.linkedin.com/in/philippe-hatstadt/</a><br> >> <br> >> On Jul 12, 2024, at 4:06 PM, Peter Caspers <<a href="mailto:pca...@gm..." target="_blank" rel="noreferrer">pca...@gm...</a>> wrote:<br> >> <br> >> <br> >> forward I believe<br> >> <br> >> <br> >> ------- Weitergeleitete Nachricht ------<br> >> Von: philippe hatstadt <<a href="mailto:pha...@ma..." target="_blank" rel="noreferrer">pha...@ma...</a>><br> >> Datum: Fr. 12. Juli 2024 um 20:37<br> >> Betreff: Re: [Quantlib-users] Heston Calibration<br> >> An: Peter Caspers <<a href="mailto:pca...@gm..." target="_blank" rel="noreferrer">pca...@gm...</a>><br> >> Cc: <<a href="mailto:qua...@li..." target="_blank" rel="noreferrer">qua...@li...</a>><br> >> <br> >> <br> >> Out of the money spot or forward?<br> >> Regards<br> >> <br> >> Philippe Hatstadt<br> >> +1-203-252-0408<br> >> <br> >> <br> >>>> On Jul 12, 2024, at 2:10 PM, Peter Caspers <<a href="mailto:pca...@gm..." target="_blank" rel="noreferrer">pca...@gm...</a>> wrote:<br> >>> <br> >>> Yes. It will always build the option type which is out-of-the-money.<br> >>> Best, Peter<br> >>> <br> >>>> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users<br> >>>> <<a href="mailto:qua...@li..." target="_blank" rel="noreferrer">qua...@li...</a>> wrote:<br> >>>> <br> >>>> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)?<br> >>>> <br> >>>> Best regards Philippe Hatstadt 203-252-0408 <a href="https://www.linkedin.com/in/philippe-hatstadt/" rel="noreferrer noreferrer" target="_blank">https://www.linkedin.com/in/philippe-hatstadt/</a><br> >>>> <br> >>>> <br> >>>> _______________________________________________<br> >>>> QuantLib-users mailing list<br> >>>> <a href="mailto:Qua...@li..." target="_blank" rel="noreferrer">Qua...@li...</a><br> >>>> <a href="https://lists.sourceforge.net/lists/listinfo/quantlib-users" rel="noreferrer noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/quantlib-users</a><br> >> <br> >> <br> <br> <br> _______________________________________________<br> QuantLib-users mailing list<br> <a href="mailto:Qua...@li..." target="_blank" rel="noreferrer">Qua...@li...</a><br> <a href="https://lists.sourceforge.net/lists/listinfo/quantlib-users" rel="noreferrer noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/quantlib-users</a><br> </blockquote></div> </div></blockquote></body></html> |
|
From: philippe h. <pha...@ma...> - 2024-07-15 21:19:26
|
That would be nice. I just built a prototype that uses SPX option quotes, and attempts to derive RidkNeutralForward/Strike for each option, carefully eliminating all calls where such ratio is >= 1 and puts where it is <1. I then compute a BS implied volatility for each option and use such data to build a helpers list, from which I calibrate Heston parameters via ql.LevenbergMarquart. If I then compute the calibration errors, what I observe is that for each helper, the value helper.marketValue() is nowhere near the market values I had used to compute the BS implied volatilities. Such respective values differ by anywhere from 15% to 65% relative option premium. I suppose I need to post some code if I want someone to help? But curious of the steps I took are ok? Regards Philippe Hatstadt +1-203-252-0408 > On Jul 15, 2024, at 2:35 PM, Peter Caspers <pca...@gm...> wrote: > > Maybe we should add a PriceCalibrationHelper that inherits from > CalibrationHelper and a HestonPriceCalibrationHelper from > PriceCalibrationHelper. Both of them operate directly in premium space > rather than vol space. > >> On Fri, 12 Jul 2024 at 22:15, Philippe Hatstadt <pha...@ma...> wrote: >> >> So if what I have are option quotes, I need to: >> 1. compute the risk-neutral forward for each expiry, replicating exactly what the Heston engine does? is there a way to do that using the engine? If not, what's the best way? >> 2. Use a BSM model, again making sure that it computes the same exact risk-neutral forward, compute the BSM implied volatility, correctly using either a call or a put depending on OTM forward. >> 3. Pass the vols and strikes to the HestonHelpers? >> >> For #1 and #2, I assume that passing the same exact dividend and risk-free rate handles to the respective BSM and Heston engines would guarantee matching risk-neutral forwards, but is there another approach altogether given than what I have are call and put prices? >> >> Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >> >> On Jul 12, 2024, at 4:06 PM, Peter Caspers <pca...@gm...> wrote: >> >> >> forward I believe >> >> >> ------- Weitergeleitete Nachricht ------ >> Von: philippe hatstadt <pha...@ma...> >> Datum: Fr. 12. Juli 2024 um 20:37 >> Betreff: Re: [Quantlib-users] Heston Calibration >> An: Peter Caspers <pca...@gm...> >> Cc: <qua...@li...> >> >> >> Out of the money spot or forward? >> Regards >> >> Philippe Hatstadt >> +1-203-252-0408 >> >> >>>> On Jul 12, 2024, at 2:10 PM, Peter Caspers <pca...@gm...> wrote: >>> >>> Yes. It will always build the option type which is out-of-the-money. >>> Best, Peter >>> >>>> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users >>>> <qua...@li...> wrote: >>>> >>>> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? >>>> >>>> Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >>>> >>>> >>>> _______________________________________________ >>>> QuantLib-users mailing list >>>> Qua...@li... >>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >> >> |
|
From: Peter C. <pca...@gm...> - 2024-07-15 18:35:48
|
Maybe we should add a PriceCalibrationHelper that inherits from CalibrationHelper and a HestonPriceCalibrationHelper from PriceCalibrationHelper. Both of them operate directly in premium space rather than vol space. On Fri, 12 Jul 2024 at 22:15, Philippe Hatstadt <pha...@ma...> wrote: > > So if what I have are option quotes, I need to: > 1. compute the risk-neutral forward for each expiry, replicating exactly what the Heston engine does? is there a way to do that using the engine? If not, what's the best way? > 2. Use a BSM model, again making sure that it computes the same exact risk-neutral forward, compute the BSM implied volatility, correctly using either a call or a put depending on OTM forward. > 3. Pass the vols and strikes to the HestonHelpers? > > For #1 and #2, I assume that passing the same exact dividend and risk-free rate handles to the respective BSM and Heston engines would guarantee matching risk-neutral forwards, but is there another approach altogether given than what I have are call and put prices? > > Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ > > On Jul 12, 2024, at 4:06 PM, Peter Caspers <pca...@gm...> wrote: > > > forward I believe > > > ------- Weitergeleitete Nachricht ------ > Von: philippe hatstadt <pha...@ma...> > Datum: Fr. 12. Juli 2024 um 20:37 > Betreff: Re: [Quantlib-users] Heston Calibration > An: Peter Caspers <pca...@gm...> > Cc: <qua...@li...> > > > Out of the money spot or forward? > Regards > > Philippe Hatstadt > +1-203-252-0408 > > > > On Jul 12, 2024, at 2:10 PM, Peter Caspers <pca...@gm...> wrote: > > > > Yes. It will always build the option type which is out-of-the-money. > > Best, Peter > > > >> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users > >> <qua...@li...> wrote: > >> > >> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? > >> > >> Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ > >> > >> > >> _______________________________________________ > >> QuantLib-users mailing list > >> Qua...@li... > >> https://lists.sourceforge.net/lists/listinfo/quantlib-users > > |
|
From: Luigi B. <lui...@gm...> - 2024-07-13 08:12:47
|
Thanks as usual, Dirk. But now I have a sudden urge to add:
"A well-oiled machine" — Dirk Eddelbuettel
somewhere on the QuantLib site :)
Luigi
On Thu, Jul 11, 2024 at 2:36 PM Dirk Eddelbuettel <ed...@de...> wrote:
>
> QuantLib 1.35-rc is now also in Debian experimental. I will like add a
> build
> in my PPA for Ubuntu 23.10 or 24.04 or both.
>
> No issues to report yet, we can have an eye on the autobuilder page but I
> expect no issues as QuantLib is such a well-oiled machine.
>
> Dirk
>
> --
> dirk.eddelbuettel.com | @eddelbuettel | ed...@de...
>
|
|
From: Philippe H. <pha...@ma...> - 2024-07-12 20:15:40
|
So if what I have are option quotes, I need to: 1. compute the risk-neutral forward for each expiry, replicating exactly what the Heston engine does? is there a way to do that using the engine? If not, what's the best way? 2. Use a BSM model, again making sure that it computes the same exact risk-neutral forward, compute the BSM implied volatility, correctly using either a call or a put depending on OTM forward. 3. Pass the vols and strikes to the HestonHelpers? For #1 and #2, I assume that passing the same exact dividend and risk-free rate handles to the respective BSM and Heston engines would guarantee matching risk-neutral forwards, but is there another approach altogether given than what I have are call and put prices? Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ On Jul 12, 2024, at 4:06 PM, Peter Caspers <pca...@gm...> wrote: forward I believe ------- Weitergeleitete Nachricht ------ Von: philippe hatstadt < pha...@ma... > Datum: Fr. 12. Juli 2024 um 20:37 Betreff: Re: [Quantlib-users] Heston Calibration An: Peter Caspers < pca...@gm... > Cc: < qua...@li... > Out of the money spot or forward? Regards Philippe Hatstadt +1-203-252-0408 > On Jul 12, 2024, at 2:10 PM, Peter Caspers < pca...@gm... > wrote: > > Yes. It will always build the option type which is out-of-the-money. > Best, Peter > >> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users >> < qua...@li... > wrote: >> >> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? >> >> Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >> >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Peter C. <pca...@gm...> - 2024-07-12 20:06:15
|
forward I believe ------- Weitergeleitete Nachricht ------ Von: philippe hatstadt <pha...@ma...> Datum: Fr. 12. Juli 2024 um 20:37 Betreff: Re: [Quantlib-users] Heston Calibration An: Peter Caspers <pca...@gm...> Cc: <qua...@li...> Out of the money spot or forward? Regards Philippe Hatstadt +1-203-252-0408 > On Jul 12, 2024, at 2:10 PM, Peter Caspers <pca...@gm...> wrote: > > Yes. It will always build the option type which is out-of-the-money. > Best, Peter > >> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users >> <qua...@li...> wrote: >> >> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? >> >> Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >> >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: philippe h. <pha...@ma...> - 2024-07-12 18:57:46
|
Out of the money spot or forward? Regards Philippe Hatstadt +1-203-252-0408 > On Jul 12, 2024, at 2:10 PM, Peter Caspers <pca...@gm...> wrote: > > Yes. It will always build the option type which is out-of-the-money. > Best, Peter > >> On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users >> <qua...@li...> wrote: >> >> Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? >> >> Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ >> >> >> _______________________________________________ >> QuantLib-users mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Peter C. <pca...@gm...> - 2024-07-12 18:10:06
|
Yes. It will always build the option type which is out-of-the-money. Best, Peter On Fri, 12 Jul 2024 at 18:30, Philippe Hatstadt via QuantLib-users <qua...@li...> wrote: > > Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? > > Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ > > > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Philippe H. <pha...@ma...> - 2024-07-12 16:28:13
|
Does the ql.HestonModelHelper only expects a BSM implied volatility as an input? I am asking because there doesn't seem to be any parameter for option type (call or put)? Best regards Philippe Hatstadt 203-252-0408 https://www.linkedin.com/in/philippe-hatstadt/ |
|
From: Dirk E. <ed...@de...> - 2024-07-11 12:57:35
|
QuantLib 1.35-rc is now also in Debian experimental. I will like add a build in my PPA for Ubuntu 23.10 or 24.04 or both. No issues to report yet, we can have an eye on the autobuilder page but I expect no issues as QuantLib is such a well-oiled machine. Dirk -- dirk.eddelbuettel.com | @eddelbuettel | ed...@de... |