Re: Exception in Bond::cleanPriceFromZSpread(...)

Posted by Luca Billi on
URL: http://quantlib.414.s1.nabble.com/Exception-in-Bond-cleanPriceFromZSpread-tp12044p12046.html

On Wed, Jul 16, 2008 at 11:01 AM, Luigi Ballabio
<[hidden email]> wrote:

> On Tue, 2008-07-15 at 12:21 -0400, Luca Billi wrote:
>> the following code throws an exception when
>> bond.cleanPriceFromZSpread(...) is called.
>> The issue comes from the fact that, in this example, there's no
>> settlement adjustment, so the function
>> ZeroSpreadedTermStructure::zeroYieldImpl(Time t) needs to be evaluated
>> for t=0.
>>
>> I got around this issue by adding the seemingly harmless
>>
>> if(t==0.) return 1.;
>>
>> at line 86 of file ql/termstructures/yield/zeroyieldstructure.hpp
>>
>> Anyone has a better idea?
>
> I'd rather fix ZeroSpreadedTermStructure::zeroYieldImpl so that it works
> at t=0. Did you happen to investigate what goes wrong inside there?
>
> Later,
>        Luigi
>
>

The exception is thrown by InterestRate::equivalentRate(), which, I
think, is called to convert the yield+spread to continuous
compounding.

I think the exception is legitimate: interest rates on zero intervals
are meaningless, whereas discount factors are not:

exp(-r*t) = 1 for t=0, regardless of r.

That's why I think that, when t=0, it's ok to avoid calling
ZeroSpreadedTermStructure::zeroYieldImpl(), which operates in the
yield space and is not required when t=0, and return immediatly 1.

Luca

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev