TermStructure->times()

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

TermStructure->times()

suhasg

Hello,

 

I am going through the Bermudan swaption example and noticed that when calibrating HW, to build TimeGrid, termstructure’s times() method is called.

I am not clear about exactly what this method returns.

Since this is called inside a loop, why would the TermStructure return different results for each swaptionhelper?

 

Thanks in advance,

Suhas.

............................................................................

For further important information about AllianceBernstein please click here
http://www.abglobal.com/disclaimer/email/disclaimer.html


------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: TermStructure->times()

Peter Caspers-4
as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
fill the times list, which later on the basis for a time grid (L190).
Where do see a call to a term structure's times() method ?
Peter


On 22 January 2015 at 22:35, Ghorpadkar, Suhas
<[hidden email]> wrote:

> Hello,
>
>
>
> I am going through the Bermudan swaption example and noticed that when
> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>
> I am not clear about exactly what this method returns.
>
> Since this is called inside a loop, why would the TermStructure return
> different results for each swaptionhelper?
>
>
>
> Thanks in advance,
>
> Suhas.
>
> ............................................................................
>
> For further important information about AllianceBernstein please click here
> http://www.abglobal.com/disclaimer/email/disclaimer.html
>
>
> ------------------------------------------------------------------------------
> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
> GigeNET is offering a free month of service with a new server in Ashburn.
> Choose from 2 high performing configs, both with 100TB of bandwidth.
> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
> http://p.sf.net/sfu/gigenet
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: TermStructure->times()

suhasg
You are right, there is no call to TermStructure's times() method.
I guess my problem is, I am not sure what SwaptionHelper::addTimesTo() method is returning, is it list of yearfractions for the
Floating leg resets of the underlying swap ?
Also, I am trying to figure out why only "1x5, 2x4, 3x3, 4x2, 5x1" swaptions are considered for calibration? If I have ATM vols for 3x5 swaption,
am not supposed to create a swaptionhelper object for it and ultimately use it in calibration?

Thanks so much,
Suhas.

-----Original Message-----
From: Peter Caspers [mailto:[hidden email]]
Sent: Friday, January 23, 2015 3:56 AM
To: Ghorpadkar, Suhas
Cc: [hidden email]
Subject: Re: [Quantlib-users] TermStructure->times()

as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
fill the times list, which later on the basis for a time grid (L190).
Where do see a call to a term structure's times() method ?
Peter


On 22 January 2015 at 22:35, Ghorpadkar, Suhas
<[hidden email]> wrote:

> Hello,
>
>
>
> I am going through the Bermudan swaption example and noticed that when
> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>
> I am not clear about exactly what this method returns.
>
> Since this is called inside a loop, why would the TermStructure return
> different results for each swaptionhelper?
>
>
>
> Thanks in advance,
>
> Suhas.
>
> ............................................................................
>
> For further important information about AllianceBernstein please click here
> http://www.abglobal.com/disclaimer/email/disclaimer.html
>
>
> ------------------------------------------------------------------------------
> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
> GigeNET is offering a free month of service with a new server in Ashburn.
> Choose from 2 high performing configs, both with 100TB of bandwidth.
> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
> http://p.sf.net/sfu/gigenet
> _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: TermStructure->times()

Peter Caspers-4
As an user I wouldn't care and just trust that the swaption helper
returns the times needed in the grid when pricing on a tree -
nevertheless, looking in the code the mandatory times of a swaption
are the exercise times and the underlying's reset and payment times of
both legs. What you should care about more is the steps parameter (30
in the example) defining how fine the pricing grid is in the end.

For the last question, it is common to calibrate a model for standard
bermudan swaptions to the respective european call rights only and use
the mean reversion to tune the interplay between these in the model.
The Hull White model (also the others in the example) are limited
w.r.t. the number of calibration instruments they can replicate, so
you have to restrict yourself to the most important ones. With time
constant volatility even the five coterminals from the example are too
much and will not repriced exactly.

Peter



On 23 January 2015 at 16:13, Ghorpadkar, Suhas
<[hidden email]> wrote:

> You are right, there is no call to TermStructure's times() method.
> I guess my problem is, I am not sure what SwaptionHelper::addTimesTo() method is returning, is it list of yearfractions for the
> Floating leg resets of the underlying swap ?
> Also, I am trying to figure out why only "1x5, 2x4, 3x3, 4x2, 5x1" swaptions are considered for calibration? If I have ATM vols for 3x5 swaption,
> am not supposed to create a swaptionhelper object for it and ultimately use it in calibration?
>
> Thanks so much,
> Suhas.
>
> -----Original Message-----
> From: Peter Caspers [mailto:[hidden email]]
> Sent: Friday, January 23, 2015 3:56 AM
> To: Ghorpadkar, Suhas
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] TermStructure->times()
>
> as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
> fill the times list, which later on the basis for a time grid (L190).
> Where do see a call to a term structure's times() method ?
> Peter
>
>
> On 22 January 2015 at 22:35, Ghorpadkar, Suhas
> <[hidden email]> wrote:
>> Hello,
>>
>>
>>
>> I am going through the Bermudan swaption example and noticed that when
>> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>>
>> I am not clear about exactly what this method returns.
>>
>> Since this is called inside a loop, why would the TermStructure return
>> different results for each swaptionhelper?
>>
>>
>>
>> Thanks in advance,
>>
>> Suhas.
>>
>> ............................................................................
>>
>> For further important information about AllianceBernstein please click here
>> http://www.abglobal.com/disclaimer/email/disclaimer.html
>>
>>
>> ------------------------------------------------------------------------------
>> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
>> GigeNET is offering a free month of service with a new server in Ashburn.
>> Choose from 2 high performing configs, both with 100TB of bandwidth.
>> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
>> http://p.sf.net/sfu/gigenet
>> _______________________________________________
>> QuantLib-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: TermStructure->times()

suhasg
Thanks.
If I am calibrating HW so that I can generate yield curves for a series of future dates to be used in simulation for CVA/PFE and not for pricing Bermudan swaption, do I still restrict my calibration to those 5 coterminal swaptions?
Thanks again,
Suhas.



-----Original Message-----
From: Peter Caspers [mailto:[hidden email]]
Sent: Friday, January 23, 2015 10:54 AM
To: Ghorpadkar, Suhas
Cc: [hidden email]
Subject: Re: [Quantlib-users] TermStructure->times()

As an user I wouldn't care and just trust that the swaption helper
returns the times needed in the grid when pricing on a tree -
nevertheless, looking in the code the mandatory times of a swaption
are the exercise times and the underlying's reset and payment times of
both legs. What you should care about more is the steps parameter (30
in the example) defining how fine the pricing grid is in the end.

For the last question, it is common to calibrate a model for standard
bermudan swaptions to the respective european call rights only and use
the mean reversion to tune the interplay between these in the model.
The Hull White model (also the others in the example) are limited
w.r.t. the number of calibration instruments they can replicate, so
you have to restrict yourself to the most important ones. With time
constant volatility even the five coterminals from the example are too
much and will not repriced exactly.

Peter



On 23 January 2015 at 16:13, Ghorpadkar, Suhas
<[hidden email]> wrote:

> You are right, there is no call to TermStructure's times() method.
> I guess my problem is, I am not sure what SwaptionHelper::addTimesTo() method is returning, is it list of yearfractions for the
> Floating leg resets of the underlying swap ?
> Also, I am trying to figure out why only "1x5, 2x4, 3x3, 4x2, 5x1" swaptions are considered for calibration? If I have ATM vols for 3x5 swaption,
> am not supposed to create a swaptionhelper object for it and ultimately use it in calibration?
>
> Thanks so much,
> Suhas.
>
> -----Original Message-----
> From: Peter Caspers [mailto:[hidden email]]
> Sent: Friday, January 23, 2015 3:56 AM
> To: Ghorpadkar, Suhas
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] TermStructure->times()
>
> as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
> fill the times list, which later on the basis for a time grid (L190).
> Where do see a call to a term structure's times() method ?
> Peter
>
>
> On 22 January 2015 at 22:35, Ghorpadkar, Suhas
> <[hidden email]> wrote:
>> Hello,
>>
>>
>>
>> I am going through the Bermudan swaption example and noticed that when
>> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>>
>> I am not clear about exactly what this method returns.
>>
>> Since this is called inside a loop, why would the TermStructure return
>> different results for each swaptionhelper?
>>
>>
>>
>> Thanks in advance,
>>
>> Suhas.
>>
>> ............................................................................
>>
>> For further important information about AllianceBernstein please click here
>> http://www.abglobal.com/disclaimer/email/disclaimer.html
>>
>>
>> ------------------------------------------------------------------------------
>> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
>> GigeNET is offering a free month of service with a new server in Ashburn.
>> Choose from 2 high performing configs, both with 100TB of bandwidth.
>> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
>> http://p.sf.net/sfu/gigenet
>> _______________________________________________
>> QuantLib-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: TermStructure->times()

Peter Caspers-4
with a high chance that others correct me, I'd say yes for the CVA of
the underlying 5y swap. For PFE probably not, since dependent on the
pricing measure, here you'd probably want a physical measure, either
through historical data or by adjusting the drift in your swaption
calibrated model (but how ... ?).
Peter

On 23 January 2015 at 18:21, Ghorpadkar, Suhas
<[hidden email]> wrote:

> Thanks.
> If I am calibrating HW so that I can generate yield curves for a series of future dates to be used in simulation for CVA/PFE and not for pricing Bermudan swaption, do I still restrict my calibration to those 5 coterminal swaptions?
> Thanks again,
> Suhas.
>
>
>
> -----Original Message-----
> From: Peter Caspers [mailto:[hidden email]]
> Sent: Friday, January 23, 2015 10:54 AM
> To: Ghorpadkar, Suhas
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] TermStructure->times()
>
> As an user I wouldn't care and just trust that the swaption helper
> returns the times needed in the grid when pricing on a tree -
> nevertheless, looking in the code the mandatory times of a swaption
> are the exercise times and the underlying's reset and payment times of
> both legs. What you should care about more is the steps parameter (30
> in the example) defining how fine the pricing grid is in the end.
>
> For the last question, it is common to calibrate a model for standard
> bermudan swaptions to the respective european call rights only and use
> the mean reversion to tune the interplay between these in the model.
> The Hull White model (also the others in the example) are limited
> w.r.t. the number of calibration instruments they can replicate, so
> you have to restrict yourself to the most important ones. With time
> constant volatility even the five coterminals from the example are too
> much and will not repriced exactly.
>
> Peter
>
>
>
> On 23 January 2015 at 16:13, Ghorpadkar, Suhas
> <[hidden email]> wrote:
>> You are right, there is no call to TermStructure's times() method.
>> I guess my problem is, I am not sure what SwaptionHelper::addTimesTo() method is returning, is it list of yearfractions for the
>> Floating leg resets of the underlying swap ?
>> Also, I am trying to figure out why only "1x5, 2x4, 3x3, 4x2, 5x1" swaptions are considered for calibration? If I have ATM vols for 3x5 swaption,
>> am not supposed to create a swaptionhelper object for it and ultimately use it in calibration?
>>
>> Thanks so much,
>> Suhas.
>>
>> -----Original Message-----
>> From: Peter Caspers [mailto:[hidden email]]
>> Sent: Friday, January 23, 2015 3:56 AM
>> To: Ghorpadkar, Suhas
>> Cc: [hidden email]
>> Subject: Re: [Quantlib-users] TermStructure->times()
>>
>> as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
>> fill the times list, which later on the basis for a time grid (L190).
>> Where do see a call to a term structure's times() method ?
>> Peter
>>
>>
>> On 22 January 2015 at 22:35, Ghorpadkar, Suhas
>> <[hidden email]> wrote:
>>> Hello,
>>>
>>>
>>>
>>> I am going through the Bermudan swaption example and noticed that when
>>> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>>>
>>> I am not clear about exactly what this method returns.
>>>
>>> Since this is called inside a loop, why would the TermStructure return
>>> different results for each swaptionhelper?
>>>
>>>
>>>
>>> Thanks in advance,
>>>
>>> Suhas.
>>>
>>> ............................................................................
>>>
>>> For further important information about AllianceBernstein please click here
>>> http://www.abglobal.com/disclaimer/email/disclaimer.html
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
>>> GigeNET is offering a free month of service with a new server in Ashburn.
>>> Choose from 2 high performing configs, both with 100TB of bandwidth.
>>> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
>>> http://p.sf.net/sfu/gigenet
>>> _______________________________________________
>>> QuantLib-users mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>>

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: TermStructure->times()

suhasg
Thanks. Since my immediate need is CVA, I will put the PFE question on the backburner :)
So my plan is, calibrate HW for 2 sets of curves (OIS and forecasting) and 1 set of coterminal swaptions, giving me 2 sets of HW parameters.
For each simulation, generate both the curves based on HW model provided discount factors and NPV the swap, calculate the expected exposure and use it to calculate the CVA.
Thanks for all your help.

-----Original Message-----
From: Peter Caspers [mailto:[hidden email]]
Sent: Friday, January 23, 2015 2:29 PM
To: Ghorpadkar, Suhas
Cc: [hidden email]
Subject: Re: [Quantlib-users] TermStructure->times()

with a high chance that others correct me, I'd say yes for the CVA of
the underlying 5y swap. For PFE probably not, since dependent on the
pricing measure, here you'd probably want a physical measure, either
through historical data or by adjusting the drift in your swaption
calibrated model (but how ... ?).
Peter

On 23 January 2015 at 18:21, Ghorpadkar, Suhas
<[hidden email]> wrote:

> Thanks.
> If I am calibrating HW so that I can generate yield curves for a series of future dates to be used in simulation for CVA/PFE and not for pricing Bermudan swaption, do I still restrict my calibration to those 5 coterminal swaptions?
> Thanks again,
> Suhas.
>
>
>
> -----Original Message-----
> From: Peter Caspers [mailto:[hidden email]]
> Sent: Friday, January 23, 2015 10:54 AM
> To: Ghorpadkar, Suhas
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] TermStructure->times()
>
> As an user I wouldn't care and just trust that the swaption helper
> returns the times needed in the grid when pricing on a tree -
> nevertheless, looking in the code the mandatory times of a swaption
> are the exercise times and the underlying's reset and payment times of
> both legs. What you should care about more is the steps parameter (30
> in the example) defining how fine the pricing grid is in the end.
>
> For the last question, it is common to calibrate a model for standard
> bermudan swaptions to the respective european call rights only and use
> the mean reversion to tune the interplay between these in the model.
> The Hull White model (also the others in the example) are limited
> w.r.t. the number of calibration instruments they can replicate, so
> you have to restrict yourself to the most important ones. With time
> constant volatility even the five coterminals from the example are too
> much and will not repriced exactly.
>
> Peter
>
>
>
> On 23 January 2015 at 16:13, Ghorpadkar, Suhas
> <[hidden email]> wrote:
>> You are right, there is no call to TermStructure's times() method.
>> I guess my problem is, I am not sure what SwaptionHelper::addTimesTo() method is returning, is it list of yearfractions for the
>> Floating leg resets of the underlying swap ?
>> Also, I am trying to figure out why only "1x5, 2x4, 3x3, 4x2, 5x1" swaptions are considered for calibration? If I have ATM vols for 3x5 swaption,
>> am not supposed to create a swaptionhelper object for it and ultimately use it in calibration?
>>
>> Thanks so much,
>> Suhas.
>>
>> -----Original Message-----
>> From: Peter Caspers [mailto:[hidden email]]
>> Sent: Friday, January 23, 2015 3:56 AM
>> To: Ghorpadkar, Suhas
>> Cc: [hidden email]
>> Subject: Re: [Quantlib-users] TermStructure->times()
>>
>> as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
>> fill the times list, which later on the basis for a time grid (L190).
>> Where do see a call to a term structure's times() method ?
>> Peter
>>
>>
>> On 22 January 2015 at 22:35, Ghorpadkar, Suhas
>> <[hidden email]> wrote:
>>> Hello,
>>>
>>>
>>>
>>> I am going through the Bermudan swaption example and noticed that when
>>> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>>>
>>> I am not clear about exactly what this method returns.
>>>
>>> Since this is called inside a loop, why would the TermStructure return
>>> different results for each swaptionhelper?
>>>
>>>
>>>
>>> Thanks in advance,
>>>
>>> Suhas.
>>>
>>> ............................................................................
>>>
>>> For further important information about AllianceBernstein please click here
>>> http://www.abglobal.com/disclaimer/email/disclaimer.html
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
>>> GigeNET is offering a free month of service with a new server in Ashburn.
>>> Choose from 2 high performing configs, both with 100TB of bandwidth.
>>> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
>>> http://p.sf.net/sfu/gigenet
>>> _______________________________________________
>>> QuantLib-users mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>>
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: TermStructure->times()

Peter Caspers-4
I'd calibrate only one model and adjust to the OIS / forecasting basis
deterministically.
Peter

On 23 January 2015 at 22:50, Ghorpadkar, Suhas
<[hidden email]> wrote:

> Thanks. Since my immediate need is CVA, I will put the PFE question on the backburner :)
> So my plan is, calibrate HW for 2 sets of curves (OIS and forecasting) and 1 set of coterminal swaptions, giving me 2 sets of HW parameters.
> For each simulation, generate both the curves based on HW model provided discount factors and NPV the swap, calculate the expected exposure and use it to calculate the CVA.
> Thanks for all your help.
>
> -----Original Message-----
> From: Peter Caspers [mailto:[hidden email]]
> Sent: Friday, January 23, 2015 2:29 PM
> To: Ghorpadkar, Suhas
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] TermStructure->times()
>
> with a high chance that others correct me, I'd say yes for the CVA of
> the underlying 5y swap. For PFE probably not, since dependent on the
> pricing measure, here you'd probably want a physical measure, either
> through historical data or by adjusting the drift in your swaption
> calibrated model (but how ... ?).
> Peter
>
> On 23 January 2015 at 18:21, Ghorpadkar, Suhas
> <[hidden email]> wrote:
>> Thanks.
>> If I am calibrating HW so that I can generate yield curves for a series of future dates to be used in simulation for CVA/PFE and not for pricing Bermudan swaption, do I still restrict my calibration to those 5 coterminal swaptions?
>> Thanks again,
>> Suhas.
>>
>>
>>
>> -----Original Message-----
>> From: Peter Caspers [mailto:[hidden email]]
>> Sent: Friday, January 23, 2015 10:54 AM
>> To: Ghorpadkar, Suhas
>> Cc: [hidden email]
>> Subject: Re: [Quantlib-users] TermStructure->times()
>>
>> As an user I wouldn't care and just trust that the swaption helper
>> returns the times needed in the grid when pricing on a tree -
>> nevertheless, looking in the code the mandatory times of a swaption
>> are the exercise times and the underlying's reset and payment times of
>> both legs. What you should care about more is the steps parameter (30
>> in the example) defining how fine the pricing grid is in the end.
>>
>> For the last question, it is common to calibrate a model for standard
>> bermudan swaptions to the respective european call rights only and use
>> the mean reversion to tune the interplay between these in the model.
>> The Hull White model (also the others in the example) are limited
>> w.r.t. the number of calibration instruments they can replicate, so
>> you have to restrict yourself to the most important ones. With time
>> constant volatility even the five coterminals from the example are too
>> much and will not repriced exactly.
>>
>> Peter
>>
>>
>>
>> On 23 January 2015 at 16:13, Ghorpadkar, Suhas
>> <[hidden email]> wrote:
>>> You are right, there is no call to TermStructure's times() method.
>>> I guess my problem is, I am not sure what SwaptionHelper::addTimesTo() method is returning, is it list of yearfractions for the
>>> Floating leg resets of the underlying swap ?
>>> Also, I am trying to figure out why only "1x5, 2x4, 3x3, 4x2, 5x1" swaptions are considered for calibration? If I have ATM vols for 3x5 swaption,
>>> am not supposed to create a swaptionhelper object for it and ultimately use it in calibration?
>>>
>>> Thanks so much,
>>> Suhas.
>>>
>>> -----Original Message-----
>>> From: Peter Caspers [mailto:[hidden email]]
>>> Sent: Friday, January 23, 2015 3:56 AM
>>> To: Ghorpadkar, Suhas
>>> Cc: [hidden email]
>>> Subject: Re: [Quantlib-users] TermStructure->times()
>>>
>>> as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
>>> fill the times list, which later on the basis for a time grid (L190).
>>> Where do see a call to a term structure's times() method ?
>>> Peter
>>>
>>>
>>> On 22 January 2015 at 22:35, Ghorpadkar, Suhas
>>> <[hidden email]> wrote:
>>>> Hello,
>>>>
>>>>
>>>>
>>>> I am going through the Bermudan swaption example and noticed that when
>>>> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>>>>
>>>> I am not clear about exactly what this method returns.
>>>>
>>>> Since this is called inside a loop, why would the TermStructure return
>>>> different results for each swaptionhelper?
>>>>
>>>>
>>>>
>>>> Thanks in advance,
>>>>
>>>> Suhas.
>>>>
>>>> ............................................................................
>>>>
>>>> For further important information about AllianceBernstein please click here
>>>> http://www.abglobal.com/disclaimer/email/disclaimer.html
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
>>>> GigeNET is offering a free month of service with a new server in Ashburn.
>>>> Choose from 2 high performing configs, both with 100TB of bandwidth.
>>>> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
>>>> http://p.sf.net/sfu/gigenet
>>>> _______________________________________________
>>>> QuantLib-users mailing list
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>>>>

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: TermStructure->times()

net316
In reply to this post by suhasg
Peter,
I am currently doing CVA for the whole of our portfolio . I am not using co-terminal swaptions . I use a more representative surface- like this example http://letianwang.net/Codes/HW_Calibration.htm
Is this incorrect ?
Also can you please point me some paper/ method that shows me how I can adjust HW parameters to convert them from the risk-neutral to real-world measure
Thank you very much.


> On Jan 23, 2015, at 4:50 PM, "Ghorpadkar, Suhas" <[hidden email]> wrote:
>
> Thanks. Since my immediate need is CVA, I will put the PFE question on the backburner :)
> So my plan is, calibrate HW for 2 sets of curves (OIS and forecasting) and 1 set of coterminal swaptions, giving me 2 sets of HW parameters.
> For each simulation, generate both the curves based on HW model provided discount factors and NPV the swap, calculate the expected exposure and use it to calculate the CVA.
> Thanks for all your help.
>
> -----Original Message-----
> From: Peter Caspers [mailto:[hidden email]]
> Sent: Friday, January 23, 2015 2:29 PM
> To: Ghorpadkar, Suhas
> Cc: [hidden email]
> Subject: Re: [Quantlib-users] TermStructure->times()
>
> with a high chance that others correct me, I'd say yes for the CVA of
> the underlying 5y swap. For PFE probably not, since dependent on the
> pricing measure, here you'd probably want a physical measure, either
> through historical data or by adjusting the drift in your swaption
> calibrated model (but how ... ?).
> Peter
>
> On 23 January 2015 at 18:21, Ghorpadkar, Suhas
> <[hidden email]> wrote:
>> Thanks.
>> If I am calibrating HW so that I can generate yield curves for a series of future dates to be used in simulation for CVA/PFE and not for pricing Bermudan swaption, do I still restrict my calibration to those 5 coterminal swaptions?
>> Thanks again,
>> Suhas.
>>
>>
>>
>> -----Original Message-----
>> From: Peter Caspers [mailto:[hidden email]]
>> Sent: Friday, January 23, 2015 10:54 AM
>> To: Ghorpadkar, Suhas
>> Cc: [hidden email]
>> Subject: Re: [Quantlib-users] TermStructure->times()
>>
>> As an user I wouldn't care and just trust that the swaption helper
>> returns the times needed in the grid when pricing on a tree -
>> nevertheless, looking in the code the mandatory times of a swaption
>> are the exercise times and the underlying's reset and payment times of
>> both legs. What you should care about more is the steps parameter (30
>> in the example) defining how fine the pricing grid is in the end.
>>
>> For the last question, it is common to calibrate a model for standard
>> bermudan swaptions to the respective european call rights only and use
>> the mean reversion to tune the interplay between these in the model.
>> The Hull White model (also the others in the example) are limited
>> w.r.t. the number of calibration instruments they can replicate, so
>> you have to restrict yourself to the most important ones. With time
>> constant volatility even the five coterminals from the example are too
>> much and will not repriced exactly.
>>
>> Peter
>>
>>
>>
>> On 23 January 2015 at 16:13, Ghorpadkar, Suhas
>> <[hidden email]> wrote:
>>> You are right, there is no call to TermStructure's times() method.
>>> I guess my problem is, I am not sure what SwaptionHelper::addTimesTo() method is returning, is it list of yearfractions for the
>>> Floating leg resets of the underlying swap ?
>>> Also, I am trying to figure out why only "1x5, 2x4, 3x3, 4x2, 5x1" swaptions are considered for calibration? If I have ATM vols for 3x5 swaption,
>>> am not supposed to create a swaptionhelper object for it and ultimately use it in calibration?
>>>
>>> Thanks so much,
>>> Suhas.
>>>
>>> -----Original Message-----
>>> From: Peter Caspers [mailto:[hidden email]]
>>> Sent: Friday, January 23, 2015 3:56 AM
>>> To: Ghorpadkar, Suhas
>>> Cc: [hidden email]
>>> Subject: Re: [Quantlib-users] TermStructure->times()
>>>
>>> as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
>>> fill the times list, which later on the basis for a time grid (L190).
>>> Where do see a call to a term structure's times() method ?
>>> Peter
>>>
>>>
>>> On 22 January 2015 at 22:35, Ghorpadkar, Suhas
>>> <[hidden email]> wrote:
>>>> Hello,
>>>>
>>>>
>>>>
>>>> I am going through the Bermudan swaption example and noticed that when
>>>> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>>>>
>>>> I am not clear about exactly what this method returns.
>>>>
>>>> Since this is called inside a loop, why would the TermStructure return
>>>> different results for each swaptionhelper?
>>>>
>>>>
>>>>
>>>> Thanks in advance,
>>>>
>>>> Suhas.
>>>>
>>>> ............................................................................
>>>>
>>>> For further important information about AllianceBernstein please click here
>>>> http://www.abglobal.com/disclaimer/email/disclaimer.html
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
>>>> GigeNET is offering a free month of service with a new server in Ashburn.
>>>> Choose from 2 high performing configs, both with 100TB of bandwidth.
>>>> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
>>>> http://p.sf.net/sfu/gigenet
>>>> _______________________________________________
>>>> 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: TermStructure->times()

Peter Caspers-4
Hi,
I was just saying that since CVA is by definition some weighted sum of
european options on the underlying, it may make sense to choose a
model in which these options are priced as market consistent as
possible. The problem with a constant parameter Hull White model as
you use it is that you can not even calibrate it (exactly) to any set
of coterminals given realistic market data. With the common
stepwise-sigma constant-reversion variant you get the flexibility to
calibrate to coterminals (yet not more), so I would do this. But then
you need a  a separate calibration for each single deal, so it doesn't
allow for computing a portfolio CVA. You could proceed to aggregate
several swaps to one non-standard swap and choose a calibration set
using a representative basket (or some other) approach. On the other
hand, the exact calibration is probably not as important as for pure
pricing because other parameters like the default intensity and its
joint dynamics with rates introduce a bigger source of uncertainty in
the result anyway. Very personal thoughts, not my daily business.
Where are the Credit experts ? Or maybe you want to post this more
general / less QuantLib related question on the wilmott forum better,
you will get tons of answers there.
Peter

On 30 January 2015 at 13:53,  <[hidden email]> wrote:

> Peter,
> I am currently doing CVA for the whole of our portfolio . I am not using co-terminal swaptions . I use a more representative surface- like this example http://letianwang.net/Codes/HW_Calibration.htm
> Is this incorrect ?
> Also can you please point me some paper/ method that shows me how I can adjust HW parameters to convert them from the risk-neutral to real-world measure
> Thank you very much.
>
>
>> On Jan 23, 2015, at 4:50 PM, "Ghorpadkar, Suhas" <[hidden email]> wrote:
>>
>> Thanks. Since my immediate need is CVA, I will put the PFE question on the backburner :)
>> So my plan is, calibrate HW for 2 sets of curves (OIS and forecasting) and 1 set of coterminal swaptions, giving me 2 sets of HW parameters.
>> For each simulation, generate both the curves based on HW model provided discount factors and NPV the swap, calculate the expected exposure and use it to calculate the CVA.
>> Thanks for all your help.
>>
>> -----Original Message-----
>> From: Peter Caspers [mailto:[hidden email]]
>> Sent: Friday, January 23, 2015 2:29 PM
>> To: Ghorpadkar, Suhas
>> Cc: [hidden email]
>> Subject: Re: [Quantlib-users] TermStructure->times()
>>
>> with a high chance that others correct me, I'd say yes for the CVA of
>> the underlying 5y swap. For PFE probably not, since dependent on the
>> pricing measure, here you'd probably want a physical measure, either
>> through historical data or by adjusting the drift in your swaption
>> calibrated model (but how ... ?).
>> Peter
>>
>> On 23 January 2015 at 18:21, Ghorpadkar, Suhas
>> <[hidden email]> wrote:
>>> Thanks.
>>> If I am calibrating HW so that I can generate yield curves for a series of future dates to be used in simulation for CVA/PFE and not for pricing Bermudan swaption, do I still restrict my calibration to those 5 coterminal swaptions?
>>> Thanks again,
>>> Suhas.
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Peter Caspers [mailto:[hidden email]]
>>> Sent: Friday, January 23, 2015 10:54 AM
>>> To: Ghorpadkar, Suhas
>>> Cc: [hidden email]
>>> Subject: Re: [Quantlib-users] TermStructure->times()
>>>
>>> As an user I wouldn't care and just trust that the swaption helper
>>> returns the times needed in the grid when pricing on a tree -
>>> nevertheless, looking in the code the mandatory times of a swaption
>>> are the exercise times and the underlying's reset and payment times of
>>> both legs. What you should care about more is the steps parameter (30
>>> in the example) defining how fine the pricing grid is in the end.
>>>
>>> For the last question, it is common to calibrate a model for standard
>>> bermudan swaptions to the respective european call rights only and use
>>> the mean reversion to tune the interplay between these in the model.
>>> The Hull White model (also the others in the example) are limited
>>> w.r.t. the number of calibration instruments they can replicate, so
>>> you have to restrict yourself to the most important ones. With time
>>> constant volatility even the five coterminals from the example are too
>>> much and will not repriced exactly.
>>>
>>> Peter
>>>
>>>
>>>
>>> On 23 January 2015 at 16:13, Ghorpadkar, Suhas
>>> <[hidden email]> wrote:
>>>> You are right, there is no call to TermStructure's times() method.
>>>> I guess my problem is, I am not sure what SwaptionHelper::addTimesTo() method is returning, is it list of yearfractions for the
>>>> Floating leg resets of the underlying swap ?
>>>> Also, I am trying to figure out why only "1x5, 2x4, 3x3, 4x2, 5x1" swaptions are considered for calibration? If I have ATM vols for 3x5 swaption,
>>>> am not supposed to create a swaptionhelper object for it and ultimately use it in calibration?
>>>>
>>>> Thanks so much,
>>>> Suhas.
>>>>
>>>> -----Original Message-----
>>>> From: Peter Caspers [mailto:[hidden email]]
>>>> Sent: Friday, January 23, 2015 3:56 AM
>>>> To: Ghorpadkar, Suhas
>>>> Cc: [hidden email]
>>>> Subject: Re: [Quantlib-users] TermStructure->times()
>>>>
>>>> as far as I can see in L186 SwaptionHelper::addTimesTo() is used to
>>>> fill the times list, which later on the basis for a time grid (L190).
>>>> Where do see a call to a term structure's times() method ?
>>>> Peter
>>>>
>>>>
>>>> On 22 January 2015 at 22:35, Ghorpadkar, Suhas
>>>> <[hidden email]> wrote:
>>>>> Hello,
>>>>>
>>>>>
>>>>>
>>>>> I am going through the Bermudan swaption example and noticed that when
>>>>> calibrating HW, to build TimeGrid, termstructure’s times() method is called.
>>>>>
>>>>> I am not clear about exactly what this method returns.
>>>>>
>>>>> Since this is called inside a loop, why would the TermStructure return
>>>>> different results for each swaptionhelper?
>>>>>
>>>>>
>>>>>
>>>>> Thanks in advance,
>>>>>
>>>>> Suhas.
>>>>>
>>>>> ............................................................................
>>>>>
>>>>> For further important information about AllianceBernstein please click here
>>>>> http://www.abglobal.com/disclaimer/email/disclaimer.html
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
>>>>> GigeNET is offering a free month of service with a new server in Ashburn.
>>>>> Choose from 2 high performing configs, both with 100TB of bandwidth.
>>>>> Higher redundancy.Lower latency.Increased capacity.Completely compliant.
>>>>> http://p.sf.net/sfu/gigenet
>>>>> _______________________________________________
>>>>> 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