Boostrapping TS in QuantLibXL

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

Boostrapping TS in QuantLibXL

Aurelien Chanudet
Hi Eric, hi all,

What's the smartest way to do the following in QuantLibXL 0.4.0 :
- boostrap a term structure...
- based on swap instruments...
- whose floating legs rely on a shared Euribor object...
- whose associated (forecasting) term structure is the term structure
I want to bootstrap ?

It used to be fairly straightforward in 0.3.12 but it appears to be
more complicated in 0.4.0. The only and somewhat circumvented way I
was able to do that is :
1. create a dummy term structure (say TS1) ;
2. create my Euribor object based on TS1 ;
3. create swap rate helpers based on my Euribor object ;
4. create a term structure (say TS2) ;
5. call qlSetEuriborTermStructure to link my Euribor object to TS2 ;
6. we're now ready to boostrap TS2 and price some securities.

Thanks in advance.

Aurelien

-------------------------------------------------------------------------
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-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Boostrapping TS in QuantLibXL

eric ehlers
Hi Aurelien,

On 3/28/07, Aurelien Chanudet <[hidden email]> wrote:

> Hi Eric, hi all,
>
> What's the smartest way to do the following in QuantLibXL 0.4.0 :
> - boostrap a term structure...
> - based on swap instruments...
> - whose floating legs rely on a shared Euribor object...
> - whose associated (forecasting) term structure is the term structure
> I want to bootstrap ?
>
> It used to be fairly straightforward in 0.3.12 but it appears to be
> more complicated in 0.4.0. The only and somewhat circumvented way I
> was able to do that is :
> 1. create a dummy term structure (say TS1) ;
> 2. create my Euribor object based on TS1 ;
> 3. create swap rate helpers based on my Euribor object ;
> 4. create a term structure (say TS2) ;
> 5. call qlSetEuriborTermStructure to link my Euribor object to TS2 ;
> 6. we're now ready to boostrap TS2 and price some securities.

That's basically it.  Existing QuantLibXL books work as follows:

1. create a dummy term structure (say TS1) ;
2. create my Euribor object based on TS1 ;
3. create swap rate helpers based on my Euribor object ;
4. create a term structure (say TS2) ;
5. call qlExtrapolatorEnableExtrapolation() on TS2
6. bootstrap TS2 based on the rate helpers
7. call qlSetEuriborTermStructure to relink all enumerated Euribor
objects to TS2 ;
8. we're now ready to price some securities.

For an example please see Workbooks\OriginalExamples\MarketData.xls

Regards,
Eric

-------------------------------------------------------------------------
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-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Boostrapping TS in QuantLibXL

Luigi Ballabio

On Mar 28, 2007, at 9:36 PM, eric ehlers wrote:

> That's basically it.  Existing QuantLibXL books work as follows:
>
> 1. create a dummy term structure (say TS1) ;
> 2. create my Euribor object based on TS1 ;
> 3. create swap rate helpers based on my Euribor object ;
> 4. create a term structure (say TS2) ;
> 5. call qlExtrapolatorEnableExtrapolation() on TS2
> 6. bootstrap TS2 based on the rate helpers
> 7. call qlSetEuriborTermStructure to relink all enumerated Euribor
> objects to TS2 ;
> 8. we're now ready to price some securities.

Is 5 necessary? During bootstrapping, the curve is extended at each new
node so that it covers all times needed by the corresponding helper.

Luigi


-------------------------------------------------------------------------
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-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Boostrapping TS in QuantLibXL

eric ehlers
Hi Luigi,

On 3/28/07, Luigi Ballabio <[hidden email]> wrote:

>
> On Mar 28, 2007, at 9:36 PM, eric ehlers wrote:
> > That's basically it.  Existing QuantLibXL books work as follows:
> >
> > 1. create a dummy term structure (say TS1) ;
> > 2. create my Euribor object based on TS1 ;
> > 3. create swap rate helpers based on my Euribor object ;
> > 4. create a term structure (say TS2) ;
> > 5. call qlExtrapolatorEnableExtrapolation() on TS2
> > 6. bootstrap TS2 based on the rate helpers
> > 7. call qlSetEuriborTermStructure to relink all enumerated Euribor
> > objects to TS2 ;
> > 8. we're now ready to price some securities.
>
> Is 5 necessary? During bootstrapping, the curve is extended at each new
> node so that it covers all times needed by the corresponding helper.

There is one example workbook which sets up a swaption, and in that
case if you neglect to call qlExtrapolatorEnableExtrapolation() then
when you ask for the NPV of the swaption it fails with "time (xxx) is
past max curve time (yyy)".  Calling
qlExtrapolatorEnableExtrapolation() fixes the problem so one way or
another that call makes a relevant change to the state of the term
structure, though I don't understand the details.

Regards,
Eric

-------------------------------------------------------------------------
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-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Boostrapping TS in QuantLibXL

Luigi Ballabio
On Wed, 2007-03-28 at 22:34 +0200, eric ehlers wrote:

> > > That's basically it.  Existing QuantLibXL books work as follows:
> > >
> > > 1. create a dummy term structure (say TS1) ;
> > > 2. create my Euribor object based on TS1 ;
> > > 3. create swap rate helpers based on my Euribor object ;
> > > 4. create a term structure (say TS2) ;
> > > 5. call qlExtrapolatorEnableExtrapolation() on TS2
> > > 6. bootstrap TS2 based on the rate helpers
> > > 7. call qlSetEuriborTermStructure to relink all enumerated Euribor
> > > objects to TS2 ;
> > > 8. we're now ready to price some securities.
> >
> > Is 5 necessary? During bootstrapping, the curve is extended at each new
> > node so that it covers all times needed by the corresponding helper.
>
> There is one example workbook which sets up a swaption, and in that
> case if you neglect to call qlExtrapolatorEnableExtrapolation() then
> when you ask for the NPV of the swaption it fails with "time (xxx) is
> past max curve time (yyy)".

I see. You don't need it during bootstrapping then---which was rather
puzzling me---but afterwards, when you try and price a security whose
relevant dates extend past the end of the curve.
In this case 5 is necessary, but it can be done after 7.

Luigi


----------------------------------------

Barker's Proof:
Proofreading is more effective after publication.



-------------------------------------------------------------------------
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-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Compling log4cxx on cygwin

Marco Marchioro
In reply to this post by eric ehlers
Hi all,
I am trying to compile QuantLibAddin with cygwin on windows XP.
During the process I found that a standard patch (inculded) should
be applied.

Should I commit the patched file include/log4cxx/helpers/tchar.h
or should we add the patch with a name like cygwin-diffs-log4cxx.diff
to the repository?

Marco Marchioro

-------------------------------------------------------------------------
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-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev

diffs-log4cxx.diff (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Compling log4cxx on cygwin

eric ehlers
Hi Marco,

On 3/29/07, Marco Marchioro <[hidden email]> wrote:
> Hi all,
> I am trying to compile QuantLibAddin with cygwin on windows XP.
> During the process I found that a standard patch (inculded) should
> be applied.
>
> Should I commit the patched file include/log4cxx/helpers/tchar.h
> or should we add the patch with a name like cygwin-diffs-log4cxx.diff
> to the repository?

I would prefer the former - once it's in I'll confirm it works for VC
and linux.  Many thanks for picking this up.

Regards,
Eric

-------------------------------------------------------------------------
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-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev