qlxl - pricing CAP on CMS

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

qlxl - pricing CAP on CMS

Circo Giuseppe (DAM)
 <<Book1.xls>>  

Hi all,

I would like to price CAP on CMS, for that I've been building the the
capfloor vol surface and stripped it with function
"qlStrippedOptionletAdapter" and apply the

When I try to compute the option price or whatever other value from the
vol surface, I found an error that depend on the Max iteration that is
applied to "qlOptionletStripper1"

If qlOptionletStripper1 Max iteration is 0:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Put
 strike:  2.000000 %
 atm:     1.333613 %
 price:   0.00358646
 annuity: 0.510165
 expiry:  March 15th, 2011
 error:   maximum number of function evaluations (0) exceeded

If qlOptionletStripper1 Max iteration is 10000:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Call
 strike:  3.500000 %
 atm:     3.716268 %
 price:   0.000734918
 annuity: 0.389011
 expiry:  March 13th, 2020
 error:   root not bracketed: f[0,3] -> [2.734862e-004,3.045530e-0

How can I resolve that issue, where does that come from?

thank you for your help,

Ciao,



------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

Book1.xls (43K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: qlxl - pricing CAP on CMS

Peter Caspers-2
Hi Giuseppe,

a cap on cms is usually priced using swaption vols, not cap floor vols.

This does not answer your question however. Without having looked in your
excel book I would suspect some problem in the market data. I would say try
a flat interest rate curve and flat cap/floor (flat) vols and see if it
works then?

Regards
Peter

-----Ursprüngliche Nachricht-----
Von: Circo Giuseppe (DAM) [mailto:[hidden email]]
Gesendet: Mittwoch, 15. September 2010 16:06
An: [hidden email]
Betreff: [Quantlib-users] qlxl - pricing CAP on CMS

 <<Book1.xls>>  

Hi all,

I would like to price CAP on CMS, for that I've been building the the
capfloor vol surface and stripped it with function
"qlStrippedOptionletAdapter" and apply the

When I try to compute the option price or whatever other value from the
vol surface, I found an error that depend on the Max iteration that is
applied to "qlOptionletStripper1"

If qlOptionletStripper1 Max iteration is 0:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Put
 strike:  2.000000 %
 atm:     1.333613 %
 price:   0.00358646
 annuity: 0.510165
 expiry:  March 15th, 2011
 error:   maximum number of function evaluations (0) exceeded

If qlOptionletStripper1 Max iteration is 10000:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Call
 strike:  3.500000 %
 atm:     3.716268 %
 price:   0.000734918
 annuity: 0.389011
 expiry:  March 13th, 2020
 error:   root not bracketed: f[0,3] -> [2.734862e-004,3.045530e-0

How can I resolve that issue, where does that come from?

thank you for your help,

Ciao,




------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: qlxl - pricing CAP on CMS

Bojan Nikolic
In reply to this post by Circo Giuseppe (DAM)

The stripping involves an iterative solving stage which finds the
implied volatility (or rather, standard deviation) of the optionlets
from on their price.

If you set Max iteration to zero, than the iterating solver process has
no chance of finding the correct solution and it probably terminates at
the first optionlet. You definitely do not want to do that.

If you set Max iteration to a non-zero value than the iterative solver
will look for a standard deviation that gives the observed price. In you
case the solver has noticed that there does not appear to be a plausible
standard deviation solution in the range 0 to 3 and is terminating
there. Most likely then there is an error in the price that you entered
for this optionlet...

Best,
Bojan

--
Bojan Nikolic          ||          http://www.bnikolic.co.uk/ql/

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: qlxl - pricing CAP on CMS

Circo Giuseppe (DAM)
In reply to this post by Peter Caspers-2
Hi Peter,

Thank you for your reply,

Using flat rates curve and flat vol works fine, but it does not fit my needs...

also about the vol surface to use, if you inform an odbject "qlBlackSwaptionEngine" instead of "qlBlackCapFloorEngine" pricing  doesn't work: setting the pricing instrument works but when you ask for a NPV it just tells you "qlInstrumentNPV - wrong argument type"

regards,

-----Original Message-----
From: Peter Caspers [mailto:[hidden email]]
Sent: 15 September 2010 21:04
To: Circo Giuseppe (DAM); [hidden email]
Subject: AW: [Quantlib-users] qlxl - pricing CAP on CMS

Hi Giuseppe,

a cap on cms is usually priced using swaption vols, not cap floor vols.

This does not answer your question however. Without having looked in your excel book I would suspect some problem in the market data. I would say try a flat interest rate curve and flat cap/floor (flat) vols and see if it works then?

Regards
Peter

-----Ursprüngliche Nachricht-----
Von: Circo Giuseppe (DAM) [mailto:[hidden email]]
Gesendet: Mittwoch, 15. September 2010 16:06
An: [hidden email]
Betreff: [Quantlib-users] qlxl - pricing CAP on CMS

 <<Book1.xls>>  

Hi all,

I would like to price CAP on CMS, for that I've been building the the capfloor vol surface and stripped it with function "qlStrippedOptionletAdapter" and apply the

When I try to compute the option price or whatever other value from the vol surface, I found an error that depend on the Max iteration that is applied to "qlOptionletStripper1"

If qlOptionletStripper1 Max iteration is 0:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Put
 strike:  2.000000 %
 atm:     1.333613 %
 price:   0.00358646
 annuity: 0.510165
 expiry:  March 15th, 2011
 error:   maximum number of function evaluations (0) exceeded

If qlOptionletStripper1 Max iteration is 10000:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Call
 strike:  3.500000 %
 atm:     3.716268 %
 price:   0.000734918
 annuity: 0.389011
 expiry:  March 13th, 2020
 error:   root not bracketed: f[0,3] -> [2.734862e-004,3.045530e-0

How can I resolve that issue, where does that come from?

thank you for your help,

Ciao,




------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: qlxl - pricing CAP on CMS

Peter Caspers-2
Hi Giuseppe,

this was meant just as a test. The outcome is a hint that your market data
may contain arbitrage, i.e. implies a caplet with a negative price.

However have a look at classes cmscoupon, couponpricer and conundrumpricer
first, perhaps they are more useful for your needs.

Peter

-----Ursprüngliche Nachricht-----
Von: Circo Giuseppe (DAM) [mailto:[hidden email]]
Gesendet: Donnerstag, 16. September 2010 15:03
An: Peter Caspers; [hidden email]
Betreff: RE: [Quantlib-users] qlxl - pricing CAP on CMS

Hi Peter,

Thank you for your reply,

Using flat rates curve and flat vol works fine, but it does not fit my
needs...

also about the vol surface to use, if you inform an odbject
"qlBlackSwaptionEngine" instead of "qlBlackCapFloorEngine" pricing  doesn't
work: setting the pricing instrument works but when you ask for a NPV it
just tells you "qlInstrumentNPV - wrong argument type"

regards,

-----Original Message-----
From: Peter Caspers [mailto:[hidden email]]
Sent: 15 September 2010 21:04
To: Circo Giuseppe (DAM); [hidden email]
Subject: AW: [Quantlib-users] qlxl - pricing CAP on CMS

Hi Giuseppe,

a cap on cms is usually priced using swaption vols, not cap floor vols.

This does not answer your question however. Without having looked in your
excel book I would suspect some problem in the market data. I would say try
a flat interest rate curve and flat cap/floor (flat) vols and see if it
works then?

Regards
Peter

-----Ursprüngliche Nachricht-----
Von: Circo Giuseppe (DAM) [mailto:[hidden email]]
Gesendet: Mittwoch, 15. September 2010 16:06
An: [hidden email]
Betreff: [Quantlib-users] qlxl - pricing CAP on CMS

 <<Book1.xls>>  

Hi all,

I would like to price CAP on CMS, for that I've been building the the
capfloor vol surface and stripped it with function
"qlStrippedOptionletAdapter" and apply the

When I try to compute the option price or whatever other value from the vol
surface, I found an error that depend on the Max iteration that is applied
to "qlOptionletStripper1"

If qlOptionletStripper1 Max iteration is 0:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Put
 strike:  2.000000 %
 atm:     1.333613 %
 price:   0.00358646
 annuity: 0.510165
 expiry:  March 15th, 2011
 error:   maximum number of function evaluations (0) exceeded

If qlOptionletStripper1 Max iteration is 10000:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Call
 strike:  3.500000 %
 atm:     3.716268 %
 price:   0.000734918
 annuity: 0.389011
 expiry:  March 13th, 2020
 error:   root not bracketed: f[0,3] -> [2.734862e-004,3.045530e-0

How can I resolve that issue, where does that come from?

thank you for your help,

Ciao,





------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: qlxl - pricing CAP on CMS

Circo Giuseppe (DAM)
Hi Peter,

I 've found the problem, it was indeed related to the market data, it works fine now.

thank you for your help,

best regards,


-----Original Message-----
From: Peter Caspers [mailto:[hidden email]]
Sent: 16 September 2010 21:05
To: Circo Giuseppe (DAM)
Cc: [hidden email]
Subject: AW: [Quantlib-users] qlxl - pricing CAP on CMS

Hi Giuseppe,

this was meant just as a test. The outcome is a hint that your market data may contain arbitrage, i.e. implies a caplet with a negative price.

However have a look at classes cmscoupon, couponpricer and conundrumpricer first, perhaps they are more useful for your needs.

Peter

-----Ursprüngliche Nachricht-----
Von: Circo Giuseppe (DAM) [mailto:[hidden email]]
Gesendet: Donnerstag, 16. September 2010 15:03
An: Peter Caspers; [hidden email]
Betreff: RE: [Quantlib-users] qlxl - pricing CAP on CMS

Hi Peter,

Thank you for your reply,

Using flat rates curve and flat vol works fine, but it does not fit my needs...

also about the vol surface to use, if you inform an odbject "qlBlackSwaptionEngine" instead of "qlBlackCapFloorEngine" pricing  doesn't
work: setting the pricing instrument works but when you ask for a NPV it just tells you "qlInstrumentNPV - wrong argument type"

regards,

-----Original Message-----
From: Peter Caspers [mailto:[hidden email]]
Sent: 15 September 2010 21:04
To: Circo Giuseppe (DAM); [hidden email]
Subject: AW: [Quantlib-users] qlxl - pricing CAP on CMS

Hi Giuseppe,

a cap on cms is usually priced using swaption vols, not cap floor vols.

This does not answer your question however. Without having looked in your excel book I would suspect some problem in the market data. I would say try a flat interest rate curve and flat cap/floor (flat) vols and see if it works then?

Regards
Peter

-----Ursprüngliche Nachricht-----
Von: Circo Giuseppe (DAM) [mailto:[hidden email]]
Gesendet: Mittwoch, 15. September 2010 16:06
An: [hidden email]
Betreff: [Quantlib-users] qlxl - pricing CAP on CMS

 <<Book1.xls>>  

Hi all,

I would like to price CAP on CMS, for that I've been building the the capfloor vol surface and stripped it with function "qlStrippedOptionletAdapter" and apply the

When I try to compute the option price or whatever other value from the vol surface, I found an error that depend on the Max iteration that is applied to "qlOptionletStripper1"

If qlOptionletStripper1 Max iteration is 0:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Put
 strike:  2.000000 %
 atm:     1.333613 %
 price:   0.00358646
 annuity: 0.510165
 expiry:  March 15th, 2011
 error:   maximum number of function evaluations (0) exceeded

If qlOptionletStripper1 Max iteration is 10000:
qlOptionletStripper2SpreadsVol - could not bootstrap optionlet:
 type:    Call
 strike:  3.500000 %
 atm:     3.716268 %
 price:   0.000734918
 annuity: 0.389011
 expiry:  March 13th, 2020
 error:   root not bracketed: f[0,3] -> [2.734862e-004,3.045530e-0

How can I resolve that issue, where does that come from?

thank you for your help,

Ciao,





------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users