You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(17) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(23) |
| 2002 |
Jan
(18) |
Feb
(20) |
Mar
(22) |
Apr
(41) |
May
(28) |
Jun
(25) |
Jul
(10) |
Aug
(7) |
Sep
(5) |
Oct
(20) |
Nov
(13) |
Dec
(11) |
| 2003 |
Jan
(28) |
Feb
(5) |
Mar
(6) |
Apr
(5) |
May
(17) |
Jun
(6) |
Jul
(45) |
Aug
(35) |
Sep
(24) |
Oct
(50) |
Nov
(53) |
Dec
(6) |
| 2004 |
Jan
(4) |
Feb
(10) |
Mar
(52) |
Apr
(46) |
May
(8) |
Jun
(25) |
Jul
(12) |
Aug
(6) |
Sep
(8) |
Oct
(8) |
Nov
(9) |
Dec
(7) |
| 2005 |
Jan
(18) |
Feb
(60) |
Mar
(19) |
Apr
(26) |
May
(14) |
Jun
(27) |
Jul
(8) |
Aug
(15) |
Sep
(19) |
Oct
(53) |
Nov
(20) |
Dec
(23) |
| 2006 |
Jan
(16) |
Feb
(27) |
Mar
(33) |
Apr
(51) |
May
(36) |
Jun
(25) |
Jul
(54) |
Aug
(30) |
Sep
(25) |
Oct
(67) |
Nov
(43) |
Dec
(13) |
| 2007 |
Jan
(23) |
Feb
(27) |
Mar
(55) |
Apr
(79) |
May
(60) |
Jun
(66) |
Jul
(46) |
Aug
(30) |
Sep
(90) |
Oct
(49) |
Nov
(85) |
Dec
(74) |
| 2008 |
Jan
(68) |
Feb
(59) |
Mar
(64) |
Apr
(28) |
May
(66) |
Jun
(35) |
Jul
(73) |
Aug
(76) |
Sep
(65) |
Oct
(46) |
Nov
(41) |
Dec
(19) |
| 2009 |
Jan
(46) |
Feb
(90) |
Mar
(51) |
Apr
(104) |
May
(13) |
Jun
(24) |
Jul
(20) |
Aug
(39) |
Sep
(109) |
Oct
(101) |
Nov
(117) |
Dec
(57) |
| 2010 |
Jan
(55) |
Feb
(42) |
Mar
(39) |
Apr
(22) |
May
(33) |
Jun
(41) |
Jul
(25) |
Aug
(52) |
Sep
(75) |
Oct
(60) |
Nov
(62) |
Dec
(52) |
| 2011 |
Jan
(70) |
Feb
(31) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(38) |
Jul
(51) |
Aug
(35) |
Sep
(27) |
Oct
(35) |
Nov
(10) |
Dec
(20) |
| 2012 |
Jan
(21) |
Feb
(29) |
Mar
(13) |
Apr
(37) |
May
(33) |
Jun
(12) |
Jul
(34) |
Aug
(27) |
Sep
(29) |
Oct
(35) |
Nov
(58) |
Dec
(27) |
| 2013 |
Jan
(27) |
Feb
(16) |
Mar
(40) |
Apr
(16) |
May
(34) |
Jun
(37) |
Jul
(6) |
Aug
(3) |
Sep
(4) |
Oct
(49) |
Nov
(13) |
Dec
(12) |
| 2014 |
Jan
(15) |
Feb
(21) |
Mar
(11) |
Apr
(13) |
May
(27) |
Jun
(60) |
Jul
(19) |
Aug
(29) |
Sep
(20) |
Oct
(28) |
Nov
(41) |
Dec
(15) |
| 2015 |
Jan
(33) |
Feb
(29) |
Mar
(26) |
Apr
(17) |
May
(2) |
Jun
(13) |
Jul
(21) |
Aug
(30) |
Sep
(22) |
Oct
(15) |
Nov
(46) |
Dec
(20) |
| 2016 |
Jan
(6) |
Feb
(5) |
Mar
(9) |
Apr
(15) |
May
(9) |
Jun
(4) |
Jul
(3) |
Aug
(4) |
Sep
(39) |
Oct
(8) |
Nov
(5) |
Dec
(8) |
| 2017 |
Jan
(4) |
Feb
(14) |
Mar
(4) |
Apr
(16) |
May
(5) |
Jun
(10) |
Jul
(25) |
Aug
(2) |
Sep
(5) |
Oct
(11) |
Nov
(8) |
Dec
(11) |
| 2018 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
(1) |
May
(4) |
Jun
(21) |
Jul
(8) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(1) |
Dec
|
| 2019 |
Jan
(1) |
Feb
(5) |
Mar
(18) |
Apr
(9) |
May
(5) |
Jun
(21) |
Jul
(25) |
Aug
(25) |
Sep
(4) |
Oct
(2) |
Nov
(2) |
Dec
(5) |
| 2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(6) |
Dec
|
| 2021 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(5) |
| 2022 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
(2) |
May
(5) |
Jun
(3) |
Jul
(3) |
Aug
(3) |
Sep
(3) |
Oct
(14) |
Nov
|
Dec
(1) |
| 2023 |
Jan
(10) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
|
Dec
|
| 2024 |
Jan
(8) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(1) |
| 2025 |
Jan
(3) |
Feb
(2) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2026 |
Jan
(1) |
Feb
(12) |
Mar
|
Apr
(2) |
May
(8) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: SourceForge.net <no...@so...> - 2006-07-23 14:33:38
|
Bugs item #1527326, was opened at 2006-07-23 07:33 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1527326&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: American Exercise Date Check is incorrect Initial Comment: In the class AmericanExercise in the constructor a check is placed that earliest is smaller than latest. This should be earliest<=latest, the text is correct "earliest>=latest exercise date. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1527326&group_id=12740 |
|
From: Guowen H. <GH...@dt...> - 2006-07-19 19:11:20
|
One other thing you might want to take into consideration will be the call notice effect, this would have big impact on the simulated. Also, the call notice days may be different for different issuers1. Guowen "Toyin Akin" <toy...@ho...> 07/19/2006 02:52 PM To Guowen Han <GH...@dt...> cc qua...@li... Subject Re:Pricing Callable Capped Floaters within a HullWhite Tree Hey Guowen, Thanks for the tip. The dirty pricing bit is a big help for structures whose start date is in the past. I actually forgot about the fact that you can call on ANY date. However I assume that coupon dates are the most commonly dates that are chosen for calling any structure. Thanks again, Toy out... >From: Guowen Han <GH...@dt...> >To: "Toyin Akin" <toy...@ho...> >CC: >qua...@li...,qua...@li..., >lui...@gm...,qua...@li... >Subject: Re: [Quantlib-users] Pricing Callable Capped Floaters within >a HullWhite Tree >Date: Wed, 19 Jul 2006 09:07:08 -0400 > >Please keep in mind >1. the call schedule does not have to match the coupon schedule, >2. the quoted call price is kind of clean, and >3. the simulated prices are always dirty price and the backward induction >values on the tree are kind of dirty price (including accrued interest) > >So, the call prices are not necessary the paid off price when the calls >are exercised. > >Guowen > > > > > > >"Toyin Akin" <toy...@ho...> >Sent by: qua...@li... >07/19/2006 03:40 AM > >To >lui...@gm... >cc >qua...@li..., qua...@li... >Subject >[Quantlib-users] Pricing Callable Capped Floaters within a HullWhite >Tree > > > > > > > >Hi all, > >I am looking at the possibility of pricing callable capped floater using >QuantLib and it seems like most of the code to price such a product is >more >or less within Quantlib already (parts of the logic is present in >different >classes). > >Basically I want to price, for each period, the following > >Libor() - Caplet(Libor, X)*Notional*AccuralPeriod , callable @ $Y for each > >period. > >This has to be priced via a tree methodology and the Libor() - Cap(Libor, >X)*Notional*AccuralPeriod >part can be priced by > >1) implementing the Libor() pricing via the float leg code that is part of > >the DiscretizedSwap class >2) implementing the Caplet(Libor, X) pricing via the cap leg code that is >part of the DiscretizedCapFloor class > >Thus these two legs can be pulled out to form a class like the >DiscretizedSwaption class. > >The issue I have is how to price the callable part. > >Now I have this little description of the callable algorithm from the >FinancialCAD web site : > >########################################################### >The price of a callable capped floater is obtained by building a trinomial > >interest rate tree, constructing the yield curve on each node of the tree, > >and re-valuing the capped floater (note) on each node. On nodes that are >exercise dates, the price of the note is compared to the call and/or put >price(s). If it is possible for the issuer to call, and the call price is > >less than the note price, then the call option is exercised and the price >of >the option on that node is the difference between the call price and the >note price. If the note is not called and it is possible for the holder >to >put, and the put price is greater than the note price, then the put option > >is exercised and the price of the option on that node is the difference >between the put price and the note price. The option price is rolled back > >to earlier nodes on the tree and re-calculated as above depending on >whether >or not the option is exercised. The option price rolled back to the value > >date is added to the price of the non-callable capped floater on the value > >date to get the price of the callable capped floater. >########################################################### > >My question is regarding the statement " difference between the call price > >and the note price". > >Again the note can be computed easily via the "Libor() - Caplet(Libor, >X)*Notional*AccuralPeriod" expression. The note is priced backwards in >time >and each time you step back, an extra coupon period is added onto the note > >(at each node). > >The tree that quantlib builds for interest rate pricing (ie - capfloor via > >tree) assumes that you are standing on the start date of a coupon period >(see preAdjustValuesImpl() of the DiscretizedCapFloor() class). Thus you >cannot use the regular max(L-X,0) expression to value a cap, but a >modified >version to take into account that you are standing on the start date of a >rate fixing and not the end. > >Thus, FINALLY!!, the question I am asking : Is there an adjustment that >one >needs to perform on this "difference between the call price and the note >price" because we are standing on the start date of each coupon period. > >I am making the assumption that the $Y callable price is to be paid at the > >each of each callable period. Is this the normal convention? > >Long winded I know...!! >Toy out. > > > >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys -- and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >QuantLib-users mailing list >Qua...@li... >https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > >----------------------------------------- >________________________________________________________ >DTCC DISCLAIMER: This email and any files transmitted with it are >confidential and intended solely for the use of the individual or >entity to whom they are addressed. If you have received this email >in error, please notify us immediately and delete the email and any >attachments from your system. The recipient should check this email >and any attachments for the presence of viruses. The company >accepts no liability for any damage caused by any virus transmitted >by this email. >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys -- and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >QuantLib-users mailing list >Qua...@li... >https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Toyin A. <toy...@ho...> - 2006-07-19 18:52:37
|
Hey Guowen, Thanks for the tip. The dirty pricing bit is a big help for structures whose start date is in the past. I actually forgot about the fact that you can call on ANY date. However I assume that coupon dates are the most commonly dates that are chosen for calling any structure. Thanks again, Toy out... >From: Guowen Han <GH...@dt...> >To: "Toyin Akin" <toy...@ho...> >CC: >qua...@li...,qua...@li..., >lui...@gm...,qua...@li... >Subject: Re: [Quantlib-users] Pricing Callable Capped Floaters within >a HullWhite Tree >Date: Wed, 19 Jul 2006 09:07:08 -0400 > >Please keep in mind >1. the call schedule does not have to match the coupon schedule, >2. the quoted call price is kind of clean, and >3. the simulated prices are always dirty price and the backward induction >values on the tree are kind of dirty price (including accrued interest) > >So, the call prices are not necessary the paid off price when the calls >are exercised. > >Guowen > > > > > > >"Toyin Akin" <toy...@ho...> >Sent by: qua...@li... >07/19/2006 03:40 AM > >To >lui...@gm... >cc >qua...@li..., qua...@li... >Subject >[Quantlib-users] Pricing Callable Capped Floaters within a HullWhite >Tree > > > > > > > >Hi all, > >I am looking at the possibility of pricing callable capped floater using >QuantLib and it seems like most of the code to price such a product is >more >or less within Quantlib already (parts of the logic is present in >different >classes). > >Basically I want to price, for each period, the following > >Libor() - Caplet(Libor, X)*Notional*AccuralPeriod , callable @ $Y for each > >period. > >This has to be priced via a tree methodology and the Libor() - Cap(Libor, >X)*Notional*AccuralPeriod >part can be priced by > >1) implementing the Libor() pricing via the float leg code that is part of > >the DiscretizedSwap class >2) implementing the Caplet(Libor, X) pricing via the cap leg code that is >part of the DiscretizedCapFloor class > >Thus these two legs can be pulled out to form a class like the >DiscretizedSwaption class. > >The issue I have is how to price the callable part. > >Now I have this little description of the callable algorithm from the >FinancialCAD web site : > >########################################################### >The price of a callable capped floater is obtained by building a trinomial > >interest rate tree, constructing the yield curve on each node of the tree, > >and re-valuing the capped floater (note) on each node. On nodes that are >exercise dates, the price of the note is compared to the call and/or put >price(s). If it is possible for the issuer to call, and the call price is > >less than the note price, then the call option is exercised and the price >of >the option on that node is the difference between the call price and the >note price. If the note is not called and it is possible for the holder >to >put, and the put price is greater than the note price, then the put option > >is exercised and the price of the option on that node is the difference >between the put price and the note price. The option price is rolled back > >to earlier nodes on the tree and re-calculated as above depending on >whether >or not the option is exercised. The option price rolled back to the value > >date is added to the price of the non-callable capped floater on the value > >date to get the price of the callable capped floater. >########################################################### > >My question is regarding the statement " difference between the call price > >and the note price". > >Again the note can be computed easily via the "Libor() - Caplet(Libor, >X)*Notional*AccuralPeriod" expression. The note is priced backwards in >time >and each time you step back, an extra coupon period is added onto the note > >(at each node). > >The tree that quantlib builds for interest rate pricing (ie - capfloor via > >tree) assumes that you are standing on the start date of a coupon period >(see preAdjustValuesImpl() of the DiscretizedCapFloor() class). Thus you >cannot use the regular max(L-X,0) expression to value a cap, but a >modified >version to take into account that you are standing on the start date of a >rate fixing and not the end. > >Thus, FINALLY!!, the question I am asking : Is there an adjustment that >one >needs to perform on this "difference between the call price and the note >price" because we are standing on the start date of each coupon period. > >I am making the assumption that the $Y callable price is to be paid at the > >each of each callable period. Is this the normal convention? > >Long winded I know...!! >Toy out. > > > >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys -- and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >QuantLib-users mailing list >Qua...@li... >https://lists.sourceforge.net/lists/listinfo/quantlib-users > > > > >----------------------------------------- >________________________________________________________ >DTCC DISCLAIMER: This email and any files transmitted with it are >confidential and intended solely for the use of the individual or >entity to whom they are addressed. If you have received this email >in error, please notify us immediately and delete the email and any >attachments from your system. The recipient should check this email >and any attachments for the presence of viruses. The company >accepts no liability for any damage caused by any virus transmitted >by this email. >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys -- and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >QuantLib-users mailing list >Qua...@li... >https://lists.sourceforge.net/lists/listinfo/quantlib-users |
|
From: Guowen H. <GH...@dt...> - 2006-07-19 13:15:49
|
Please keep in mind 1. the call schedule does not have to match the coupon schedule, 2. the quoted call price is kind of clean, and 3. the simulated prices are always dirty price and the backward induction values on the tree are kind of dirty price (including accrued interest) So, the call prices are not necessary the paid off price when the calls are exercised. Guowen "Toyin Akin" <toy...@ho...> Sent by: qua...@li... 07/19/2006 03:40 AM To lui...@gm... cc qua...@li..., qua...@li... Subject [Quantlib-users] Pricing Callable Capped Floaters within a HullWhite Tree Hi all, I am looking at the possibility of pricing callable capped floater using QuantLib and it seems like most of the code to price such a product is more or less within Quantlib already (parts of the logic is present in different classes). Basically I want to price, for each period, the following Libor() - Caplet(Libor, X)*Notional*AccuralPeriod , callable @ $Y for each period. This has to be priced via a tree methodology and the Libor() - Cap(Libor, X)*Notional*AccuralPeriod part can be priced by 1) implementing the Libor() pricing via the float leg code that is part of the DiscretizedSwap class 2) implementing the Caplet(Libor, X) pricing via the cap leg code that is part of the DiscretizedCapFloor class Thus these two legs can be pulled out to form a class like the DiscretizedSwaption class. The issue I have is how to price the callable part. Now I have this little description of the callable algorithm from the FinancialCAD web site : ########################################################### The price of a callable capped floater is obtained by building a trinomial interest rate tree, constructing the yield curve on each node of the tree, and re-valuing the capped floater (note) on each node. On nodes that are exercise dates, the price of the note is compared to the call and/or put price(s). If it is possible for the issuer to call, and the call price is less than the note price, then the call option is exercised and the price of the option on that node is the difference between the call price and the note price. If the note is not called and it is possible for the holder to put, and the put price is greater than the note price, then the put option is exercised and the price of the option on that node is the difference between the put price and the note price. The option price is rolled back to earlier nodes on the tree and re-calculated as above depending on whether or not the option is exercised. The option price rolled back to the value date is added to the price of the non-callable capped floater on the value date to get the price of the callable capped floater. ########################################################### My question is regarding the statement " difference between the call price and the note price". Again the note can be computed easily via the "Libor() - Caplet(Libor, X)*Notional*AccuralPeriod" expression. The note is priced backwards in time and each time you step back, an extra coupon period is added onto the note (at each node). The tree that quantlib builds for interest rate pricing (ie - capfloor via tree) assumes that you are standing on the start date of a coupon period (see preAdjustValuesImpl() of the DiscretizedCapFloor() class). Thus you cannot use the regular max(L-X,0) expression to value a cap, but a modified version to take into account that you are standing on the start date of a rate fixing and not the end. Thus, FINALLY!!, the question I am asking : Is there an adjustment that one needs to perform on this "difference between the call price and the note price" because we are standing on the start date of each coupon period. I am making the assumption that the $Y callable price is to be paid at the each of each callable period. Is this the normal convention? Long winded I know...!! Toy out. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ QuantLib-users mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-users ----------------------------------------- ________________________________________________________ DTCC DISCLAIMER: This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please notify us immediately and delete the email and any attachments from your system. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. |
|
From: Toyin A. <toy...@ho...> - 2006-07-19 09:03:18
|
Hi, Sorry about the cross-posting. I will address all unreleased code queries to the dev list only. Toy out. >From: "Ferdinando Ametrano" <na...@am...> >To: "Toyin Akin" <toy...@ho...> >CC: lui...@gm..., qua...@li..., >qua...@li... >Subject: Re: [Quantlib-users] CMS Options >Date: Wed, 19 Jul 2006 10:48:33 +0200 > >Hi Toyin > >>Is there an implementation (and possibly an example of usage) of the >>VanillaOptionPricer interface class that is present within the >>/ql/cashflows/conundrumpricer.hpp file? >not yet, the author is working on it. >This mail should have been sent to quantlib-dev only, since the code >it's on the trunk, not released yet. Besides please do not cross post >to quantlib-users and quantlib-dev > >ciao -- Nando |
|
From: Ferdinando A. <na...@am...> - 2006-07-19 08:48:38
|
Hi Toyin > Is there an implementation (and possibly an example of usage) of the > VanillaOptionPricer interface class that is present within the > /ql/cashflows/conundrumpricer.hpp file? not yet, the author is working on it. This mail should have been sent to quantlib-dev only, since the code it's on the trunk, not released yet. Besides please do not cross post to quantlib-users and quantlib-dev ciao -- Nando |
|
From: Toyin A. <toy...@ho...> - 2006-07-19 08:21:14
|
Hi, Is there an implementation (and possibly an example of usage) of the VanillaOptionPricer interface class that is present within the /ql/cashflows/conundrumpricer.hpp file? Toy out. |
|
From: Toyin A. <toy...@ho...> - 2006-07-19 07:40:55
|
Hi all, I am looking at the possibility of pricing callable capped floater using QuantLib and it seems like most of the code to price such a product is more or less within Quantlib already (parts of the logic is present in different classes). Basically I want to price, for each period, the following Libor() - Caplet(Libor, X)*Notional*AccuralPeriod , callable @ $Y for each period. This has to be priced via a tree methodology and the Libor() - Cap(Libor, X)*Notional*AccuralPeriod part can be priced by 1) implementing the Libor() pricing via the float leg code that is part of the DiscretizedSwap class 2) implementing the Caplet(Libor, X) pricing via the cap leg code that is part of the DiscretizedCapFloor class Thus these two legs can be pulled out to form a class like the DiscretizedSwaption class. The issue I have is how to price the callable part. Now I have this little description of the callable algorithm from the FinancialCAD web site : ########################################################### The price of a callable capped floater is obtained by building a trinomial interest rate tree, constructing the yield curve on each node of the tree, and re-valuing the capped floater (note) on each node. On nodes that are exercise dates, the price of the note is compared to the call and/or put price(s). If it is possible for the issuer to call, and the call price is less than the note price, then the call option is exercised and the price of the option on that node is the difference between the call price and the note price. If the note is not called and it is possible for the holder to put, and the put price is greater than the note price, then the put option is exercised and the price of the option on that node is the difference between the put price and the note price. The option price is rolled back to earlier nodes on the tree and re-calculated as above depending on whether or not the option is exercised. The option price rolled back to the value date is added to the price of the non-callable capped floater on the value date to get the price of the callable capped floater. ########################################################### My question is regarding the statement " difference between the call price and the note price". Again the note can be computed easily via the "Libor() - Caplet(Libor, X)*Notional*AccuralPeriod" expression. The note is priced backwards in time and each time you step back, an extra coupon period is added onto the note (at each node). The tree that quantlib builds for interest rate pricing (ie - capfloor via tree) assumes that you are standing on the start date of a coupon period (see preAdjustValuesImpl() of the DiscretizedCapFloor() class). Thus you cannot use the regular max(L-X,0) expression to value a cap, but a modified version to take into account that you are standing on the start date of a rate fixing and not the end. Thus, FINALLY!!, the question I am asking : Is there an adjustment that one needs to perform on this "difference between the call price and the note price" because we are standing on the start date of each coupon period. I am making the assumption that the $Y callable price is to be paid at the each of each callable period. Is this the normal convention? Long winded I know...!! Toy out. |
|
From: Joseph W. <jo...@gn...> - 2006-07-19 03:12:08
|
The idea was that you'd put in a time series into calibrate which would set= =20 the parameters for the GARCH model. You could then use the object for a=20 different set of date. =D4=DA Tuesday 18 July 2006 20:55=A3=AC=C4=FA=D0=B4=B5=C0=A3=BA > Hi Joseph, > > One question: > What does the function - calibrate() work for? > Is it for the "maximum likelihood estimation" of parameters? > thanks a lot. > > > Regards, > > Charles > > On 7/18/06, Joseph Wang <jo...@gn...> wrote: > > Charles Wings was in the process of implementing GARCH(1,1) in C++ using > > code that is half written there. You might want to get in touch with > > him to see if you two can cooperate. > > > > =D4=DA 2006-07-17=D2=BB=B5=C4 14:45 +0100=A3=ACPatrick X. Zhang=D0=B4= =B5=C0=A3=BA > > > > > Hello Joe: > > > > > > Read your thread on Wilmott about "Weirdness in Shanghai warrants": > > > > > > > > > Fri Apr 21, 06 > > > 04:05 PM > > > User is offline > > > View users > > > profile > > > > > > I'm starting to > > > finally get some > > > results in > > > looking at > > > Shanghai > > > warrants, and > > > they are very > > > odd. > > > > > > I've calculated > > > the implied vols > > > of a put warrant, > > > a call warrant, > > > and the > > > underlying using > > > constant weight > > > (I'll try to do a > > > GARCH calculation > > > next week once I > > > code up a GARCH > > > class in > > > QuantLib). > > > > > > ...... > > > > > > > > > Another question. > > > > > > Has anyone > > > written and > > > freeware plot > > > templates in R > > > that plot > > > candlestick > > > diagrams and/or > > > variograms/coorelationgrams? If not, I'll delve into the guts of R and > > > write some. > > > > > > > > > > > > > > > > > > Just wanted to know whether you have done the GARCH part in C++ or R - > > > I'm trying to implement GARCH(1,1) in VB.NET and obviously the problem > > > is the maximization/minimization routine (if we don't use Excel > > > Solver). Any thoughts? Someone else said R could do it but I have no > > > idea how ;-( Thanks a lot. > > > > > > Best, > > > Pat |
|
From: Roland L. <Rol...@we...> - 2006-07-18 11:55:56
|
Hello all, the QuantLib test-suite (capfloor.cpp) checks that the put/call parity (capNPV - floorNPV = swapNPV) holds. It seems to me that this test is passed successfully only as long as one chooses term structure daycount Actual360(), see function setup() in capfloor.cpp. After setting this to e.g. ActualActual(ActualActual::ISDA) and keeping anything else unchanged, the test suite fails with the following messages .. Running 236 test cases... capfloor.cpp(283): fatal error in "CapFloorTest::testParity": put/call parity violated: length: 1 years volatility: 1.000000 % strike: 3.000000 % cap value: 2.01507 floor value: 0 swap value: 1.94683 .. because the cap price is overstated. I assume that the term structure daycounter should not have this effect on pricing results. Shouldn't it be arbitrary? Would you please have a quick look and correct me if I am wrong. I noticed this while building a small caplet volatility bootstrap tool that I'd like to contribute (eventually) if there is any interest. Many thanks for your efforts, Roland Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! *http://smartsurfer.web.de/?mc=100071&distributionid=000000000071* [http://smartsurfer.web.de/?mc=100071&distributionid=000000000071] |
|
From: Krishna K. <kri...@ea...> - 2006-07-17 01:13:57
|
Here is an R implementation of the Pelseer/Vorst method for computing
greeks on the tree as in the paper
"The Binomial Model and the Greeks." /Journal of Derivatives/, Spring
1994, 45-49
Best,
Kris
greek.binomial<- function(imod=1, TypeFlag="ce", S=100, X=110, r=0.05, q=0, tyr=1, sigma=0.3, nstep=100)
{
# greek.binomial(imod=1,TypeFlag= "pa", S = 50, X = 50, tyr=5/12, r = 0.1, q = 0, sigma = 0.4, nstep = 50)
# the extended CRR tree with node extensions!.
if (imod == 2) nstep <- nstep + nstep%%2
mstep<-nstep+2
TypeFlag = TypeFlag[1]
z = NA
if (TypeFlag == "ce" || TypeFlag == "ca")
z <- +1
if (TypeFlag == "pe" || TypeFlag == "pa")
z <- -1
if (is.na(z)) stop("TypeFlag misspecified: ce|ca|pe|pa")
dtval = tyr/nstep
udpvec <- BinTreeParams(imod, S, X, r, q, tyr, sigma, nstep)
u <- udpvec[1]
d <- udpvec[2]
p <- udpvec[3]
Df = exp(-r * dtval)
OptionValue = z * (S * u^(0:mstep) * d^(mstep:0) - X)
OptionValue = (abs(OptionValue) + OptionValue)/2
if (TypeFlag == "ce" || TypeFlag == "pe") {
for (j in seq(from = mstep - 1, to = 2, by = -1))
for (i in 0:j)
{
{ OptionValue[i + 1] = (p * OptionValue[i + 2] + (1 - p) * OptionValue[i +
1]) * Df }
}
}
if (TypeFlag == "ca" || TypeFlag == "pa") {
for (j in seq(from = mstep - 1, to = 2, by = -1)) for (i in 0:j) OptionValue[i +
1] = max((z * (S * u^i * d^(abs(i - j)) - X)), (p *
OptionValue[i + 2] + (1 - p) * OptionValue[i + 1]) *
Df)
}
#cat(OptionValue[1]," ", OptionValue[3]," ",OptionValue[2],"\n")
greek.binomial<-(OptionValue[1]-OptionValue[3])/(S*u^2-S*d^2)
}
|
|
From: Joe B. <jw...@ya...> - 2006-07-16 15:53:07
|
Luigi, Several of the greeks from a tree can be calculated from the current tree in memory. The Delta and Gamma are calculated using numerical differencing of the next two time steps. Theta requires the suggetion you provided below. If you also calculated the delta and gamma off your time shifted tree, you are calculating the d theta-ddelta and d theta-dgamma or second order derivatives. Vega and rho require also require a new tree calculation and a numerical differenceing using sigma+h or rate+h where h is a small increment but all other parameters are constant. Good Luck Joe 1. Re: Binomial Engines - Greeks (Luigi Ballabio) 2. Re: Path dependent interest rate instruments? (Luigi Ballabio) From: Luigi Ballabio <lui...@gm...> CC: qua...@li..., qua...@li... To: "Toyin Akin" <toy...@ho...> Date: Sat, 15 Jul 2006 11:51:41 +0200 Subject: Re: [Quantlib-users] Binomial Engines - Greeks On Jun 21, 2006, at 4:22 PM, Toyin Akin wrote: > Normally pricing American options is done accurately via a tree and > it's hard to believe that Quantlib (well I think this is the case) > does not provide greeks for this common option type. > > Any ideas or suggestions on the best way of enabling the > BinomialEngine class to ouput the greek results? Toyin, apologies for the delay. Usually we tend not to provide numerical greeks, as the user can bump parameters himself---and moreover, he could bump them of the quantity he likes instead of the one we though sensible. Instead, I think an often used trick for calculating Greeks on trees is to move the tree origin a bit back in time so that the tree has three nodes at today's date, the central one corresponding to the spot value. Delta and Gamma can then be calculated by a difference formula. This is an approach I'd like to have in the library if someone contributed it (hint, hint...) Later, Luigi From: Luigi Ballabio <lui...@gm...> CC: qua...@li... To: "Giorgio Pazmandi" <G.P...@th...> Date: Sat, 15 Jul 2006 11:59:47 +0200 Subject: Re: [Quantlib-users] Path dependent interest rate instruments? On Jul 12, 2006, at 10:47 AM, Giorgio Pazmandi wrote: > I'm going to deal with IR Path Dependent instruments (like TARN, > Snowball > ecc). > > Has anybody developed or tested some of this instruments? Not the instruments themselves. However, an implementation of the Libor market model is available and another one is underway. You might try starting from this. Later, Luigi ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ QuantLib-users mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-users A man is not the center of his universe, rather those he loves are. So his focus should always be on them for they will provide him with love and happiness all of his life - Anonymous --------------------------------- Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls. Great rates starting at 1¢/min. |
|
From: Luigi B. <lui...@gm...> - 2006-07-15 09:51:49
|
On Jun 21, 2006, at 4:22 PM, Toyin Akin wrote: > Normally pricing American options is done accurately via a tree and > it's hard to believe that Quantlib (well I think this is the case) > does not provide greeks for this common option type. > > Any ideas or suggestions on the best way of enabling the > BinomialEngine class to ouput the greek results? Toyin, apologies for the delay. Usually we tend not to provide numerical greeks, as the user can bump parameters himself---and moreover, he could bump them of the quantity he likes instead of the one we though sensible. Instead, I think an often used trick for calculating Greeks on trees is to move the tree origin a bit back in time so that the tree has three nodes at today's date, the central one corresponding to the spot value. Delta and Gamma can then be calculated by a difference formula. This is an approach I'd like to have in the library if someone contributed it (hint, hint...) Later, Luigi |
|
From: SourceForge.net <no...@so...> - 2006-07-12 15:07:54
|
Bugs item #1508489, was opened at 2006-06-19 11:29 Message generated for change (Comment added) made by lballabio You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1508489&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Nobody/Anonymous (nobody) >Assigned to: Luigi Ballabio (lballabio) Summary: Indexes: ModifiedFollowing vs. MonthEndReference Initial Comment: " Where a deposit is made on the final business day of a particular calendar month, the maturity of the deposit shall be on the final business day of the month in which it matures (not the corresponding date in the month of maturity). Or in other words, in line with market convention, BBA LIBOR rates are dealt on an end-end basis. For instance a one month deposit for value 28th February would mature on 31st March, not the 28th of March. " In all the Index subclasses the BusinessDayConvention is set to ModifiedFollowing when, I believe, the right setting would have to be MonthEndReference. Ciao, Nicola Chiarini ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2006-07-12 17:07 Message: Logged In: YES user_id=75450 The bug is now fixed in CVS. Thank you for the report. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=1508489&group_id=12740 |
|
From: Ferdinando A. <na...@am...> - 2006-07-11 17:29:29
|
Hi all > What is the purpose of the displacements array within the new LMM framework? simulating displaced lognormal forward gets you a "natural" skew, so displacement are used to fit an observed volatility skew. Suggestion: if you really want to follow this development you should get a copy of Rebonato's "Modern Pricing Of Interest Rate Derivatives" ciao -- Nando |
|
From: Ferdinando A. <na...@am...> - 2006-07-11 17:26:28
|
Hi all On 7/7/06, Klaus Spanderen <kla...@fr...> wrote: > What I personally find even more interestingly is that the new framework does > currently not use more important design issues of QL like stochastic > processes, the existing MonteCarlo & Pricing Engine approach or the given > instrument definitions. Nando, is it planed to "see" more fundamental changes > in the quantlib soon? (or will the MarketModels stuff be integrated in the > existing MonteCarlo framework, which is very much equity driven). The new approach is actually separated from the current QuantLib framework, in order to allow for maximum efficiency and design flexibilty. Later it will be "merged" into the higher-level QuantLib framework: this merge might or might not lead to QuantLib refactoring. ciao -- Nando |
|
From: Toyin A. <toy...@ho...> - 2006-07-11 10:17:22
|
Hi Luigi, Everyone, Another LMM question for you all... Within the new marketmodels test examples, there is a construction of a volatility array which is passed to the exponentialcorrelation class constructor. Is this array the forward rate (caplet) volatilities observed (calibrated) from the market? Or is this array the outcome of some function applied to the observed (calibrated) forward rate volatilities? I noticed within Klaus's implementation (test cases), there is a class, LfmHullWhiteParameterization, which takes the forward rate vols and processes the volatilities before passing them into his lmm fixedvol model. I was wondering if the same processing needs to be done under the new framework. Toy out... >From: Luigi Ballabio <lui...@gm...> >To: Toyin Akin <toy...@ho...> >CC: kla...@fr..., >na...@am...,qua...@li..., >qua...@li... >Subject: Re: [Quantlib-users] [Quantlib-dev] What is >QuantLib/ql/MarketModels - LMM? >Date: Mon, 10 Jul 2006 09:33:44 +0200 > > >On 07/08/2006 06:02:03 PM, Toyin Akin wrote: >>What is the purpose of the displacements array within the new LMM >>framework? > >One might want to model lognormal displaced rates instead of lognormal >rates. It is not an observable. > >Luigi > > >---------------------------------------- > >It is better to know some of the questions than all of the answers. >-- James Thurber |
|
From: Toyin A. <toy...@ho...> - 2006-07-11 10:11:56
|
Hi Luigi, Everyone, Another LMM question for you all... Within the new marketmodels test examples, there is a construction of a volatility array which is passed to the exponentialcorrelation class constructor. Is this array the forward rate (caplet) volatilities observed (calibrated) from the market? Or is this array the outcome of some function applied to the observed (calibrated) forward rate volatilities? I noticed within Klaus's implementation (test cases), there is a class, LfmHullWhiteParameterization, which takes the forward rate vols and processes the volatilities before passing them into his lmm fixedvol model. I was wondering if the same processing needs to be done under the new framework. Toy out... >From: Luigi Ballabio <lui...@gm...> >To: Toyin Akin <toy...@ho...> >CC: kla...@fr..., >na...@am...,qua...@li..., >qua...@li... >Subject: Re: [Quantlib-users] [Quantlib-dev] What is >QuantLib/ql/MarketModels - LMM? >Date: Mon, 10 Jul 2006 09:33:44 +0200 > > >On 07/08/2006 06:02:03 PM, Toyin Akin wrote: >>What is the purpose of the displacements array within the new LMM >>framework? > >One might want to model lognormal displaced rates instead of lognormal >rates. It is not an observable. > >Luigi > > >---------------------------------------- > >It is better to know some of the questions than all of the answers. >-- James Thurber |
|
From: Luigi B. <lui...@gm...> - 2006-07-10 10:35:32
|
On 07/06/2006 04:43:06 AM, George wrote: > I'm pretty interested in becoming a developer. George, I'd refer you to the answer I gave a short while ago to other =20 volunteers; it is archived at <https://sourceforge.net/mailarchive/forum.php?thread_id=3D15046010&forum_i= d=3D4300>. Drop me a line if you have further questions. Later, Luigi ---------------------------------------- Blessed is the man who, having nothing to say, abstains from giving wordy evidence of the fact. -- George Eliot |
|
From: Luigi B. <lui...@gm...> - 2006-07-10 07:38:11
|
On 07/08/2006 05:08:35 PM, Toyin Akin wrote: > I was just scanning some of the code within the new =20 > abcdvolatility.cpp class (marketmodel framework) and I noticed that =20 > at one point the order that the a,b,c,d parameters are passed in are =20 > different than that of Klaus's abcd class code Klaus used a Brigo-Mercurio paper, while we started coding based on =20 Rebonato's book. The two references use the same formula but with the =20 a,b,c,d parameters in different places---hence the permutation. At some =20 point we'll uniform the notation. Luigi ---------------------------------------- Ninety percent of everything is crap. --- Theodore Sturgeon |
|
From: Luigi B. <lui...@gm...> - 2006-07-10 07:35:28
|
On 07/08/2006 06:02:03 PM, Toyin Akin wrote: > What is the purpose of the displacements array within the new LMM > framework? One might want to model lognormal displaced rates instead of lognormal =20 rates. It is not an observable. Luigi ---------------------------------------- It is better to know some of the questions than all of the answers. -- James Thurber |
|
From: Joseph W. <jo...@gn...> - 2006-07-09 06:03:15
|
Doing some more googling, it turns out that this really does require a=20 language lawyer, since it involves an issue in the C++ standard, that the=20 standards committee not resolved yet. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D57 for the gory details. The g++ have a patch that will parse the code, but t= hey=20 haven't applied it yet pending a decision of the C++ standards committee. =E5=9C=A8 Saturday 08 July 2006 23:45=EF=BC=8CJoseph Wang =E5=86=99=E9=81= =93=EF=BC=9A > Need a language lawyer :-) :-) :-) > > g++ 4.0 on Linux is choking on > > EvolutionDescription( > const Array& rateTimes, > const Array& evolutionTimes, > const std::vector<Size>& numeraires =3D std::vector<Size>(), > const std::vector<std::pair<Size,Size> > &relevanceRates =3D > std::vector<std::pair<Size,Size> >=20 > ()); > > with > > ../../ql/MarketModels/evolutiondescription.hpp:62: error: expected =E2=80= =98,=E2=80=99 > or =E2=80=98...=E2=80=99 before =E2=80=98>=E2=80=99 token > ../../ql/MarketModels/evolutiondescription.hpp:62: error: wrong number of > template arguments (1, should be 2) > /usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1/../../../../include/c++/4.1.1/= bi >ts/stl_pair.h:68: error: provided for =E2=80=98template<class _T1, class _= T2> struct > std::pair=E2=80=99 ../../ql/MarketModels/evolutiondescription.hpp:62: err= or: > template argument 1 is invalid > ../../ql/MarketModels/evolutiondescription.hpp:62: error: template argume= nt > 2 is invalid > ../../ql/MarketModels/evolutiondescription.hpp:62: error: default argument > missing for parameter 5 > of =E2=80=98QuantLib::EvolutionDescription::EvolutionDescription(const > QuantLib::Array&, const QuantLib::Array&, const std::vector<unsigned int, > std::allocator<unsigned int> >&, const std::vector<std::pair<unsigned int, > unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, > QuantLib::Size)=E2=80=99 > > But it works if I typedef the template > > typedef std::vector<std::pair<Size,Size> > RelevanceRatesType; > EvolutionDescription( > const Array& rateTimes, > const Array& evolutionTimes, > const std::vector<Size>& numeraires =3D std::vector<Size>(), > const std::vector<std::pair<Size,Size> > &relevanceRates =3D > RelevanceRatesType ()); > > is G++ broken? |
|
From: Joseph W. <jo...@gn...> - 2006-07-09 04:46:30
|
Need a language lawyer :-) :-) :-)
g++ 4.0 on Linux is choking on
EvolutionDescription(
const Array& rateTimes,
const Array& evolutionTimes,
const std::vector<Size>& numeraires =3D std::vector<Size>(),
const std::vector<std::pair<Size,Size> > &relevanceRates =3D
std::vector<std::pair<Size,Size> > ());
with
=2E./../ql/MarketModels/evolutiondescription.hpp:62: error: expected =E2=80=
=98,=E2=80=99=20
or =E2=80=98...=E2=80=99 before =E2=80=98>=E2=80=99 token
=2E./../ql/MarketModels/evolutiondescription.hpp:62: error: wrong number of=
=20
template arguments (1, should be 2)
/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1/../../../../include/c++/4.1.1/bi=
ts/stl_pair.h:68:=20
error: provided for =E2=80=98template<class _T1, class _T2> struct std::pai=
r=E2=80=99
=2E./../ql/MarketModels/evolutiondescription.hpp:62: error: template argume=
nt 1=20
is invalid
=2E./../ql/MarketModels/evolutiondescription.hpp:62: error: template argume=
nt 2=20
is invalid
=2E./../ql/MarketModels/evolutiondescription.hpp:62: error: default argumen=
t=20
missing for parameter 5=20
of =E2=80=98QuantLib::EvolutionDescription::EvolutionDescription(const=20
QuantLib::Array&, const QuantLib::Array&, const std::vector<unsigned int,=20
std::allocator<unsigned int> >&, const std::vector<std::pair<unsigned int,=
=20
unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&,=20
QuantLib::Size)=E2=80=99
But it works if I typedef the template
typedef std::vector<std::pair<Size,Size> > RelevanceRatesType;
EvolutionDescription(
const Array& rateTimes,
const Array& evolutionTimes,
const std::vector<Size>& numeraires =3D std::vector<Size>(),
const std::vector<std::pair<Size,Size> > &relevanceRates =3D
RelevanceRatesType ());
is G++ broken?
|
|
From: Toyin A. <toy...@ho...> - 2006-07-08 16:02:59
|
Hi all, What is the purpose of the displacements array within the new LMM framework? This array is passed to the ExponentialCorrelation class. Is this an observable market quantity (like the initial rates) or does it need to be calibrated? Best Regards, Toyin Akin. >From: "Toyin Akin" <toy...@ho...> >To: kla...@fr..., na...@am... >CC: qua...@li...,qua...@li... >Subject: Re: [Quantlib-dev] What is QuantLib/ql/MarketModels - LMM? >Date: Sat, 08 Jul 2006 16:08:35 +0100 > > >Hi guys, > >I was just scanning some of the code within the new abcdvolatility.cpp >class >(marketmodel framework) and I noticed that at one point the order that the >a,b,c,d parameters are passed in are different than that of Klaus's abcd >class code dispite the fact that the formula that is finally called is the >same for both frameworks. > >Basically > >line #88 within the abcdvolatility.cpp file and... >line #69 within the lmlinexpvolmodel.cpp file. > >The former file passes the parameters in the order of b,c,d,a and the >latter >file - a,b,c,d. The same function is executed for both (code copied from >Klaus's class to the new framework). > >Are we suggesting that the interpretation of the parameters are actually >different for both frameworks? > >It doesn't help that the resulting function that is finally called within >the abcdvolatility.cpp file, primitive(), actually has the parameters >labeled as a,b,c,d, but what is actually passed in is b,c,d,a!! > >I'm trying to determine whether I can generate similar outputs from both >models... > >Either the interpretation of the parameters are different for each model, >or >one is passing in the parameters in an incorrect order... > >Also I do realise that the new framework is a work in progress... >Looks good though and it's pretty quick. > >Toy out... > > > > > >From: Klaus Spanderen <kla...@fr...> > >Reply-To: kla...@fr... > >To: toy...@ho..., "Ferdinando Ametrano" <na...@am...> > >CC: qua...@li..., > >qua...@li... > >Subject: Re: [Quantlib-dev] What is QuantLib/ql/MarketModels - LMM? > >Date: Fri, 7 Jul 2006 23:14:23 +0200 > > > >Hi > > > >from what I heard and what is in the CVS the scope of the MarketModels > >project > >is much wider than the scope of the LMM code, which has some >inefficiencies > >and inherits some due to the "old quantlib style". Especially the >separate > >numeriare modelling is something I do appeiciate very much (was also on >my > >personal wish list for a long time). > > > >Therefore I think the right way forward is to reuse the existing LMM code > >when > >it makes sens (like parts of AbcdVolatility) but to remove the rest as >soon > >as the old code gets superseded by the new framework. Looking onto the > >current momentum and the coding power of the MarketModels project this >will > >likely be in release 0.3.14;-) > > > >What I personally find even more interestingly is that the new framework > >does > >currently not use more important design issues of QL like stochastic > >processes, the existing MonteCarlo & Pricing Engine approach or the given > >instrument definitions. Nando, is it planed to "see" more fundamental > >changes > >in the quantlib soon? (or will the MarketModels stuff be integrated in >the > >existing MonteCarlo framework, which is very much equity driven). > > > >cheers > > Klaus > > > >On Friday 07 July 2006 9:33 am, Ferdinando Ametrano wrote: > > > Hi all > > > > > > > It looks like some test cases have been coded up for the new > > > > QuantLib/ql/MarketModels framework and this looks like another > > > > implementation of the Libor Market Model > > > > > > yes it is. The coding project is led by Mark Joshi. Luigi, I and > > > others are involved. > > > > > > > equivalent to Klaus's [...] Does anyone know whether the two models > >are > > > > consistent with each other? > > > > > > They probably are. The new implementation follows Joshi and Rebonato's > > > approch (see The Concepts and Practice of Mathematical Finance, by > > > Mark S. Joshi, and Modern Pricing of Interest Rate Derivatives, by > > > Riccardo Rebonato) > > > > > > This implementation strive for optimal efficiency, and it is not > > > really merged into QuantLib current design (yet). Klaus implementation > > > is much more QuantLib style, but suffer few efficiency problems. > > > > > > Klaus knows about the project and we hope he will join us. For sure > > > we'll try to reuse much of his work where possible. > > > > > > ciao -- Nando > > > > > > Using Tomcat but need to do more? Need to support web services, > >security? > > > Get stuff done quickly with pre-integrated technology to make your job > > > easier Download IBM WebSphere Application Server v.1.0.1 based on >Apache > > > Geronimo > > > >http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > _______________________________________________ > > > QuantLib-dev mailing list > > > Qua...@li... > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > > >Using Tomcat but need to do more? Need to support web services, security? >Get stuff done quickly with pre-integrated technology to make your job >easier >Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >_______________________________________________ >QuantLib-dev mailing list >Qua...@li... >https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: Toyin A. <toy...@ho...> - 2006-07-08 15:09:24
|
Hi guys, I was just scanning some of the code within the new abcdvolatility.cpp class (marketmodel framework) and I noticed that at one point the order that the a,b,c,d parameters are passed in are different than that of Klaus's abcd class code dispite the fact that the formula that is finally called is the same for both frameworks. Basically line #88 within the abcdvolatility.cpp file and... line #69 within the lmlinexpvolmodel.cpp file. The former file passes the parameters in the order of b,c,d,a and the latter file - a,b,c,d. The same function is executed for both (code copied from Klaus's class to the new framework). Are we suggesting that the interpretation of the parameters are actually different for both frameworks? It doesn't help that the resulting function that is finally called within the abcdvolatility.cpp file, primitive(), actually has the parameters labeled as a,b,c,d, but what is actually passed in is b,c,d,a!! I'm trying to determine whether I can generate similar outputs from both models... Either the interpretation of the parameters are different for each model, or one is passing in the parameters in an incorrect order... Also I do realise that the new framework is a work in progress... Looks good though and it's pretty quick. Toy out... >From: Klaus Spanderen <kla...@fr...> >Reply-To: kla...@fr... >To: toy...@ho..., "Ferdinando Ametrano" <na...@am...> >CC: qua...@li..., >qua...@li... >Subject: Re: [Quantlib-dev] What is QuantLib/ql/MarketModels - LMM? >Date: Fri, 7 Jul 2006 23:14:23 +0200 > >Hi > >from what I heard and what is in the CVS the scope of the MarketModels >project >is much wider than the scope of the LMM code, which has some inefficiencies >and inherits some due to the "old quantlib style". Especially the separate >numeriare modelling is something I do appeiciate very much (was also on my >personal wish list for a long time). > >Therefore I think the right way forward is to reuse the existing LMM code >when >it makes sens (like parts of AbcdVolatility) but to remove the rest as soon >as the old code gets superseded by the new framework. Looking onto the >current momentum and the coding power of the MarketModels project this will >likely be in release 0.3.14;-) > >What I personally find even more interestingly is that the new framework >does >currently not use more important design issues of QL like stochastic >processes, the existing MonteCarlo & Pricing Engine approach or the given >instrument definitions. Nando, is it planed to "see" more fundamental >changes >in the quantlib soon? (or will the MarketModels stuff be integrated in the >existing MonteCarlo framework, which is very much equity driven). > >cheers > Klaus > >On Friday 07 July 2006 9:33 am, Ferdinando Ametrano wrote: > > Hi all > > > > > It looks like some test cases have been coded up for the new > > > QuantLib/ql/MarketModels framework and this looks like another > > > implementation of the Libor Market Model > > > > yes it is. The coding project is led by Mark Joshi. Luigi, I and > > others are involved. > > > > > equivalent to Klaus's [...] Does anyone know whether the two models >are > > > consistent with each other? > > > > They probably are. The new implementation follows Joshi and Rebonato's > > approch (see The Concepts and Practice of Mathematical Finance, by > > Mark S. Joshi, and Modern Pricing of Interest Rate Derivatives, by > > Riccardo Rebonato) > > > > This implementation strive for optimal efficiency, and it is not > > really merged into QuantLib current design (yet). Klaus implementation > > is much more QuantLib style, but suffer few efficiency problems. > > > > Klaus knows about the project and we hope he will join us. For sure > > we'll try to reuse much of his work where possible. > > > > ciao -- Nando > > > > Using Tomcat but need to do more? Need to support web services, >security? > > Get stuff done quickly with pre-integrated technology to make your job > > easier Download IBM WebSphere Application Server v.1.0.1 based on Apache > > Geronimo > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |