exception "Could not bootstrap curve"

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

exception "Could not bootstrap curve"

Xavier.Abulker

Dear QuantLib,

I generate zero rates and discount factors from piecewiseflatforward for JPY curve where interest rates are evry small as you know.

I sometimes receive the QuantLib exception:

Could not bootstrap curve. segment 5 of 11, last forward = 0.012 ,
last discount =  0.9942483150 , last zero-yield =  0.012 , last guess was 0.988228670896053
error generated by dummy3m act/act (ISDA)

This error is not very clear to me in piecewiseflatforward.cpp, I presume this is because there is a lower limit to the forward or zero rate I reached.
Do you know which variable I should change in QuantLib to avoid this error?
thank you

Xavier
Reply | Threaded
Open this post in threaded view
|

Re: exception "Could not bootstrap curve"

Luigi Ballabio-2
On 2004.09.22 10:35, [hidden email] wrote:
> I sometimes receive the QuantLib exception:
>
> Could not bootstrap curve. segment 5 of 11, last forward = 0.012 ,
> last discount =  0.9942483150 , last zero-yield =  0.012 , last guess
> was
> 0.988228670896053
> error generated by dummy3m act/act (ISDA)
>

Xavier,
        which version of QuantLib are you using? (It wouldn't make much  
difference, but I might be able to give you more precise directions.)

Later,
        Luigi


Reply | Threaded
Open this post in threaded view
|

Re: exception "Could not bootstrap curve"

Xavier.Abulker

0.3.4


Luigi Ballabio <[hidden email]>

24/09/2004 15:39
Please respond to luigi.ballabio

       
        To:        [hidden email]
        cc:        [hidden email]
        Subject:        Re: [Quantlib-users] exception "Could not bootstrap curve"



On 2004.09.22 10:35, [hidden email] wrote:
> I sometimes receive the QuantLib exception:
>
> Could not bootstrap curve. segment 5 of 11, last forward = 0.012 ,
> last discount =  0.9942483150 , last zero-yield =  0.012 , last guess
> was
> 0.988228670896053
> error generated by dummy3m act/act (ISDA)
>

Xavier,
                which version of QuantLib are you using? (It wouldn't make much  
difference, but I might be able to give you more precise directions.)

Later,
                Luigi

Reply | Threaded
Open this post in threaded view
|

Re: exception "Could not bootstrap curve"

Luigi Ballabio-2
On 2004.09.24 16:00, [hidden email] wrote:
> > which version of QuantLib are you using?
> 0.3.4

Hmm, oldish. Wait a minute while I fetch it from CVS...

Ok, I see. In ql/TermStructures/piecewiseflatforward.cpp, line 116,  
there's

            double min = accuracy_*10e-4, max = discounts_[i-1];
            try {
                solver.solve(FFObjFunction(this,instrument,i),
                             accuracy_,guess,min,max);

Setting min to a small number says that discounts must be positive,  
which must be enforced. Setting max to the previous value says that the  
discounts must be decreasing, which in turn means that rates must be  
positive. You can try increasing max (say, twice the previous discount)  
to allow negative rates.

Hope this helps,
        Luigi


Reply | Threaded
Open this post in threaded view
|

Re: exception "Could not bootstrap curve"

Xavier.Abulker

Yes I know that's too old but we are working to upgrade the version!
I'm going to change that in the code.
Thank you very much for help.
Xavier


Luigi Ballabio <[hidden email]>
Sent by: [hidden email]

24/09/2004 16:59
Please respond to luigi.ballabio

       
        To:        [hidden email]
        cc:        [hidden email]
        Subject:        Re: [Quantlib-users] exception "Could not bootstrap curve"



On 2004.09.24 16:00, [hidden email] wrote:
> > which version of QuantLib are you using?
> 0.3.4

Hmm, oldish. Wait a minute while I fetch it from CVS...

Ok, I see. In ql/TermStructures/piecewiseflatforward.cpp, line 116,  
there's

           double min = accuracy_*10e-4, max = discounts_[i-1];
           try {
               solver.solve(FFObjFunction(this,instrument,i),
                            accuracy_,guess,min,max);

Setting min to a small number says that discounts must be positive,  
which must be enforced. Setting max to the previous value says that the  
discounts must be decreasing, which in turn means that rates must be  
positive. You can try increasing max (say, twice the previous discount)  
to allow negative rates.

Hope this helps,
                Luigi


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
_______________________________________________
Quantlib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users