swaption surface

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

swaption surface

Grison PG Pierre (External DEXIA-US)

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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Peter Caspers-4
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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Grison PG Pierre (External DEXIA-US)
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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Grison PG Pierre (External DEXIA-US)
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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Nils Tobias Kramer
>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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Peter Caspers-4
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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Grison PG Pierre (External DEXIA-US)
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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Peter Caspers-4
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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Grison PG Pierre (External DEXIA-US)
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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Ioan F.
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
Reply | Threaded
Open this post in threaded view
|

Re: swaption surface

Peter Caspers-4
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