|
From: Simone C. <Sim...@ri...> - 2021-10-20 07:21:07
|
Hi Luigi,
Thanks for your explanations – it all makes sense and indeed I was expecting an iterative loop for splines.
I’ll try to see if it is possible to keep the deposit in the calibration and then make some manual adjustments to the DF to “mimic” its exclusion.
Thanks again!
Best regards,
Simone
From: Luigi Ballabio <lui...@gm...>
Sent: 18 October 2021 12:22
To: Simone Caenazzo <Sim...@ri...>
Cc: qua...@li...; PONRAM GOPALAKRISHNAN <po...@gm...>; Giuseppe Trapani <tr...@gm...>
Subject: Re: [Quantlib-users] Help with "root not bracketed" error when bootstrapping curve without deposit/fixing rate
Simone,
it looks like the problem happens when you're using splines, and that's probably because in that case we need a double bootstrap loop.
In short: splines are different from all other interpolations. Let's say you're during the bootstrap, and you just determined node N so that it reprices the Nth instrument exactly. When the bootstrap starts moving node N+1, all the spline moves, and not just the part between node N and N+1 (as in all other cases). This means that after node N+1 is determined, instrument N+1 is repriced exactly, but instrument N might not be any longer.
The way the code tries to account for this is to have a double loop: after we are gone through all the nodes, we restart from node 1 and readjust it so the first instrument is repriced, then node 2, and so on. This usually works and converges to a curve that reprices all instruments exactly, but unfortunately is not guaranteed to do so. I suspect that the error happens during one of the later loops, when the full curve is built and the code is trying to readjust the first node around it.
I'm afraid I don't have a solution for that, except avoiding splines. To avoid jagged forwards, you might try bootstrapping on forwards themselves and use, for instance, linear interpolation. Of course, I don't know if that's satisfactory for your project.
Hope this helps,
Luigi
On Tue, Oct 12, 2021 at 11:58 AM Simone Caenazzo <Sim...@ri...<mailto:Sim...@ri...>> wrote:
Good morning,
As an update on my side on this issue, it looks like the calibration works on some days without the deposits; but in general removing the deposit is not a reliable option.
I’d be really grateful if anybody had any updates or further thoughts on this issue!
Thanks in advance,
Simone
From: Simone Caenazzo
Sent: 27 September 2021 15:53
To: Luigi Ballabio <lui...@gm...<mailto:lui...@gm...>>
Cc: PONRAM GOPALAKRISHNAN <po...@gm...<mailto:po...@gm...>>; qua...@li...<mailto:qua...@li...>
Subject: RE: [Quantlib-users] Help with "root not bracketed" error when bootstrapping curve without deposit/fixing rate
Hi Luigi,
I have sent a code example replying to Giuseppe Trapani in the same thread (the server notified me that the email is being held for review temporarily) – the PiecewiseYieldCurve constructor being used is the following – in fact, I believe this may have been deprecated in later versions of QuantLib:
[cid:image001.png@01D7C58B.60F6C4F0]
I have also tried different interpolation methods and targets. Effectively, without the deposit rate the only method that seems to work is Linear (at the cost of having a very jagged output forward curve, of course).
Here is a list of all the method combinations that failed:
DF, LogCubic
DF, MonotonicLogCubicSpline
DF, FritschButlandCubic
DF, LogParabolic
DF, MonotonicLogParabolic
DF, AkimaCubic
ZeroYield, MonotonicLogCubic
ForwardRate, MonotonicLogCubic
Thanks and best regards,
Simone
From: Luigi Ballabio <lui...@gm...<mailto:lui...@gm...>>
Sent: 21 September 2021 13:37
To: Simone Caenazzo <Sim...@ri...<mailto:Sim...@ri...>>
Cc: PONRAM GOPALAKRISHNAN <po...@gm...<mailto:po...@gm...>>; qua...@li...<mailto:qua...@li...>
Subject: Re: [Quantlib-users] Help with "root not bracketed" error when bootstrapping curve without deposit/fixing rate
Hi,
what instantiation of PiecewiseYieldCurve are you using? Does it work if you change from Discount to ZeroRate or viceversa? Or if you change interpolation?
Luigi
On Tue, Sep 21, 2021 at 2:25 PM Simone Caenazzo <Sim...@ri...<mailto:Sim...@ri...>> wrote:
Hi Ponram,
Thanks - indeed, quote units is one of those things that immediately comes to mind.
However I don't think this is the problem here - if the futures or swap RateHelpers were wrongly setup, the code would not work with the deposit rate either.
Additionally, I have played around with data from different valuation dates - very weirdly, there are dates in which the calibration seems to work without the deposit rate too.
Could there be combinations of quotes that, albeit valid, would cause issues within the solver, or the interpolator, of the bootstrapper?
Thanks and best regards,
Simone
-----Original Message-----
From: PONRAM GOPALAKRISHNAN <po...@gm...<mailto:po...@gm...>>
Sent: 21 September 2021 13:14
To: Simone Caenazzo <Sim...@ri...<mailto:Sim...@ri...>>
Cc: Giuseppe Trapani <tr...@gm...<mailto:tr...@gm...>>; qua...@li...<mailto:qua...@li...>
Subject: Re: [Quantlib-users] Help with "root not bracketed" error when bootstrapping curve without deposit/fixing rate
Hi,
I recently encountered this issue when bootstrapping with bond price quotes. I initially had my prices assuming $1 as the face value. I had no issues after changing it to $100 face value. You can try adjusting your price quotes and see if it helps.
- Ponram
> On Sep 21, 2021, at 4:08 AM, Simone Caenazzo <Sim...@ri...<mailto:Sim...@ri...>> wrote:
>
_______________________________________________
QuantLib-users mailing list
Qua...@li...<mailto:Qua...@li...>
https://lists.sourceforge.net/lists/listinfo/quantlib-users<https://lists.sourceforge.net/lists/listinfo/quantlib-users>
|