Rate Curve Boostrapping Error using QLib XL

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

Rate Curve Boostrapping Error using QLib XL

Mitul Patel
Hi,

I am a relatively new user to QLib XL. I am getting the following error when trying to bootstrap a rate curve as per the attached spreadsheet (cells E83 to E105).

'qlPiecewiseYieldCurveData - 1st iteration: failed at 12th alive instrument, maturity January 8th, 2018, reference date January 6th, 2010: root not bracketed: f[0.780492,0.866129] -> [9.956026e-004,1.327038e-002]'


The error seems to be caused by the 8y swap - removing that item from the curve construction does indeed get around this error. 

I have read that it could be caused by the Loglinear interpolation, but changing to Linear did not change the outcome in this example. Also the error obtained is from an old version of Quantlib XL, so am not sure if the issue is resolved by a later version. Would be grateful for any guidance on this issue.

Many thanks,

Mitul


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

_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

Specific Curve def - Interbank - EUR 3M.xlsb (61K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Rate Curve Boostrapping Error using QLib XL

Luigi Ballabio
Hello Mitul,
    I don't seem to be able to open the spreadsheet.  May you just post the rates as text?

Thanks,
    Luigi


On Tue, Aug 30, 2016 at 10:41 PM Mitul Patel <[hidden email]> wrote:
Hi,

I am a relatively new user to QLib XL. I am getting the following error when trying to bootstrap a rate curve as per the attached spreadsheet (cells E83 to E105).

'qlPiecewiseYieldCurveData - 1st iteration: failed at 12th alive instrument, maturity January 8th, 2018, reference date January 6th, 2010: root not bracketed: f[0.780492,0.866129] -> [9.956026e-004,1.327038e-002]'


The error seems to be caused by the 8y swap - removing that item from the curve construction does indeed get around this error. 

I have read that it could be caused by the Loglinear interpolation, but changing to Linear did not change the outcome in this example. Also the error obtained is from an old version of Quantlib XL, so am not sure if the issue is resolved by a later version. Would be grateful for any guidance on this issue.

Many thanks,

Mitul

------------------------------------------------------------------------------
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

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

_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Rate Curve Boostrapping Error using QLib XL

Mitul Patel
Hi Luigi,


Thanks for looking into this. 

Please see below the rates. I've also included the other configuration for these rates/instruments. Please let me know if you need anything further.



ObjectId Rate Tenor FixingDays Calendar Convention EndOfMonth DayCounter Permanent Trigger Overwrite
Cash - 3M 0.00694000 3M 2 TARGET Modified following FALSE Actual/360 06/01/2010


ObjectId Price IMM LengthInMonths Calendar Convention EndOfMonth DayCounter ConvexityAdjQuote Permanent Trigger Overwrite
Future 1 99.2700000 U6 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 2 98.9400000 Z6 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 3 98.5800000 H7 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 4 98.2550000 M7 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 5 97.9800000 U7 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 6 97.7250000 Z7 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 7 97.5200000 H8 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 8 97.3200000 M8 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010


ObjectId Rate Tenor Calendar FixedLegFrequency FixedLegConvention FixedLegDayCounter IborIndex Spread ForwardStart DiscountingCurve Permanent Trigger Overwrite
Swap  - 3Y 0.0204500 3Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 4Y 0.0235200 4Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 5Y 0.0260800 5Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 6Y 0.0283100 6Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 7Y 0.0302700 7Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 8Y 0.0318800 8Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 9Y 0.0331800 9Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 10Y 0.0343200 10Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 11Y 0.0353700 11Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 12Y 0.0363000 12Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 15Y 0.0382900 15Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 20Y 0.0395000 20Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 25Y 0.0392700 25Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 30Y 0.0386400 30Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 40Y 0.0373100 40Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 50Y 0.0368400 50Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010

 
Thanks,

Mitul

On 6 September 2016 at 11:09, Luigi Ballabio <[hidden email]> wrote:
Hello Mitul,
    I don't seem to be able to open the spreadsheet.  May you just post the rates as text?

Thanks,
    Luigi


On Tue, Aug 30, 2016 at 10:41 PM Mitul Patel <[hidden email]> wrote:
Hi,

I am a relatively new user to QLib XL. I am getting the following error when trying to bootstrap a rate curve as per the attached spreadsheet (cells E83 to E105).

'qlPiecewiseYieldCurveData - 1st iteration: failed at 12th alive instrument, maturity January 8th, 2018, reference date January 6th, 2010: root not bracketed: f[0.780492,0.866129] -> [9.956026e-004,1.327038e-002]'


The error seems to be caused by the 8y swap - removing that item from the curve construction does indeed get around this error. 

I have read that it could be caused by the Loglinear interpolation, but changing to Linear did not change the outcome in this example. Also the error obtained is from an old version of Quantlib XL, so am not sure if the issue is resolved by a later version. Would be grateful for any guidance on this issue.

Many thanks,

Mitul

------------------------------------------------------------------------------
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users


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

_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Rate Curve Boostrapping Error using QLib XL

MAZZOCCHI PAOLO

Hi Mitul,


I think that the problem in your spreadsheet is in the evaluation date.

In fact the evaluation date is set to 06/01/10 and the futures that you are using are the one between 21/12/16 (U6) and 20/09/18 (M8), that is between 6Y and 9Y swaps. 

The bootstrap fails because futures and swaps quotes are really different, 0.73% for the first futures (pillar date 21/12/16) against 3.027% for 7 years swaps (pillar date 09/01/17).


If you try to set evaluation date to today, the bootstrap succeed.


Hope this help.


Regards,

Paolo



Da: Mitul Patel <[hidden email]>
Inviato: martedì 6 settembre 2016 22.34
A: Luigi Ballabio
Cc: [hidden email]
Oggetto: Re: [Quantlib-users] Rate Curve Boostrapping Error using QLib XL
 
Hi Luigi,


Thanks for looking into this. 

Please see below the rates. I've also included the other configuration for these rates/instruments. Please let me know if you need anything further.



ObjectId Rate Tenor FixingDays Calendar Convention EndOfMonth DayCounter Permanent Trigger Overwrite
Cash - 3M 0.00694000 3M 2 TARGET Modified following FALSE Actual/360 06/01/2010


ObjectId Price IMM LengthInMonths Calendar Convention EndOfMonth DayCounter ConvexityAdjQuote Permanent Trigger Overwrite
Future 1 99.2700000 U6 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 2 98.9400000 Z6 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 3 98.5800000 H7 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 4 98.2550000 M7 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 5 97.9800000 U7 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 6 97.7250000 Z7 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 7 97.5200000 H8 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010
Future 8 97.3200000 M8 3 TARGET Modified Following FALSE Actual/360 0 06/01/2010


ObjectId Rate Tenor Calendar FixedLegFrequency FixedLegConvention FixedLegDayCounter IborIndex Spread ForwardStart DiscountingCurve Permanent Trigger Overwrite
Swap  - 3Y 0.0204500 3Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 4Y 0.0235200 4Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 5Y 0.0260800 5Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 6Y 0.0283100 6Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 7Y 0.0302700 7Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 8Y 0.0318800 8Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 9Y 0.0331800 9Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 10Y 0.0343200 10Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 11Y 0.0353700 11Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 12Y 0.0363000 12Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 15Y 0.0382900 15Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 20Y 0.0395000 20Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 25Y 0.0392700 25Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 30Y 0.0386400 30Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 40Y 0.0373100 40Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010
Swap  - 50Y 0.0368400 50Y Target Annual Modified following 30/360 (Bond Basis) EURIBOR#0000 0 0D 06/01/2010

 
Thanks,

Mitul

On 6 September 2016 at 11:09, Luigi Ballabio <[hidden email]> wrote:
Hello Mitul,
    I don't seem to be able to open the spreadsheet.  May you just post the rates as text?

Thanks,
    Luigi


On Tue, Aug 30, 2016 at 10:41 PM Mitul Patel <[hidden email]> wrote:
Hi,

I am a relatively new user to QLib XL. I am getting the following error when trying to bootstrap a rate curve as per the attached spreadsheet (cells E83 to E105).

'qlPiecewiseYieldCurveData - 1st iteration: failed at 12th alive instrument, maturity January 8th, 2018, reference date January 6th, 2010: root not bracketed: f[0.780492,0.866129] -> [9.956026e-004,1.327038e-002]'


The error seems to be caused by the 8y swap - removing that item from the curve construction does indeed get around this error. 

I have read that it could be caused by the Loglinear interpolation, but changing to Linear did not change the outcome in this example. Also the error obtained is from an old version of Quantlib XL, so am not sure if the issue is resolved by a later version. Would be grateful for any guidance on this issue.

Many thanks,

Mitul

------------------------------------------------------------------------------
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.

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

_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Rate Curve Boostrapping Error using QLib XL

MAZZOCCHI PAOLO

Hi Mitul,


I think that the problem in your spreadsheet is in the evaluation date.

In fact the evaluation date is set to 06/01/10 and the futures that you are using are the one between 21/12/16 (U6) and 20/09/18 (M8), that is between 6Y and 9Y swaps. 

The bootstrap fails because futures and swaps quotes are really different, 0.73% for the first futures (pillar date 21/12/16) against 3.027% for 7 years swaps (pillar date 09/01/17).


If you try to set evaluation date to today, the bootstrap succeed.


Hope this help.


Regards,

Paolo​



Prima di stampare, pensa all'ambiente ** Think about the environment before printing



Il presente messaggio, inclusi gli eventuali allegati, ha natura aziendale e potrebbe contenere informazioni confidenziali e/o riservate. Chiunque lo ricevesse per errore, è pregato di avvisare tempestivamente il mittente e di cancellarlo.
E’ strettamente vietata qualsiasi forma di utilizzo, riproduzione o diffusione non autorizzata del contenuto di questo messaggio o di parte di esso.
Pur essendo state assunte le dovute precauzioni per ridurre al minimo il rischio di trasmissione di virus, si suggerisce di effettuare gli opportuni controlli sui documenti allegati al presente messaggio. Non si assume alcuna responsabilità per eventuali danni o perdite derivanti dalla presenza di virus.

Per lo svolgimento delle attività di investimento nel Regno Unito, la società è autorizzata da Banca d'Italia ed è soggetta alla vigilanza limitata della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) . Maggiori informazioni in merito ai poteri di vigilanza della Financial Conduct Authority ( FCA ) e della Prudential Regulation Authority ( PRA ) sono a disposizione previa richiesta.

Nel Regno Unito Intesa Sanpaolo S.p.A. opera attraverso la filiale di Londra, sita in 90 Queen Street, London EC4N 1SA, registrata in Inghilterra & Galles sotto No.FC016201, Branch No.BR000036

In osservanza dei requisito imposti dal Internal Revenue Service (Agenzia delle Entrate degli Stati Uniti), qualunque discussione relativa a temi di natura fiscale contenuta in questo messaggio o nei suoi allegati non e’ intesa ne’ e’ stata scritta per essere utilizzata, ne’ puo’ essere utilizata per (i) evitare l’imposizione di gravami fiscali secondo il codice tributario vigente negli Stati Uniti o (ii) per promuovere, sollecitare o raccomandare una operazione finanziaria o altra transazione indirizzata ad un altro destinatario.

Nella Repubblica d’Irlanda, Intesa Sanpaolo Bank Ireland plc è regolamentata dalla Banca Centrale d’Irlanda ed è parte del Gruppo Bancario Intesa Sanpaolo S.p.A. Registrata in Irlanda come società numero 125216 – IVA Reg. IE4817418C IE, sita in, KBC House, 4 George Dock, IFSC, Dublino 1, Irlanda.

***



This email (including any attachment) is a corporate message and may contain confidential and/or privileged and/or proprietary information. If you have received this email in error, please notify the sender immediately, do not use or share it and destroy this email. Any unauthorised use, copying or disclosure of the material in this email or of parts hereof (including reliance thereon) is strictly forbidden.
We have taken precautions to minimize the risk of transmitting software viruses but nevertheless advise you to carry out your own virus checks on any attachment of this message. We accept no liability for loss or damage caused by software viruses.

For the conduct of investment business in the UK, the Company is authorised by Banca d’Italia and subject to limited regulation in the UK by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ). Details about the extent of our regulation by the Financial Conduct Authority ( FCA ) and the Prudential Regulation Authority ( PRA ) are available from us on request.

In the UK Intesa Sanpaolo S.p.A. operates through its London Branch, located at 90 Queen Street, London EC4N 1SA. Registered in England & Wales under No.FC016201, Branch No.BR000036

To comply with requirements imposed by the IRS, we inform you that any discussion of U.S. federal tax issues contained herein (including any attachments) was not intended or written to be used, and cannot be used by you, for the purpose of (i) avoiding penalties under the Internal Revenue Code or (ii) promoting, marketing or recommending any transaction or matter addressed herein to another party.

In the Republic of Ireland, Intesa Sanpaolo Bank Ireland plc is regulated by the Central Bank of Ireland and is a member of the Intesa Sanpaolo Group. It is registered in Ireland as company no.125216 – VAT Reg. No. IE 4817418C and located at, 3rd Floor, KBC House, 4 George’s Dock, IFSC, Dublin 1, Ireland.

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

_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users