Re: Limitations in QuantLibXL ?

Posted by eric ehlers on
URL: http://quantlib.414.s1.nabble.com/Limitations-in-QuantLibXL-tp949p950.html

Hello,

>         I installed QuantlibXL-0.4.0 and opened the worksheet
> YC_SwapDemo.xls. I noticed that the vector array argument in
> qlPiecewiseYieldCurve function (in cell K2 of the "BOOTSTRAP" sheet)
> includes only the deposit rates and future prices (G12:G23). When I tried to
> extend the range to include the swap rates (G24:G40), Excel disappeared
> right after I pressed Enter, i.e. the application crashed.

This results from a flaw in the setup of the spreadsheet.  The same
problem is found in the spreadsheet released with version 0.8.0.

The problem is a "chicken and egg" situation when bootstrapping the
yield curve: A term structure refers to a swap rate helper which
refers to an index which refers to a term structure.

The solution is to design spreadsheets in this way:
- Create an empty yield term handle (qlRelinkableHandleYieldTermStructure)
- Pass that to a dummy index (qlIborIndex)
- Instantiate the swaps rate helper objects (qlSwapRateHelper),
linking them to the dummy index
- Create the yield curve (qlPiecewiseYieldCurve)
- Create a yield term handle linked to the yield curve
(qlRelinkableHandleYieldTermStructure)
- Relink the rate helpers to the new yield term structure handle
(qlSetEuriborTermStructure)

YC_SwapDemo.xls doesn't follow that approach.  When you include the
swaps rate helpers in the yield curve, it sends QuantLib into an
infinite loop until Excel crashes.  Unfortunately there is no
validation that we could put into the code to prevent this error from
occurring.

YC_SwapDemo.xls will be fixed in the next release.  In the meantime
you can refer to MarketData.xls for an example of a yield curve which
is created correctly including swaps.

>         Also I have read in the documentation the enumerations used. The
> indices are Euribor or EuroLibor only. So are these the only indices
> allowed?

They're the only indexes for which enumerations are provided.  Other
indexes can be created with a call to qlIborIndex().  Note that
qlSetEuriborTermStructure() works only for the EUR indexes.

Regards,
Eric

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users