> At 11:15 PM 2/4/03 +0100, roland.lichters@we... wrote:
> >I am trying to run the bermudan swaption example, but the Hull White > >numerical calibration hangs. > > Roland, > are you sure it actually hangs? On my box, the analytic > calibration is almost instantaneous, while the numerical calibration takes > over 10 minutes to complete---which might as well give the impression of > hanging (and suggests choosing the analytic calibration for actual work :) > Could you try and let it run during a lunch break or something? > > Oh, and thanks for the kind words... > > Later, > Luigi Thanks for creating QuantLib. I started use it a couple of weeks ago, and I am impressed by the coding quality (expecially the consistency in which design patterns are used). I am now experimenting with Bermudan Swaptions and I have four questions... 1. I am trying to calibrate Hull-White for Bermudan swaptions, and the time needed for calibration varies greatly depending on the volatility surface I am inserting. For some surfaces, the analytic formula only takes a few seconds, while with other surfaces the calibration does never seem to terminate. I am wondering if this could be due to the value of the parameter "lambda" passed to the Simplex object. In the demo, lambda is set to 0.25, and this might be an optimal value for that particular surface, but maybe it is not optimal for other volatility surfaces. Could this be the cause of the long time needed for some calibrations? If so, is there a way to determine a good "lambda"? Or should I expect the time used by the calibration to be more or less the same, regardless of the volatility surface used? (in which case I am clearly doing something wrong in my code?) 2. I am also wondering if the order in which the volatilities are inserted matters. The demo has the following line: swaption.push_back( Handle<CalibrationHelpers>( new SwaptionHelper(swaptionMaturities[j], Period(swaptionLengths[i]), Years), RelinkableHandle<MarketElement>(Vol), indexSixMonths, rhTermStructure) that is called for each instrument to calibrate. In a old email, Francesco Perissin (2002-09-06) suggested: "pay attention to the vector of input swaption volatilities, sort them correctly" Is this correct? Why is sorting necessary (since maturity and tenor is passed with vol)? And which kind of sorting? Shall the instruments be inserted Increasing in swap tenor? 3. How does the SwaptionHelper class works? Looking at the implementation, it seems to me, that it generates the swap that corresponds to the ATM of the swaption, but I notice that the frequencies for the floating and fixed legs are both set to the frequency of the index, and the day counting convention is the one for the index too. Does it mean that, for example for an EURO swaption, the swaption volatility surface I am using should be computed for swaptions semi-annual on both the fixed and the floating leg? (if I am not wrong, people tend to quote vols for annual bond vs 6m....). This looks a bit strange to me... Am I wrong? 4. Even when I manage to calibrate the surface with Hull&White, the volatilities can differ for quite big amounts. I guess that what I am looking for is an implementation of Hull and White with alpha that depends on time... Is anyone working on the implementation of the Hull&White with non constant alpha? If not, have you any suggestions in case I wanted to try to create a new class in Quantlib to implement it? (I don't know if I will have enough time to do it immediately, but I am thinking about it...). Thanks a lot for your patience reading this and for all the effort you are putting on Quantlib. gc ******************************************************************************* For the latest news about ICAP go to www.icap.com. The information in this Internet e-mail is confidential and may be legally privileged. It is intended solely for the addressee. Access to this Internet e-mail by anyone else is unauthorised and any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. When addressed to our clients any opinions or advice contained in this Internet e-mail are subject to the terms and conditions expressed in any applicable documentation or market practices governing the relationship between ICAP plc and its clients. We have taken precautions to minimise the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachments to this message. We cannot accept liability for any loss or damage caused by software viruses. Any views expressed in this message are those of the individual sender except where they are stated to be the views of ICAP plc. ******************************************************************************* |
Is the simplex optimization still valid for more than 2 dimensions? It does
not work with CIR+ or G2++ and I don't know yet where the problem is.... Has anybody made it working with the CIR + Jamshidian Swaption? Regards, Zakoian -----Original Message----- From: [hidden email] [mailto:[hidden email]]On Behalf Of Giancarlo Pfeifer Sent: Friday, June 27, 2003 4:09 PM To: [hidden email] Subject: [Quantlib-users] Re: bermudan swaption, simplex > At 11:15 PM 2/4/03 +0100, roland.lichters@we... wrote: > >I am trying to run the bermudan swaption example, but the Hull White > >numerical calibration hangs. > > Roland, > are you sure it actually hangs? On my box, the analytic > calibration is almost instantaneous, while the numerical calibration takes > over 10 minutes to complete---which might as well give the impression of > hanging (and suggests choosing the analytic calibration for actual work :) > Could you try and let it run during a lunch break or something? > > Oh, and thanks for the kind words... > > Later, > Luigi Thanks for creating QuantLib. I started use it a couple of weeks ago, and I am impressed by the coding quality (expecially the consistency in which design patterns are used). I am now experimenting with Bermudan Swaptions and I have four questions... 1. I am trying to calibrate Hull-White for Bermudan swaptions, and the time needed for calibration varies greatly depending on the volatility surface I am inserting. For some surfaces, the analytic formula only takes a few seconds, while with other surfaces the calibration does never seem to terminate. I am wondering if this could be due to the value of the parameter "lambda" passed to the Simplex object. In the demo, lambda is set to 0.25, and this might be an optimal value for that particular surface, but maybe it is not optimal for other volatility surfaces. Could this be the cause of the long time needed for some calibrations? If so, is there a way to determine a good "lambda"? Or should I expect the time used by the calibration to be more or less the same, regardless of the volatility surface used? (in which case I am clearly doing something wrong in my code?) 2. I am also wondering if the order in which the volatilities are inserted matters. The demo has the following line: swaption.push_back( Handle<CalibrationHelpers>( new SwaptionHelper(swaptionMaturities[j], Period(swaptionLengths[i]), Years), RelinkableHandle<MarketElement>(Vol), indexSixMonths, rhTermStructure) that is called for each instrument to calibrate. In a old email, Francesco Perissin (2002-09-06) suggested: "pay attention to the vector of input swaption volatilities, sort them correctly" Is this correct? Why is sorting necessary (since maturity and tenor is passed with vol)? And which kind of sorting? Shall the instruments be inserted Increasing in swap tenor? 3. How does the SwaptionHelper class works? Looking at the implementation, it seems to me, that it generates the swap that corresponds to the ATM of the swaption, but I notice that the frequencies for the floating and fixed legs are both set to the frequency of the index, and the day counting convention is the one for the index too. Does it mean that, for example for an EURO swaption, the swaption volatility surface I am using should be computed for swaptions semi-annual on both the fixed and the floating leg? (if I am not wrong, people tend to quote vols for annual bond vs 6m....). This looks a bit strange to me... Am I wrong? 4. Even when I manage to calibrate the surface with Hull&White, the volatilities can differ for quite big amounts. I guess that what I am looking for is an implementation of Hull and White with alpha that depends on time... Is anyone working on the implementation of the Hull&White with non constant alpha? If not, have you any suggestions in case I wanted to try to create a new class in Quantlib to implement it? (I don't know if I will have enough time to do it immediately, but I am thinking about it...). Thanks a lot for your patience reading this and for all the effort you are putting on Quantlib. gc **************************************************************************** *** For the latest news about ICAP go to www.icap.com. The information in this Internet e-mail is confidential and may be legally privileged. It is intended solely for the addressee. Access to this Internet e-mail by anyone else is unauthorised and any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. When addressed to our clients any opinions or advice contained in this Internet e-mail are subject to the terms and conditions expressed in any applicable documentation or market practices governing the relationship between ICAP plc and its clients. We have taken precautions to minimise the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachments to this message. We cannot accept liability for any loss or damage caused by software viruses. Any views expressed in this message are those of the individual sender except where they are stated to be the views of ICAP plc. **************************************************************************** *** ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php _______________________________________________ Quantlib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi,
I have the same problem as you. I cannot get the CIR+, G2++ to calibrate. No matter how long I wait and optimisation method I choose. I even reduced the number of volatility calibration points down to 9. HW is fine with all the optimisation methods, however simplex is the most accurate. Best Regards, Toyin Akin. ----- Original Message ----- From: "Zakoian2000" <[hidden email]> To: "Giancarlo Pfeifer" <[hidden email]>; <[hidden email]> Sent: Thursday, July 10, 2003 12:13 AM Subject: RE: [Quantlib-users] Re: bermudan swaption, simplex > Is the simplex optimization still valid for more than 2 dimensions? It does > not work with CIR+ or G2++ and I don't know yet where the problem is.... Has > anybody made it working with the CIR + Jamshidian Swaption? > > Regards, > > Zakoian > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]]On Behalf Of Giancarlo > Pfeifer > Sent: Friday, June 27, 2003 4:09 PM > To: [hidden email] > Subject: [Quantlib-users] Re: bermudan swaption, simplex > > > > At 11:15 PM 2/4/03 +0100, roland.lichters@we... wrote: > > >I am trying to run the bermudan swaption example, but the Hull White > > >numerical calibration hangs. > > > > Roland, > > are you sure it actually hangs? On my box, the analytic > > calibration is almost instantaneous, while the numerical calibration > > over 10 minutes to complete---which might as well give the impression of > > hanging (and suggests choosing the analytic calibration for actual work :) > > Could you try and let it run during a lunch break or something? > > > > Oh, and thanks for the kind words... > > > > Later, > > Luigi > > Thanks for creating QuantLib. I started use it a couple of weeks ago, and > am impressed by the coding quality (expecially the consistency in which > design patterns are used). > > I am now experimenting with Bermudan Swaptions and I have four questions... > > 1. I am trying to calibrate Hull-White for Bermudan swaptions, and the time > needed for calibration varies greatly depending on the volatility surface I > am inserting. For some surfaces, the analytic formula only takes a few > seconds, while with other surfaces the calibration does never seem to > terminate. > > I am wondering if this could be due to the value of the parameter "lambda" > passed to the Simplex object. > In the demo, lambda is set to 0.25, and this might be an optimal value for > that particular surface, but maybe it is not optimal for other volatility > surfaces. Could this be the cause of the long time needed for some > calibrations? If so, is there a way to determine a good "lambda"? > > Or should I expect the time used by the calibration to be more or less the > same, regardless of the volatility surface used? (in which case I am > doing something wrong in my code?) > > > > 2. I am also wondering if the order in which the volatilities are inserted > matters. The demo has the following line: > > swaption.push_back( > Handle<CalibrationHelpers>( > new SwaptionHelper(swaptionMaturities[j], > Period(swaptionLengths[i]), Years), > RelinkableHandle<MarketElement>(Vol), > indexSixMonths, > rhTermStructure) > > that is called for each instrument to calibrate. In a old email, Francesco > Perissin (2002-09-06) suggested: > "pay attention to the vector of input swaption volatilities, sort them > correctly" > Is this correct? Why is sorting necessary (since maturity and tenor is > passed with vol)? And which kind of sorting? Shall the instruments be > inserted Increasing in swap tenor? > > 3. How does the SwaptionHelper class works? Looking at the implementation, > it seems to me, that it generates the swap that corresponds to the ATM of > the swaption, but I notice that the frequencies for the floating and fixed > legs are both set to the frequency of the index, and the day counting > convention is the one for the index too. > Does it mean that, for example for an EURO swaption, the swaption > surface I am using should be computed for swaptions semi-annual on both the > fixed and the floating leg? (if I am not wrong, people tend to quote vols > for annual bond vs 6m....). This looks a bit strange to me... Am I wrong? > > 4. Even when I manage to calibrate the surface with Hull&White, the > volatilities can differ for quite big amounts. I guess that what I am > looking for is an implementation of Hull and White with alpha that depends > on time... Is anyone working on the implementation of the Hull&White with > non constant alpha? If not, have you any suggestions in case I wanted to try > to create a new class in Quantlib to implement it? (I don't know if I will > have enough time to do it immediately, but I am thinking about it...). > > Thanks a lot for your patience reading this and for all the effort you are > putting on Quantlib. > gc > > > **************************************************************************** > *** > For the latest news about ICAP go to www.icap.com. > > The information in this Internet e-mail is confidential and may be legally > privileged. It is intended solely for the addressee. Access to this > Internet e-mail by anyone else is unauthorised and any disclosure, copying, > distribution or any action taken or omitted to be taken in reliance on it, > is prohibited and may be unlawful. > When addressed to our clients any opinions or advice contained in this > Internet e-mail are subject to the terms and conditions expressed in any > applicable documentation or market practices governing the relationship > between ICAP plc and its clients. > > We have taken precautions to minimise the risk of transmitting software > viruses, but we advise you to carry out your own virus checks on any > attachments to this message. We cannot accept liability for any loss or > damage caused by software viruses. > > Any views expressed in this message are those of the individual sender > except where they are stated to be the views of ICAP plc. > > *** > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: INetU > Attention Web Developers & Consultants: Become An INetU Hosting Partner. > Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! > INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Toyin, was it the case that it didn't work with other optimizers as well?
Have you used the analytical (jamshidian) or the tree calibration for CIR+? We can use the specificSwaptionPricer( if i remember the name correctly) for the G2++ analytical swaption calibration but it doen't calibrate with the simplex method..... -----Original Message----- From: [hidden email] [mailto:[hidden email]]On Behalf Of Toyin Akin Sent: Thursday, July 10, 2003 8:01 AM To: Zakoian2000; Giancarlo Pfeifer; [hidden email] Subject: Re: [Quantlib-users] Re: bermudan swaption, simplex Hi, I have the same problem as you. I cannot get the CIR+, G2++ to calibrate. No matter how long I wait and optimisation method I choose. I even reduced the number of volatility calibration points down to 9. HW is fine with all the optimisation methods, however simplex is the most accurate. Best Regards, Toyin Akin. ----- Original Message ----- From: "Zakoian2000" <[hidden email]> To: "Giancarlo Pfeifer" <[hidden email]>; <[hidden email]> Sent: Thursday, July 10, 2003 12:13 AM Subject: RE: [Quantlib-users] Re: bermudan swaption, simplex > Is the simplex optimization still valid for more than 2 dimensions? It does > not work with CIR+ or G2++ and I don't know yet where the problem is.... Has > anybody made it working with the CIR + Jamshidian Swaption? > > Regards, > > Zakoian > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]]On Behalf Of Giancarlo > Pfeifer > Sent: Friday, June 27, 2003 4:09 PM > To: [hidden email] > Subject: [Quantlib-users] Re: bermudan swaption, simplex > > > > At 11:15 PM 2/4/03 +0100, roland.lichters@we... wrote: > > >I am trying to run the bermudan swaption example, but the Hull White > > >numerical calibration hangs. > > > > Roland, > > are you sure it actually hangs? On my box, the analytic > > calibration is almost instantaneous, while the numerical calibration > > over 10 minutes to complete---which might as well give the impression of > > hanging (and suggests choosing the analytic calibration for actual work :) > > Could you try and let it run during a lunch break or something? > > > > Oh, and thanks for the kind words... > > > > Later, > > Luigi > > Thanks for creating QuantLib. I started use it a couple of weeks ago, and > am impressed by the coding quality (expecially the consistency in which > design patterns are used). > > I am now experimenting with Bermudan Swaptions and I have four questions... > > 1. I am trying to calibrate Hull-White for Bermudan swaptions, and the time > needed for calibration varies greatly depending on the volatility surface I > am inserting. For some surfaces, the analytic formula only takes a few > seconds, while with other surfaces the calibration does never seem to > terminate. > > I am wondering if this could be due to the value of the parameter "lambda" > passed to the Simplex object. > In the demo, lambda is set to 0.25, and this might be an optimal value for > that particular surface, but maybe it is not optimal for other volatility > surfaces. Could this be the cause of the long time needed for some > calibrations? If so, is there a way to determine a good "lambda"? > > Or should I expect the time used by the calibration to be more or less the > same, regardless of the volatility surface used? (in which case I am > doing something wrong in my code?) > > > > 2. I am also wondering if the order in which the volatilities are inserted > matters. The demo has the following line: > > swaption.push_back( > Handle<CalibrationHelpers>( > new SwaptionHelper(swaptionMaturities[j], > Period(swaptionLengths[i]), Years), > RelinkableHandle<MarketElement>(Vol), > indexSixMonths, > rhTermStructure) > > that is called for each instrument to calibrate. In a old email, Francesco > Perissin (2002-09-06) suggested: > "pay attention to the vector of input swaption volatilities, sort them > correctly" > Is this correct? Why is sorting necessary (since maturity and tenor is > passed with vol)? And which kind of sorting? Shall the instruments be > inserted Increasing in swap tenor? > > 3. How does the SwaptionHelper class works? Looking at the implementation, > it seems to me, that it generates the swap that corresponds to the ATM of > the swaption, but I notice that the frequencies for the floating and fixed > legs are both set to the frequency of the index, and the day counting > convention is the one for the index too. > Does it mean that, for example for an EURO swaption, the swaption > surface I am using should be computed for swaptions semi-annual on both the > fixed and the floating leg? (if I am not wrong, people tend to quote vols > for annual bond vs 6m....). This looks a bit strange to me... Am I wrong? > > 4. Even when I manage to calibrate the surface with Hull&White, the > volatilities can differ for quite big amounts. I guess that what I am > looking for is an implementation of Hull and White with alpha that depends > on time... Is anyone working on the implementation of the Hull&White with > non constant alpha? If not, have you any suggestions in case I wanted to try > to create a new class in Quantlib to implement it? (I don't know if I will > have enough time to do it immediately, but I am thinking about it...). > > Thanks a lot for your patience reading this and for all the effort you are > putting on Quantlib. > gc > > > **************************************************************************** > *** > For the latest news about ICAP go to www.icap.com. > > The information in this Internet e-mail is confidential and may be legally > privileged. It is intended solely for the addressee. Access to this > Internet e-mail by anyone else is unauthorised and any disclosure, copying, > distribution or any action taken or omitted to be taken in reliance on it, > is prohibited and may be unlawful. > When addressed to our clients any opinions or advice contained in this > Internet e-mail are subject to the terms and conditions expressed in any > applicable documentation or market practices governing the relationship > between ICAP plc and its clients. > > We have taken precautions to minimise the risk of transmitting software > viruses, but we advise you to carry out your own virus checks on any > attachments to this message. We cannot accept liability for any loss or > damage caused by software viruses. > > Any views expressed in this message are those of the individual sender > except where they are stated to be the views of ICAP plc. > > *** > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: INetU > Attention Web Developers & Consultants: Become An INetU Hosting Partner. > Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! > INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps _______________________________________________ Quantlib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi,
It looks like your tests have been more inensive than mine, however I could not get the CIR+ or G2++ models to work at all. Simplex seems to be the most accurate so I probably would not use the others. Perhaps a summary/note from the QuantLib guys to indicate whether these models actually do work? And if so, under which scenarios. Best Regards, Toyin Akin. ----- Original Message ----- From: "Zakoian2000" <[hidden email]> To: "Toyin Akin" <[hidden email]>; "Zakoian2000" <[hidden email]>; "Giancarlo Pfeifer" <[hidden email]>; <[hidden email]> Sent: Thursday, July 10, 2003 9:01 AM Subject: RE: [Quantlib-users] Re: bermudan swaption, simplex > Toyin, was it the case that it didn't work with other optimizers as well? > Have you used the analytical (jamshidian) or the tree calibration for CIR+? > We can use the specificSwaptionPricer( if i remember the name correctly) for > the G2++ analytical swaption calibration but it doen't calibrate with the > simplex method..... > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]]On Behalf Of Toyin Akin > Sent: Thursday, July 10, 2003 8:01 AM > To: Zakoian2000; Giancarlo Pfeifer; [hidden email] > Subject: Re: [Quantlib-users] Re: bermudan swaption, simplex > > > > Hi, > > I have the same problem as you. > > I cannot get the CIR+, G2++ to calibrate. No matter how long I wait and > optimisation method I choose. > I even reduced the number of volatility calibration points down to 9. > > HW is fine with all the optimisation methods, however simplex is the most > accurate. > > Best Regards, > Toyin Akin. > > ----- Original Message ----- > From: "Zakoian2000" <[hidden email]> > To: "Giancarlo Pfeifer" <[hidden email]>; > <[hidden email]> > Sent: Thursday, July 10, 2003 12:13 AM > Subject: RE: [Quantlib-users] Re: bermudan swaption, simplex > > > > Is the simplex optimization still valid for more than 2 dimensions? It > does > > not work with CIR+ or G2++ and I don't know yet where the problem is.... > Has > > anybody made it working with the CIR + Jamshidian Swaption? > > > > Regards, > > > > Zakoian > > > > -----Original Message----- > > From: [hidden email] > > [mailto:[hidden email]]On Behalf Of > > Pfeifer > > Sent: Friday, June 27, 2003 4:09 PM > > To: [hidden email] > > Subject: [Quantlib-users] Re: bermudan swaption, simplex > > > > > > > At 11:15 PM 2/4/03 +0100, roland.lichters@we... wrote: > > > >I am trying to run the bermudan swaption example, but the Hull White > > > >numerical calibration hangs. > > > > > > Roland, > > > are you sure it actually hangs? On my box, the analytic > > > calibration is almost instantaneous, while the numerical calibration > takes > > > over 10 minutes to complete---which might as well give the impression > > > > hanging (and suggests choosing the analytic calibration for actual work :) > > > Could you try and let it run during a lunch break or something? > > > > > > Oh, and thanks for the kind words... > > > > > > Later, > > > Luigi > > > > Thanks for creating QuantLib. I started use it a couple of weeks ago, and > I > > am impressed by the coding quality (expecially the consistency in which > > design patterns are used). > > > > I am now experimenting with Bermudan Swaptions and I have four > questions... > > > > 1. I am trying to calibrate Hull-White for Bermudan swaptions, and the > time > > needed for calibration varies greatly depending on the volatility > I > > am inserting. For some surfaces, the analytic formula only takes a few > > seconds, while with other surfaces the calibration does never seem to > > terminate. > > > > I am wondering if this could be due to the value of the parameter "lambd a" > > passed to the Simplex object. > > In the demo, lambda is set to 0.25, and this might be an optimal value for > > that particular surface, but maybe it is not optimal for other volatility > > surfaces. Could this be the cause of the long time needed for some > > calibrations? If so, is there a way to determine a good "lambda"? > > > > Or should I expect the time used by the calibration to be more or less the > > same, regardless of the volatility surface used? (in which case I am > clearly > > doing something wrong in my code?) > > > > > > > > 2. I am also wondering if the order in which the volatilities are inserted > > matters. The demo has the following line: > > > > swaption.push_back( > > Handle<CalibrationHelpers>( > > new SwaptionHelper(swaptionMaturities[j], > > Period(swaptionLengths[i]), Years), > > RelinkableHandle<MarketElement>(Vol), > > indexSixMonths, > > rhTermStructure) > > > > that is called for each instrument to calibrate. In a old email, > > Perissin (2002-09-06) suggested: > > "pay attention to the vector of input swaption volatilities, sort them > > correctly" > > Is this correct? Why is sorting necessary (since maturity and tenor is > > passed with vol)? And which kind of sorting? Shall the instruments be > > inserted Increasing in swap tenor? > > > > 3. How does the SwaptionHelper class works? Looking at the implementation, > > it seems to me, that it generates the swap that corresponds to the ATM of > > the swaption, but I notice that the frequencies for the floating and fixed > > legs are both set to the frequency of the index, and the day counting > > convention is the one for the index too. > > Does it mean that, for example for an EURO swaption, the swaption > volatility > > surface I am using should be computed for swaptions semi-annual on both > the > > fixed and the floating leg? (if I am not wrong, people tend to quote vols > > for annual bond vs 6m....). This looks a bit strange to me... Am I wrong? > > > > 4. Even when I manage to calibrate the surface with Hull&White, the > > volatilities can differ for quite big amounts. I guess that what I am > > looking for is an implementation of Hull and White with alpha that depends > > on time... Is anyone working on the implementation of the Hull&White with > > non constant alpha? If not, have you any suggestions in case I wanted to > try > > to create a new class in Quantlib to implement it? (I don't know if I will > > have enough time to do it immediately, but I am thinking about it...). > > > > Thanks a lot for your patience reading this and for all the effort you are > > putting on Quantlib. > > gc > > > > > > > **************************************************************************** > > *** > > For the latest news about ICAP go to www.icap.com. > > > > The information in this Internet e-mail is confidential and may be legally > > privileged. It is intended solely for the addressee. Access to this > > Internet e-mail by anyone else is unauthorised and any disclosure, > copying, > > distribution or any action taken or omitted to be taken in reliance on it, > > is prohibited and may be unlawful. > > When addressed to our clients any opinions or advice contained in this > > Internet e-mail are subject to the terms and conditions expressed in any > > applicable documentation or market practices governing the relationship > > between ICAP plc and its clients. > > > > We have taken precautions to minimise the risk of transmitting software > > viruses, but we advise you to carry out your own virus checks on any > > attachments to this message. We cannot accept liability for any loss or > > damage caused by software viruses. > > > > Any views expressed in this message are those of the individual sender > > except where they are stated to be the views of ICAP plc. > > > > > *** > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: INetU > > Attention Web Developers & Consultants: Become An INetU Hosting Partner. > > Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! > > INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php > > _______________________________________________ > > Quantlib-users mailing list > > [hidden email] > > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > > > > > ------------------------------------------------------- > > This SF.Net email sponsored by: Parasoft > > Error proof Web apps, automate testing & more. > > Download & eval WebKing and get a free book. > > www.parasoft.com/bulletproofapps > > _______________________________________________ > > Quantlib-users mailing list > > [hidden email] > > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users |
At 10:20 AM 7/10/03 +0100, Toyin Akin wrote:
>It looks like your tests have been more inensive than mine, however I could >not get the CIR+ or G2++ models >to work at all. Simplex seems to be the most accurate so I probably would >not use the others. > >Perhaps a summary/note from the QuantLib guys to indicate whether these >models actually do work? >And if so, under which scenarios. Sad, may you step in? What was the status of two-factor models? Thanks, Luigi |
In reply to this post by Toyin Akin-4
Hi,
I was wondering if the boundary constraint on the rho in G2++ could be the problem with the simplex method. This condition might be violated while searching parameter sets (if I use specificSwaptionPricer + G2++).... If so, is this due to the fact that we have single scale parameter (lambda) rather than the set of scale parameters for each parameters? Well, it might be worth to give a shot on the other optimizers.... but do I need to give the explicit form of gradients to use ConjugateGradient optimizer or is there numerical gradients available? I haven't explored other optimizers yet so.... Zakoian -----Original Message----- From: [hidden email] [mailto:[hidden email]]On Behalf Of Toyin Akin Sent: Thursday, July 10, 2003 10:21 AM To: Zakoian2000; Giancarlo Pfeifer; [hidden email] Subject: Re: [Quantlib-users] Re: bermudan swaption, simplex Hi, It looks like your tests have been more inensive than mine, however I could not get the CIR+ or G2++ models to work at all. Simplex seems to be the most accurate so I probably would not use the others. Perhaps a summary/note from the QuantLib guys to indicate whether these models actually do work? And if so, under which scenarios. Best Regards, Toyin Akin. ----- Original Message ----- From: "Zakoian2000" <[hidden email]> To: "Toyin Akin" <[hidden email]>; "Zakoian2000" <[hidden email]>; "Giancarlo Pfeifer" <[hidden email]>; <[hidden email]> Sent: Thursday, July 10, 2003 9:01 AM Subject: RE: [Quantlib-users] Re: bermudan swaption, simplex > Toyin, was it the case that it didn't work with other optimizers as well? > Have you used the analytical (jamshidian) or the tree calibration for CIR+? > We can use the specificSwaptionPricer( if i remember the name correctly) for > the G2++ analytical swaption calibration but it doen't calibrate with the > simplex method..... > > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]]On Behalf Of Toyin Akin > Sent: Thursday, July 10, 2003 8:01 AM > To: Zakoian2000; Giancarlo Pfeifer; [hidden email] > Subject: Re: [Quantlib-users] Re: bermudan swaption, simplex > > > > Hi, > > I have the same problem as you. > > I cannot get the CIR+, G2++ to calibrate. No matter how long I wait and > optimisation method I choose. > I even reduced the number of volatility calibration points down to 9. > > HW is fine with all the optimisation methods, however simplex is the most > accurate. > > Best Regards, > Toyin Akin. > > ----- Original Message ----- > From: "Zakoian2000" <[hidden email]> > To: "Giancarlo Pfeifer" <[hidden email]>; > <[hidden email]> > Sent: Thursday, July 10, 2003 12:13 AM > Subject: RE: [Quantlib-users] Re: bermudan swaption, simplex > > > > Is the simplex optimization still valid for more than 2 dimensions? It > does > > not work with CIR+ or G2++ and I don't know yet where the problem is.... > Has > > anybody made it working with the CIR + Jamshidian Swaption? > > > > Regards, > > > > Zakoian > > > > -----Original Message----- > > From: [hidden email] > > [mailto:[hidden email]]On Behalf Of > > Pfeifer > > Sent: Friday, June 27, 2003 4:09 PM > > To: [hidden email] > > Subject: [Quantlib-users] Re: bermudan swaption, simplex > > > > > > > At 11:15 PM 2/4/03 +0100, roland.lichters@we... wrote: > > > >I am trying to run the bermudan swaption example, but the Hull White > > > >numerical calibration hangs. > > > > > > Roland, > > > are you sure it actually hangs? On my box, the analytic > > > calibration is almost instantaneous, while the numerical calibration > takes > > > over 10 minutes to complete---which might as well give the impression > > > > hanging (and suggests choosing the analytic calibration for actual work :) > > > Could you try and let it run during a lunch break or something? > > > > > > Oh, and thanks for the kind words... > > > > > > Later, > > > Luigi > > > > Thanks for creating QuantLib. I started use it a couple of weeks ago, and > I > > am impressed by the coding quality (expecially the consistency in which > > design patterns are used). > > > > I am now experimenting with Bermudan Swaptions and I have four > questions... > > > > 1. I am trying to calibrate Hull-White for Bermudan swaptions, and the > time > > needed for calibration varies greatly depending on the volatility > I > > am inserting. For some surfaces, the analytic formula only takes a few > > seconds, while with other surfaces the calibration does never seem to > > terminate. > > > > I am wondering if this could be due to the value of the parameter "lambd a" > > passed to the Simplex object. > > In the demo, lambda is set to 0.25, and this might be an optimal value for > > that particular surface, but maybe it is not optimal for other volatility > > surfaces. Could this be the cause of the long time needed for some > > calibrations? If so, is there a way to determine a good "lambda"? > > > > Or should I expect the time used by the calibration to be more or less the > > same, regardless of the volatility surface used? (in which case I am > clearly > > doing something wrong in my code?) > > > > > > > > 2. I am also wondering if the order in which the volatilities are inserted > > matters. The demo has the following line: > > > > swaption.push_back( > > Handle<CalibrationHelpers>( > > new SwaptionHelper(swaptionMaturities[j], > > Period(swaptionLengths[i]), Years), > > RelinkableHandle<MarketElement>(Vol), > > indexSixMonths, > > rhTermStructure) > > > > that is called for each instrument to calibrate. In a old email, > > Perissin (2002-09-06) suggested: > > "pay attention to the vector of input swaption volatilities, sort them > > correctly" > > Is this correct? Why is sorting necessary (since maturity and tenor is > > passed with vol)? And which kind of sorting? Shall the instruments be > > inserted Increasing in swap tenor? > > > > 3. How does the SwaptionHelper class works? Looking at the implementation, > > it seems to me, that it generates the swap that corresponds to the ATM of > > the swaption, but I notice that the frequencies for the floating and fixed > > legs are both set to the frequency of the index, and the day counting > > convention is the one for the index too. > > Does it mean that, for example for an EURO swaption, the swaption > volatility > > surface I am using should be computed for swaptions semi-annual on both > the > > fixed and the floating leg? (if I am not wrong, people tend to quote vols > > for annual bond vs 6m....). This looks a bit strange to me... Am I wrong? > > > > 4. Even when I manage to calibrate the surface with Hull&White, the > > volatilities can differ for quite big amounts. I guess that what I am > > looking for is an implementation of Hull and White with alpha that depends > > on time... Is anyone working on the implementation of the Hull&White with > > non constant alpha? If not, have you any suggestions in case I wanted to > try > > to create a new class in Quantlib to implement it? (I don't know if I will > > have enough time to do it immediately, but I am thinking about it...). > > > > Thanks a lot for your patience reading this and for all the effort you are > > putting on Quantlib. > > gc > > > > > > > **************************************************************************** > > *** > > For the latest news about ICAP go to www.icap.com. > > > > The information in this Internet e-mail is confidential and may be legally > > privileged. It is intended solely for the addressee. Access to this > > Internet e-mail by anyone else is unauthorised and any disclosure, > copying, > > distribution or any action taken or omitted to be taken in reliance on it, > > is prohibited and may be unlawful. > > When addressed to our clients any opinions or advice contained in this > > Internet e-mail are subject to the terms and conditions expressed in any > > applicable documentation or market practices governing the relationship > > between ICAP plc and its clients. > > > > We have taken precautions to minimise the risk of transmitting software > > viruses, but we advise you to carry out your own virus checks on any > > attachments to this message. We cannot accept liability for any loss or > > damage caused by software viruses. > > > > Any views expressed in this message are those of the individual sender > > except where they are stated to be the views of ICAP plc. > > > > > *** > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: INetU > > Attention Web Developers & Consultants: Become An INetU Hosting Partner. > > Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! > > INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php > > _______________________________________________ > > Quantlib-users mailing list > > [hidden email] > > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > > > > > ------------------------------------------------------- > > This SF.Net email sponsored by: Parasoft > > Error proof Web apps, automate testing & more. > > Download & eval WebKing and get a free book. > > www.parasoft.com/bulletproofapps > > _______________________________________________ > > Quantlib-users mailing list > > [hidden email] > > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps _______________________________________________ Quantlib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by Luigi Ballabio-2
Hello everyone,
On Thursday 10 July 2003 11:51, Luigi Ballabio wrote: > Sad, may you step in? What was the status of two-factor models? Well, if you want these models to work, you will have to dig into the dirt! Basically, G2++ was just here to see if multi-factor short-rate models can integrate into the current framework. It was hardly numerically tested at all. Regards, Sad |
Hi Sad,
Does this apply to the CIR+ model also? If not, what scenarios does it work under? Best Regards, Toyin Akin. ----- Original Message ----- From: "Sad" <[hidden email]> To: <[hidden email]> Sent: Tuesday, July 15, 2003 2:01 PM Subject: Re: [Quantlib-users] Re: bermudan swaption, simplex > Hello everyone, > > On Thursday 10 July 2003 11:51, Luigi Ballabio wrote: > > Sad, may you step in? What was the status of two-factor models? > Well, if you want these models to work, you will have to dig into the dirt! > Basically, G2++ was just here to see if multi-factor short-rate models can > integrate into the current framework. It was hardly numerically tested at > all. > > Regards, > Sad > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps1 > _______________________________________________ > Quantlib-users mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/quantlib-users |
In reply to this post by Giancarlo Pfeifer
FYI,
The constructor of g2 has a bug in it... the m_ member variable never gets initialized and so when the constructor runs you get a "null pointer" exception (excuse my java-speak). I noticed this when I tried to modify the Bermudan swaption example to include g2. I added a section something like: Handle<Model> modelG2(new G2(rhTermStructure)); time(&tstart); bermudanSwaption.setPricingEngine( Handle<PricingEngine>(new TreeSwaption(modelG2, 40))); std::cout << "G2: " << bermudanSwaption.NPV() << std::endl; std::cout << "Elapsed time : " << time(&tend)-tstart << std::endl << std::endl ; Obviously this is an uncalibrated g2 w/ default parameters so the price is meaningless in comparison with the other models, but I was curious how slow a 2factor tree might be in comparison to the 1 factor models. If one actually wanted to calibrate g2, what's the best way to do this? time(&tstart); std::cout << "G2: " << std::endl; swaptions.setPricingEngine( Handle<PricingEngine>(new TreeSwaption(modelG2, grid))); calibrateModel(modelG2, swaptions, 0.25); std::cout << "calibrated to " << ArrayFormatter::toString(modelG2->params(),6) << std::endl; std::cout << "Elapsed time : " << time(&tend)-tstart << std::endl << std::endl ; ...might take forever to run. swaptions.setPricingEngine( Handle<PricingEngine>(new JamshidianSwaption(modelG2)); compiles but results in a run time "null pointer" error. (I haven't throroughly investigated, but it seems that modelG2 is of type Handle<Model>, which is somehow allowed to be implicitly be cast to Handle< ShortRateModels::OneFactorAffineModel>, but this cast must be done using dynamic_cast because the resulting "pointer" is null. Hope that's not too confusing. I'm not sure exactly what change to Handle or JamshidianSwaption could be made to detect this error at compile time.) Anyway it seems to do a quick calibration of g2, you would either need a special JamshidianG2Swaption class which could utilize G2 "analytic" zero coupon bond formula, or better yet somehow modify/expand/generalize G2 and JamshidianSwaption so that my naïve attempt above would work. I'll think a little about this but I thought I'd share my limited experience so far. Cheers, nehal -----Original Message----- From: Sad [mailto:[hidden email]] Sent: Tuesday, July 15, 2003 8:01 AM To: [hidden email] Subject: Re: [Quantlib-users] Re: bermudan swaption, simplex Hello everyone, On Thursday 10 July 2003 11:51, Luigi Ballabio wrote: > Sad, may you step in? What was the status of two-factor models? Well, if you want these models to work, you will have to dig into the dirt! Basically, G2++ was just here to see if multi-factor short-rate models can integrate into the current framework. It was hardly numerically tested at all. Regards, Sad ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 _______________________________________________ Quantlib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Nehal,
Thank you very very much for your deep response. I will think about what you have said and re-look at the code. Regards, Zakoian -----Original Message----- From: [hidden email] [mailto:[hidden email]]On Behalf Of Nehal Patel Sent: Tuesday, July 15, 2003 5:49 PM To: '[hidden email]'; '[hidden email]' Subject: RE: [Quantlib-users] Re: bermudan swaption, simplex FYI, The constructor of g2 has a bug in it... the m_ member variable never gets initialized and so when the constructor runs you get a "null pointer" exception (excuse my java-speak). I noticed this when I tried to modify the Bermudan swaption example to include g2. I added a section something like: Handle<Model> modelG2(new G2(rhTermStructure)); time(&tstart); bermudanSwaption.setPricingEngine( Handle<PricingEngine>(new TreeSwaption(modelG2, 40))); std::cout << "G2: " << bermudanSwaption.NPV() << std::endl; std::cout << "Elapsed time : " << time(&tend)-tstart << std::endl << std::endl ; Obviously this is an uncalibrated g2 w/ default parameters so the price is meaningless in comparison with the other models, but I was curious how slow a 2factor tree might be in comparison to the 1 factor models. If one actually wanted to calibrate g2, what's the best way to do this? time(&tstart); std::cout << "G2: " << std::endl; swaptions.setPricingEngine( Handle<PricingEngine>(new TreeSwaption(modelG2, grid))); calibrateModel(modelG2, swaptions, 0.25); std::cout << "calibrated to " << ArrayFormatter::toString(modelG2->params(),6) << std::endl; std::cout << "Elapsed time : " << time(&tend)-tstart << std::endl << std::endl ; ...might take forever to run. swaptions.setPricingEngine( Handle<PricingEngine>(new JamshidianSwaption(modelG2)); compiles but results in a run time "null pointer" error. (I haven't throroughly investigated, but it seems that modelG2 is of type Handle<Model>, which is somehow allowed to be implicitly be cast to Handle< ShortRateModels::OneFactorAffineModel>, but this cast must be done using dynamic_cast because the resulting "pointer" is null. Hope that's not too confusing. I'm not sure exactly what change to Handle or JamshidianSwaption could be made to detect this error at compile time.) Anyway it seems to do a quick calibration of g2, you would either need a special JamshidianG2Swaption class which could utilize G2 "analytic" zero coupon bond formula, or better yet somehow modify/expand/generalize G2 and JamshidianSwaption so that my naïve attempt above would work. I'll think a little about this but I thought I'd share my limited experience so far. Cheers, nehal -----Original Message----- From: Sad [mailto:[hidden email]] Sent: Tuesday, July 15, 2003 8:01 AM To: [hidden email] Subject: Re: [Quantlib-users] Re: bermudan swaption, simplex Hello everyone, On Thursday 10 July 2003 11:51, Luigi Ballabio wrote: > Sad, may you step in? What was the status of two-factor models? Well, if you want these models to work, you will have to dig into the dirt! Basically, G2++ was just here to see if multi-factor short-rate models can integrate into the current framework. It was hardly numerically tested at all. Regards, Sad ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 _______________________________________________ Quantlib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users ------------------------------------------------------- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here: http://www.vmware.com/wl/offer/345/0 _______________________________________________ Quantlib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |