Hello all, What is the best way in QuantLib to define, for a given tenor, a swaption volatility surface such as vol=f(maturity,strike) ?
Many thanks, Pierre ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi Pierre,
SwaptionVolCube1 (SABR) and SwaptionVolCube2 (linearly interpolated) are the available choices in the production branch, both located in ql / termstructures / volatility / swaption Best regards Peter On 13 March 2015 at 15:28, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: > Hello all, > > > > What is the best way in QuantLib to define, for a given tenor, a swaption > volatility surface such as vol=f(maturity,strike) ? > > > > Many thanks, > > > > Pierre > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > QuantLib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Great!
Thanks, Pierre -----Original Message----- From: Peter Caspers [mailto:[hidden email]] Sent: Friday, March 13, 2015 10:43 AM To: Grison PG Pierre (External DEXIA-US) Cc: [hidden email] Subject: Re: [Quantlib-users] swaption surface Hi Pierre, SwaptionVolCube1 (SABR) and SwaptionVolCube2 (linearly interpolated) are the available choices in the production branch, both located in ql / termstructures / volatility / swaption Best regards Peter On 13 March 2015 at 15:28, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: > Hello all, > > > > What is the best way in QuantLib to define, for a given tenor, a > swaption volatility surface such as vol=f(maturity,strike) ? > > > > Many thanks, > > > > Pierre > > > ---------------------------------------------------------------------- > -------- Dive into the World of Parallel Programming The Go Parallel > Website, sponsored by Intel and developed in partnership with Slashdot > Media, is your hub for all things parallel software development, from > weekly thought leadership blogs to news, videos, case studies, > tutorials and more. Take a look and join the conversation now. > http://goparallel.sourceforge.net/ > _______________________________________________ > QuantLib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users > _____________________________________________________________________________ Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 _____________________________________________________________________________ ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by Peter Caspers-4
Hello,
Do you know if there is a reason for: Rate minStrike() const { return 0.0; } Rate maxStrike() const { return 1.0; } I have the feeling the strikes are expressed as spreads from the spot swap rate but I should be wrong. If have strikes such as -3bps (real strike = spot rate -3bps), -2bps, ..., +3bps and so on, should I convert them before using quantlib? Pierre -----Original Message----- From: Peter Caspers [mailto:[hidden email]] Sent: Friday, March 13, 2015 10:43 AM To: Grison PG Pierre (External DEXIA-US) Cc: [hidden email] Subject: Re: [Quantlib-users] swaption surface Hi Pierre, SwaptionVolCube1 (SABR) and SwaptionVolCube2 (linearly interpolated) are the available choices in the production branch, both located in ql / termstructures / volatility / swaption Best regards Peter On 13 March 2015 at 15:28, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: > Hello all, > > > > What is the best way in QuantLib to define, for a given tenor, a > swaption volatility surface such as vol=f(maturity,strike) ? > > > > Many thanks, > > > > Pierre > > > ---------------------------------------------------------------------- > -------- Dive into the World of Parallel Programming The Go Parallel > Website, sponsored by Intel and developed in partnership with Slashdot > Media, is your hub for all things parallel software development, from > weekly thought leadership blogs to news, videos, case studies, > tutorials and more. Take a look and join the conversation now. > http://goparallel.sourceforge.net/ > _______________________________________________ > QuantLib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users > _____________________________________________________________________________ Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 _____________________________________________________________________________ ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
>From my experience: swaption strikes are almost always given in relative terms.
Toby > On 26.03.2015, at 22:07, "Grison PG Pierre (External DEXIA-US)" <[hidden email]> wrote: > > Hello, > > Do you know if there is a reason for: > > Rate minStrike() const { return 0.0; } > Rate maxStrike() const { return 1.0; } > > I have the feeling the strikes are expressed as spreads from the spot swap rate but I should be wrong. If have strikes such as -3bps (real strike = spot rate -3bps), -2bps, ..., +3bps and so on, should I convert them before using quantlib? > > Pierre > > > > > -----Original Message----- > From: Peter Caspers [mailto:[hidden email]] > Sent: Friday, March 13, 2015 10:43 AM > To: Grison PG Pierre (External DEXIA-US) > Cc: [hidden email] > Subject: Re: [Quantlib-users] swaption surface > > Hi Pierre, > > SwaptionVolCube1 (SABR) and SwaptionVolCube2 (linearly interpolated) are the available choices in the production branch, both located in ql / termstructures / volatility / swaption > > Best regards > Peter > > >> On 13 March 2015 at 15:28, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: >> Hello all, >> >> >> >> What is the best way in QuantLib to define, for a given tenor, a >> swaption volatility surface such as vol=f(maturity,strike) ? >> >> >> >> Many thanks, >> >> >> >> Pierre >> >> >> ---------------------------------------------------------------------- >> -------- Dive into the World of Parallel Programming The Go Parallel >> Website, sponsored by Intel and developed in partnership with Slashdot >> Media, is your hub for all things parallel software development, from >> weekly thought leadership blogs to news, videos, case studies, >> tutorials and more. Take a look and join the conversation now. >> http://goparallel.sourceforge.net/ >> _______________________________________________ >> QuantLib-users mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/quantlib-users > > _____________________________________________________________________________ > Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 > _____________________________________________________________________________ > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > QuantLib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by Grison PG Pierre (External DEXIA-US)
Hi Pierre,
this is a default implementation, giving the lowest possible strike (zero - the library is currently still limited to lognormal volatilities with regards to swaptions) and a "resonable upper bound" of 100% = 1.0. However you can always enable extrapolation for a cube by myCube->enableExtrapolation(); or say "extrapolate = yes" when asking for a single volatility outside this strike range. With regards to quotation style, yes, the volatility cubes expect an ATM volatility and smile volatility quotes in absolute moneyness ( K - F ) scale. Typically you have quotes for ATM-200bp, ATM-150bp, ATM -100bp, ATM-50bp, ATM-25bp, ATM, ATM+25bp, ATM+50bp, ATM+100bp, ATM+150bp, ATM+200bp or the like. You would specify this in QuantLib via the strikeSpreads parameter with {-0.02, -0.0150, -0.01, -0.0050, -0.0025, 0.0, 0.0025, 0.0050, 0.01, 0.015, 0.02} You have to be careful with the quotes that are not given due to the low rates on the receiver side. The linearly interpolated cube will just blindly interpolate what you pass, so probably you should extrapolate the quotes flat to the left (for example) before you hand them into the constructor. The SABR cube ignores quotes below a cutoff strike given by a parameter in the constructor, which defaults to 1bp. I guess we should invest some work, so that we can process invalid (= empty) quotes passed to the cubes in the future. Besides I am currently working on shifted lognormal cubes. What do think of normal swaption cubes. Are they also relevant ? best regards Peter On 26 March 2015 at 22:07, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: > Hello, > > Do you know if there is a reason for: > > Rate minStrike() const { return 0.0; } > Rate maxStrike() const { return 1.0; } > > I have the feeling the strikes are expressed as spreads from the spot swap rate but I should be wrong. If have strikes such as -3bps (real strike = spot rate -3bps), -2bps, ..., +3bps and so on, should I convert them before using quantlib? > > Pierre > > > > > -----Original Message----- > From: Peter Caspers [mailto:[hidden email]] > Sent: Friday, March 13, 2015 10:43 AM > To: Grison PG Pierre (External DEXIA-US) > Cc: [hidden email] > Subject: Re: [Quantlib-users] swaption surface > > Hi Pierre, > > SwaptionVolCube1 (SABR) and SwaptionVolCube2 (linearly interpolated) are the available choices in the production branch, both located in ql / termstructures / volatility / swaption > > Best regards > Peter > > > On 13 March 2015 at 15:28, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: >> Hello all, >> >> >> >> What is the best way in QuantLib to define, for a given tenor, a >> swaption volatility surface such as vol=f(maturity,strike) ? >> >> >> >> Many thanks, >> >> >> >> Pierre >> >> >> ---------------------------------------------------------------------- >> -------- Dive into the World of Parallel Programming The Go Parallel >> Website, sponsored by Intel and developed in partnership with Slashdot >> Media, is your hub for all things parallel software development, from >> weekly thought leadership blogs to news, videos, case studies, >> tutorials and more. Take a look and join the conversation now. >> http://goparallel.sourceforge.net/ >> _______________________________________________ >> QuantLib-users mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/quantlib-users >> > > _____________________________________________________________________________ > Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 > _____________________________________________________________________________ ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hello Peter,
Could you please just tell me if the following lines are correct? I'm a bit confused with QuantLib conventions (annualized volatility, volatility or variance and so on). double swaptionVol = swaptionVolCube->volatility(time, tenor, strike); boost::shared_ptr<PricingEngine> engine=boost::shared_ptr<PricingEngine>(new BlackSwaptionEngine(discountCurve, swaptionVol)); Thanks a lot, Pierre -----Original Message----- From: Peter Caspers [mailto:[hidden email]] Sent: Friday, March 27, 2015 3:49 AM To: Grison PG Pierre (External DEXIA-US) Cc: [hidden email] Subject: Re: [Quantlib-users] swaption surface Hi Pierre, this is a default implementation, giving the lowest possible strike (zero - the library is currently still limited to lognormal volatilities with regards to swaptions) and a "resonable upper bound" of 100% = 1.0. However you can always enable extrapolation for a cube by myCube->enableExtrapolation(); or say "extrapolate = yes" when asking for a single volatility outside this strike range. With regards to quotation style, yes, the volatility cubes expect an ATM volatility and smile volatility quotes in absolute moneyness ( K - F ) scale. Typically you have quotes for ATM-200bp, ATM-150bp, ATM -100bp, ATM-50bp, ATM-25bp, ATM, ATM+25bp, ATM+50bp, ATM+100bp, ATM+150bp, ATM+200bp or the like. You would specify this in QuantLib via the strikeSpreads parameter with {-0.02, -0.0150, -0.01, -0.0050, -0.0025, 0.0, 0.0025, 0.0050, 0.01, 0.015, 0.02} You have to be careful with the quotes that are not given due to the low rates on the receiver side. The linearly interpolated cube will just blindly interpolate what you pass, so probably you should extrapolate the quotes flat to the left (for example) before you hand them into the constructor. The SABR cube ignores quotes below a cutoff strike given by a parameter in the constructor, which defaults to 1bp. I guess we should invest some work, so that we can process invalid (= empty) quotes passed to the cubes in the future. Besides I am currently working on shifted lognormal cubes. What do think of normal swaption cubes. Are they also relevant ? best regards Peter On 26 March 2015 at 22:07, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: > Hello, > > Do you know if there is a reason for: > > Rate minStrike() const { return 0.0; } Rate maxStrike() const { return > 1.0; } > > I have the feeling the strikes are expressed as spreads from the spot swap rate but I should be wrong. If have strikes such as -3bps (real strike = spot rate -3bps), -2bps, ..., +3bps and so on, should I convert them before using quantlib? > > Pierre > > > > > -----Original Message----- > From: Peter Caspers [mailto:[hidden email]] > Sent: Friday, March 13, 2015 10:43 AM > To: Grison PG Pierre (External DEXIA-US) > Cc: [hidden email] > Subject: Re: [Quantlib-users] swaption surface > > Hi Pierre, > > SwaptionVolCube1 (SABR) and SwaptionVolCube2 (linearly interpolated) > are the available choices in the production branch, both located in ql > / termstructures / volatility / swaption > > Best regards > Peter > > > On 13 March 2015 at 15:28, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: >> Hello all, >> >> >> >> What is the best way in QuantLib to define, for a given tenor, a >> swaption volatility surface such as vol=f(maturity,strike) ? >> >> >> >> Many thanks, >> >> >> >> Pierre >> >> >> --------------------------------------------------------------------- >> - >> -------- Dive into the World of Parallel Programming The Go Parallel >> Website, sponsored by Intel and developed in partnership with >> Slashdot Media, is your hub for all things parallel software >> development, from weekly thought leadership blogs to news, videos, >> case studies, tutorials and more. Take a look and join the conversation now. >> http://goparallel.sourceforge.net/ >> _______________________________________________ >> QuantLib-users mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/quantlib-users >> > > ______________________________________________________________________ > _______ Scanned by IBM Email Security Management Services powered by > MessageLabs. For more information please visit > http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 > ______________________________________________________________________ > _______ _____________________________________________________________________________ Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 _____________________________________________________________________________ ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi Pierre,
yes this looks correct, the cube returns an annualized volatility which is also the input for the black swaption engine. best regards Peter On 8 April 2015 at 20:15, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: > Hello Peter, > > Could you please just tell me if the following lines are correct? I'm a bit confused with QuantLib conventions (annualized volatility, volatility or variance and so on). > > double swaptionVol = swaptionVolCube->volatility(time, tenor, strike); > boost::shared_ptr<PricingEngine> engine=boost::shared_ptr<PricingEngine>(new BlackSwaptionEngine(discountCurve, swaptionVol)); > > Thanks a lot, > > Pierre > > -----Original Message----- > From: Peter Caspers [mailto:[hidden email]] > Sent: Friday, March 27, 2015 3:49 AM > To: Grison PG Pierre (External DEXIA-US) > Cc: [hidden email] > Subject: Re: [Quantlib-users] swaption surface > > Hi Pierre, > > this is a default implementation, giving the lowest possible strike (zero - the library is currently still limited to lognormal volatilities with regards to swaptions) and a "resonable upper bound" > of 100% = 1.0. However you can always enable extrapolation for a cube by > > myCube->enableExtrapolation(); > > or say "extrapolate = yes" when asking for a single volatility outside this strike range. > > With regards to quotation style, yes, the volatility cubes expect an ATM volatility and smile volatility quotes in absolute moneyness ( K - F ) scale. Typically you have quotes for > > ATM-200bp, ATM-150bp, ATM -100bp, ATM-50bp, ATM-25bp, ATM, ATM+25bp, > ATM+50bp, ATM+100bp, ATM+150bp, ATM+200bp > > or the like. You would specify this in QuantLib via the strikeSpreads parameter with > > {-0.02, -0.0150, -0.01, -0.0050, -0.0025, 0.0, 0.0025, 0.0050, 0.01, 0.015, 0.02} > > You have to be careful with the quotes that are not given due to the low rates on the receiver side. The linearly interpolated cube will just blindly interpolate what you pass, so probably you should extrapolate the quotes flat to the left (for example) before you hand them into the constructor. The SABR cube ignores quotes below a cutoff strike given by a parameter in the constructor, which defaults to 1bp. > I guess we should invest some work, so that we can process invalid (= > empty) quotes passed to the cubes in the future. Besides I am currently working on shifted lognormal cubes. > > What do think of normal swaption cubes. Are they also relevant ? > > best regards > Peter > > > On 26 March 2015 at 22:07, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: >> Hello, >> >> Do you know if there is a reason for: >> >> Rate minStrike() const { return 0.0; } Rate maxStrike() const { return >> 1.0; } >> >> I have the feeling the strikes are expressed as spreads from the spot swap rate but I should be wrong. If have strikes such as -3bps (real strike = spot rate -3bps), -2bps, ..., +3bps and so on, should I convert them before using quantlib? >> >> Pierre >> >> >> >> >> -----Original Message----- >> From: Peter Caspers [mailto:[hidden email]] >> Sent: Friday, March 13, 2015 10:43 AM >> To: Grison PG Pierre (External DEXIA-US) >> Cc: [hidden email] >> Subject: Re: [Quantlib-users] swaption surface >> >> Hi Pierre, >> >> SwaptionVolCube1 (SABR) and SwaptionVolCube2 (linearly interpolated) >> are the available choices in the production branch, both located in ql >> / termstructures / volatility / swaption >> >> Best regards >> Peter >> >> >> On 13 March 2015 at 15:28, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: >>> Hello all, >>> >>> >>> >>> What is the best way in QuantLib to define, for a given tenor, a >>> swaption volatility surface such as vol=f(maturity,strike) ? >>> >>> >>> >>> Many thanks, >>> >>> >>> >>> Pierre >>> >>> >>> --------------------------------------------------------------------- >>> - >>> -------- Dive into the World of Parallel Programming The Go Parallel >>> Website, sponsored by Intel and developed in partnership with >>> Slashdot Media, is your hub for all things parallel software >>> development, from weekly thought leadership blogs to news, videos, >>> case studies, tutorials and more. Take a look and join the conversation now. >>> http://goparallel.sourceforge.net/ >>> _______________________________________________ >>> QuantLib-users mailing list >>> [hidden email] >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> >> >> ______________________________________________________________________ >> _______ Scanned by IBM Email Security Management Services powered by >> MessageLabs. For more information please visit >> http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 >> ______________________________________________________________________ >> _______ > > _____________________________________________________________________________ > Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 > _____________________________________________________________________________ ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Thanks!
Pierre -----Original Message----- From: Peter Caspers [mailto:[hidden email]] Sent: Wednesday, April 08, 2015 2:42 PM To: Grison PG Pierre (External DEXIA-US) Cc: [hidden email] Subject: Re: [Quantlib-users] swaption surface Hi Pierre, yes this looks correct, the cube returns an annualized volatility which is also the input for the black swaption engine. best regards Peter On 8 April 2015 at 20:15, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: > Hello Peter, > > Could you please just tell me if the following lines are correct? I'm a bit confused with QuantLib conventions (annualized volatility, volatility or variance and so on). > > double swaptionVol = swaptionVolCube->volatility(time, tenor, > strike); boost::shared_ptr<PricingEngine> > engine=boost::shared_ptr<PricingEngine>(new > BlackSwaptionEngine(discountCurve, swaptionVol)); > > Thanks a lot, > > Pierre > > -----Original Message----- > From: Peter Caspers [mailto:[hidden email]] > Sent: Friday, March 27, 2015 3:49 AM > To: Grison PG Pierre (External DEXIA-US) > Cc: [hidden email] > Subject: Re: [Quantlib-users] swaption surface > > Hi Pierre, > > this is a default implementation, giving the lowest possible strike (zero - the library is currently still limited to lognormal volatilities with regards to swaptions) and a "resonable upper bound" > of 100% = 1.0. However you can always enable extrapolation for a cube > by > > myCube->enableExtrapolation(); > > or say "extrapolate = yes" when asking for a single volatility outside this strike range. > > With regards to quotation style, yes, the volatility cubes expect an > ATM volatility and smile volatility quotes in absolute moneyness ( K - > F ) scale. Typically you have quotes for > > ATM-200bp, ATM-150bp, ATM -100bp, ATM-50bp, ATM-25bp, ATM, ATM+25bp, > ATM+50bp, ATM+100bp, ATM+150bp, ATM+200bp > > or the like. You would specify this in QuantLib via the strikeSpreads > parameter with > > {-0.02, -0.0150, -0.01, -0.0050, -0.0025, 0.0, 0.0025, 0.0050, 0.01, > 0.015, 0.02} > > You have to be careful with the quotes that are not given due to the low rates on the receiver side. The linearly interpolated cube will just blindly interpolate what you pass, so probably you should extrapolate the quotes flat to the left (for example) before you hand them into the constructor. The SABR cube ignores quotes below a cutoff strike given by a parameter in the constructor, which defaults to 1bp. > I guess we should invest some work, so that we can process invalid (= > empty) quotes passed to the cubes in the future. Besides I am currently working on shifted lognormal cubes. > > What do think of normal swaption cubes. Are they also relevant ? > > best regards > Peter > > > On 26 March 2015 at 22:07, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: >> Hello, >> >> Do you know if there is a reason for: >> >> Rate minStrike() const { return 0.0; } Rate maxStrike() const { >> return 1.0; } >> >> I have the feeling the strikes are expressed as spreads from the spot swap rate but I should be wrong. If have strikes such as -3bps (real strike = spot rate -3bps), -2bps, ..., +3bps and so on, should I convert them before using quantlib? >> >> Pierre >> >> >> >> >> -----Original Message----- >> From: Peter Caspers [mailto:[hidden email]] >> Sent: Friday, March 13, 2015 10:43 AM >> To: Grison PG Pierre (External DEXIA-US) >> Cc: [hidden email] >> Subject: Re: [Quantlib-users] swaption surface >> >> Hi Pierre, >> >> SwaptionVolCube1 (SABR) and SwaptionVolCube2 (linearly interpolated) >> are the available choices in the production branch, both located in >> ql / termstructures / volatility / swaption >> >> Best regards >> Peter >> >> >> On 13 March 2015 at 15:28, Grison PG Pierre (External DEXIA-US) <[hidden email]> wrote: >>> Hello all, >>> >>> >>> >>> What is the best way in QuantLib to define, for a given tenor, a >>> swaption volatility surface such as vol=f(maturity,strike) ? >>> >>> >>> >>> Many thanks, >>> >>> >>> >>> Pierre >>> >>> >>> -------------------------------------------------------------------- >>> - >>> - >>> -------- Dive into the World of Parallel Programming The Go Parallel >>> Website, sponsored by Intel and developed in partnership with >>> Slashdot Media, is your hub for all things parallel software >>> development, from weekly thought leadership blogs to news, videos, >>> case studies, tutorials and more. Take a look and join the conversation now. >>> http://goparallel.sourceforge.net/ >>> _______________________________________________ >>> QuantLib-users mailing list >>> [hidden email] >>> https://lists.sourceforge.net/lists/listinfo/quantlib-users >>> >> >> _____________________________________________________________________ >> _ _______ Scanned by IBM Email Security Management Services powered >> by MessageLabs. For more information please visit >> http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 >> _____________________________________________________________________ >> _ >> _______ > > ______________________________________________________________________ > _______ Scanned by IBM Email Security Management Services powered by > MessageLabs. For more information please visit > http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 > ______________________________________________________________________ > _______ _____________________________________________________________________________ Scanned by IBM Email Security Management Services powered by MessageLabs. For more information please visit http://www-935.ibm.com/services/us/index.wss/offerfamily/iss/a1026954 _____________________________________________________________________________ ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by Peter Caspers-4
Hello Peter,
It's quite nice to have shifted lognormal cubes (and thanks for all your great work, btw), but having normal swaption cubes will be even better (IMO). Bloomberg users, for example, if interested in CHF ATM swaption vols for "short" maturities and "short" tenors, could only get the Normal vols, as the there are no Black vols (for good reasons obviously) or shifted lognormal vols available. If required, I could try and help with the effort. Thanks, Ioan |
Hello Ioan,
it is done already, see https://github.com/lballabio/quantlib/pull/264 but not yet part of an official release. Thank you Peter On 9 December 2015 at 16:01, Ioan F. <[hidden email]> wrote: > Hello Peter, > > It's quite nice to have shifted lognormal cubes (and thanks for all your > great work, btw), but having normal swaption cubes will be even better > (IMO). > Bloomberg users, for example, if interested in CHF ATM swaption vols for > "short" maturities and "short" tenors, could only get the Normal vols, as > the there are no Black vols (for good reasons obviously) or shifted > lognormal vols available. > If required, I could try and help with the effort. > > Thanks, > Ioan > > > > > -- > View this message in context: http://quantlib.10058.n7.nabble.com/swaption-surface-tp16362p17159.html > Sent from the quantlib-users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > _______________________________________________ > QuantLib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users ------------------------------------------------------------------------------ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |