yield curves fail on holiday

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

yield curves fail on holiday

Ballabio Gerardo-4
Hi all,
last Friday (29 Mar 2013) was Good Friday, that's a holiday for the TARGET calendar, but a working day in Italy. So I discovered that some of my yield curves built with QuantLibXL failed to bootstrap. Specifically that seems to be a problem of curves that use deposits.

Actually, qlPiecewiseYieldCurve did generate an object, but as soon as I tried to read anything from it (for example with qlPiecewiseYieldCurveDates) I obtained this error message:

  qlPiecewiseYieldCurveDates - more than one instrument with maturity April 3rd, 2013

That was easy to understand: if the current evaluation date is a holiday for the calendar specified in the qlDepositRateHelper2 calls, both the O/N and T/N deposits start on the same day, that's the next business day (qlCalendarAdvance gives the same result for Period="0D" and "1D").

So I discarded the O/N rate helper and moved on. And here came the "interesting" thing: reading from the curve failed again with this message:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 3rd, 2013, reference date April 2nd, 2013: Missing no-fixTN Actual/360 fixing for March 28th, 2013

I guess "no-fixTN" is a fictitious index autogenerated in the bootstrap process; since the evaluation date is a holiday, the algorithm looks for the fixing on the previous business day, but can't find it. I tried discarding the T/N helper too, but that just shifted the problem:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 4th, 2013, reference date April 2nd, 2013: Missing no-fixSN Actual/360 fixing for March 28th, 2013

Only when I discarded *all* deposits, the curve did finally bootstrap. But of course I can't use a curve that's radically different from the curve I use on all other days (the first non-deposit pillar has 6 months maturity!).

How am I supposed to solve that? I might try to add fixings for the "no-fix" indexes, but that doesn't seem a good solution, and what would be the correct values for those fixings?

To reproduce the issue, I'm attaching a slightly modified version of the YieldCurveBootstrapping.xls example from the QuantLibXL\Workbooks\StandaloneExamples folder. The modification was simply to add a new sheet where the evaluation date is set to 29 Mar 2013, and a call to ohRangeRetrieveError in the Bootstrapping sheet. Here the first error (two instruments with the same maturity) doesn't occur because the O/N and T/N pillars are never selected, so it goes directly to the "no-fix" thing. You'll need to refresh the objects in order to see the error message.

Thank you in advance.

Gerardo


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div style="font-family:Calibri;font-size:10px">
Banca Profilo S.p.A.
Corso Italia, 49 - 20122 Milano - Tel. 02 58408.1, Fax 02 5831 6057
Capitale Sociale Euro 136.794.106,00 i.v.
Iscrizione al Registro Imprese di Milano, C.F. e P.IVA 09108700155 - [hidden email]
Iscritta all’Albo delle Banche e dei Gruppi bancari
Aderente al Fondo Interbancario di Tutela dei depositi
Aderente al Conciliatore Bancario Finanziario e all’Arbitro Bancario Finanziario
Appartenente al Gruppo bancario Banca Profilo e soggetta all’attività di direzione e coordinamento di Arepo BP S.p.A.


DISCLAIMER:
The information transmitted may contain confidential and/or privileged material.
Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon,
this information by persons or entities other than the intended recipient is prohibited.
If you received this in error, please contact the sender and delete the material from any computer.
</div>
</body>
</html>


------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

YieldCurveBootstrapping.xls (75K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: yield curves fail on holiday

Ibbotson, Simon
Hi Gerardo,

Are you saying that in Italy, you can make settlements on Good Friday? In which case, you probably need to be using a different calendar to TARGET.

Or is it more subtle, with no cash payments allowed but there is a market for post-Spot transactions?

Simon

-----Original Message-----
From: Ballabio Gerardo [mailto:[hidden email]]
Sent: Wednesday, April 03, 2013 9:41 AM
To: quantlib-users
Cc: Prandoni Paolo
Subject: [Quantlib-users] yield curves fail on holiday

Hi all,
last Friday (29 Mar 2013) was Good Friday, that's a holiday for the TARGET calendar, but a working day in Italy. So I discovered that some of my yield curves built with QuantLibXL failed to bootstrap. Specifically that seems to be a problem of curves that use deposits.

Actually, qlPiecewiseYieldCurve did generate an object, but as soon as I tried to read anything from it (for example with qlPiecewiseYieldCurveDates) I obtained this error message:

  qlPiecewiseYieldCurveDates - more than one instrument with maturity April 3rd, 2013

That was easy to understand: if the current evaluation date is a holiday for the calendar specified in the qlDepositRateHelper2 calls, both the O/N and T/N deposits start on the same day, that's the next business day (qlCalendarAdvance gives the same result for Period="0D" and "1D").

So I discarded the O/N rate helper and moved on. And here came the "interesting" thing: reading from the curve failed again with this message:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 3rd, 2013, reference date April 2nd, 2013: Missing no-fixTN Actual/360 fixing for March 28th, 2013

I guess "no-fixTN" is a fictitious index autogenerated in the bootstrap process; since the evaluation date is a holiday, the algorithm looks for the fixing on the previous business day, but can't find it. I tried discarding the T/N helper too, but that just shifted the problem:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 4th, 2013, reference date April 2nd, 2013: Missing no-fixSN Actual/360 fixing for March 28th, 2013

Only when I discarded *all* deposits, the curve did finally bootstrap. But of course I can't use a curve that's radically different from the curve I use on all other days (the first non-deposit pillar has 6 months maturity!).

How am I supposed to solve that? I might try to add fixings for the "no-fix" indexes, but that doesn't seem a good solution, and what would be the correct values for those fixings?

To reproduce the issue, I'm attaching a slightly modified version of the YieldCurveBootstrapping.xls example from the QuantLibXL\Workbooks\StandaloneExamples folder. The modification was simply to add a new sheet where the evaluation date is set to 29 Mar 2013, and a call to ohRangeRetrieveError in the Bootstrapping sheet. Here the first error (two instruments with the same maturity) doesn't occur because the O/N and T/N pillars are never selected, so it goes directly to the "no-fix" thing. You'll need to refresh the objects in order to see the error message.

Thank you in advance.

Gerardo


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div style="font-family:Calibri;font-size:10px">
Banca Profilo S.p.A.
Corso Italia, 49 - 20122 Milano - Tel. 02 58408.1, Fax 02 5831 6057 Capitale Sociale Euro 136.794.106,00 i.v.
Iscrizione al Registro Imprese di Milano, C.F. e P.IVA 09108700155 - [hidden email] Iscritta all’Albo delle Banche e dei Gruppi bancari Aderente al Fondo Interbancario di Tutela dei depositi Aderente al Conciliatore Bancario Finanziario e all’Arbitro Bancario Finanziario Appartenente al Gruppo bancario Banca Profilo e soggetta all’attività di direzione e coordinamento di Arepo BP S.p.A.


DISCLAIMER:
The information transmitted may contain confidential and/or privileged material.
Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited.
If you received this in error, please contact the sender and delete the material from any computer.
</div>
</body>
</html>


***********************************************************************************
This e-mail is intended for the addressee(s) named above and any other use is prohibited. It may contain confidential information. If you  received this e-mail in error please contact the sender by return e-mail.

The Bank of England does not accept legal responsibility for the contents of this message if it has reached you via the Internet, as Internet communications are not secure. Any opinions expressed are those of the
author and are not necessarily endorsed by the Bank of England.

Recipients are advised to apply their own virus checks to this message .
***********************************************************************************


_____________________________________________________________________
This e-mail has been scanned for known viruses by the Messagelabs SkyScan Service.
------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: yield curves fail on holiday

Smith, Dale (Norcross)
In reply to this post by Ballabio Gerardo-4
I think you may want a joint calendar using JointCalendar, giving you the union of the Italian and US calendars.

I've had to do this before with the US and UK calendars. The BBA specifies that USD Libor follows the UK calendar.

http://quantlib.org/reference/class_quant_lib_1_1_joint_calendar.html

Dale Smith, Ph.D.
Senior Financial Quantitative Analyst
Risk & Compliance
Fiserv
Office: 678-375-5315
www.fiserv.com

-----Original Message-----
From: Ballabio Gerardo [mailto:[hidden email]]
Sent: Wednesday, April 03, 2013 4:41 AM
To: quantlib-users
Cc: Prandoni Paolo
Subject: [Quantlib-users] yield curves fail on holiday

Hi all,
last Friday (29 Mar 2013) was Good Friday, that's a holiday for the TARGET calendar, but a working day in Italy. So I discovered that some of my yield curves built with QuantLibXL failed to bootstrap. Specifically that seems to be a problem of curves that use deposits.

Actually, qlPiecewiseYieldCurve did generate an object, but as soon as I tried to read anything from it (for example with qlPiecewiseYieldCurveDates) I obtained this error message:

  qlPiecewiseYieldCurveDates - more than one instrument with maturity April 3rd, 2013

That was easy to understand: if the current evaluation date is a holiday for the calendar specified in the qlDepositRateHelper2 calls, both the O/N and T/N deposits start on the same day, that's the next business day (qlCalendarAdvance gives the same result for Period="0D" and "1D").

So I discarded the O/N rate helper and moved on. And here came the "interesting" thing: reading from the curve failed again with this message:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 3rd, 2013, reference date April 2nd, 2013: Missing no-fixTN Actual/360 fixing for March 28th, 2013

I guess "no-fixTN" is a fictitious index autogenerated in the bootstrap process; since the evaluation date is a holiday, the algorithm looks for the fixing on the previous business day, but can't find it. I tried discarding the T/N helper too, but that just shifted the problem:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 4th, 2013, reference date April 2nd, 2013: Missing no-fixSN Actual/360 fixing for March 28th, 2013

Only when I discarded *all* deposits, the curve did finally bootstrap. But of course I can't use a curve that's radically different from the curve I use on all other days (the first non-deposit pillar has 6 months maturity!).

How am I supposed to solve that? I might try to add fixings for the "no-fix" indexes, but that doesn't seem a good solution, and what would be the correct values for those fixings?

To reproduce the issue, I'm attaching a slightly modified version of the YieldCurveBootstrapping.xls example from the QuantLibXL\Workbooks\StandaloneExamples folder. The modification was simply to add a new sheet where the evaluation date is set to 29 Mar 2013, and a call to ohRangeRetrieveError in the Bootstrapping sheet. Here the first error (two instruments with the same maturity) doesn't occur because the O/N and T/N pillars are never selected, so it goes directly to the "no-fix" thing. You'll need to refresh the objects in order to see the error message.

Thank you in advance.

Gerardo


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div style="font-family:Calibri;font-size:10px">
Banca Profilo S.p.A.
Corso Italia, 49 - 20122 Milano - Tel. 02 58408.1, Fax 02 5831 6057 Capitale Sociale Euro 136.794.106,00 i.v.
Iscrizione al Registro Imprese di Milano, C.F. e P.IVA 09108700155 - [hidden email] Iscritta all’Albo delle Banche e dei Gruppi bancari Aderente al Fondo Interbancario di Tutela dei depositi Aderente al Conciliatore Bancario Finanziario e all’Arbitro Bancario Finanziario Appartenente al Gruppo bancario Banca Profilo e soggetta all’attività di direzione e coordinamento di Arepo BP S.p.A.


DISCLAIMER:
The information transmitted may contain confidential and/or privileged material.
Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited.
If you received this in error, please contact the sender and delete the material from any computer.
</div>
</body>
</html>

------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

R: yield curves fail on holiday

Ballabio Gerardo-4
In reply to this post by Ibbotson, Simon
No, I'm saying that, even if the market is closed, I should be able to calculate theoretical market values on my rate curve. Is that wrong?

Gerardo

-----Messaggio originale-----
Da: Ibbotson, Simon [mailto:[hidden email]]
Inviato: mercoledì 3 aprile 2013 12.48
A: Ballabio Gerardo; quantlib-users
Cc: Prandoni Paolo
Oggetto: RE: yield curves fail on holiday

Hi Gerardo,

Are you saying that in Italy, you can make settlements on Good Friday? In which case, you probably need to be using a different calendar to TARGET.

Or is it more subtle, with no cash payments allowed but there is a market for post-Spot transactions?

Simon

-----Original Message-----
From: Ballabio Gerardo [mailto:[hidden email]]
Sent: Wednesday, April 03, 2013 9:41 AM
To: quantlib-users
Cc: Prandoni Paolo
Subject: [Quantlib-users] yield curves fail on holiday

Hi all,
last Friday (29 Mar 2013) was Good Friday, that's a holiday for the TARGET calendar, but a working day in Italy. So I discovered that some of my yield curves built with QuantLibXL failed to bootstrap. Specifically that seems to be a problem of curves that use deposits.

Actually, qlPiecewiseYieldCurve did generate an object, but as soon as I tried to read anything from it (for example with qlPiecewiseYieldCurveDates) I obtained this error message:

  qlPiecewiseYieldCurveDates - more than one instrument with maturity April 3rd, 2013

That was easy to understand: if the current evaluation date is a holiday for the calendar specified in the qlDepositRateHelper2 calls, both the O/N and T/N deposits start on the same day, that's the next business day (qlCalendarAdvance gives the same result for Period="0D" and "1D").

So I discarded the O/N rate helper and moved on. And here came the "interesting" thing: reading from the curve failed again with this message:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 3rd, 2013, reference date April 2nd, 2013: Missing no-fixTN Actual/360 fixing for March 28th, 2013

I guess "no-fixTN" is a fictitious index autogenerated in the bootstrap process; since the evaluation date is a holiday, the algorithm looks for the fixing on the previous business day, but can't find it. I tried discarding the T/N helper too, but that just shifted the problem:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 4th, 2013, reference date April 2nd, 2013: Missing no-fixSN Actual/360 fixing for March 28th, 2013

Only when I discarded *all* deposits, the curve did finally bootstrap. But of course I can't use a curve that's radically different from the curve I use on all other days (the first non-deposit pillar has 6 months maturity!).

How am I supposed to solve that? I might try to add fixings for the "no-fix" indexes, but that doesn't seem a good solution, and what would be the correct values for those fixings?

To reproduce the issue, I'm attaching a slightly modified version of the YieldCurveBootstrapping.xls example from the QuantLibXL\Workbooks\StandaloneExamples folder. The modification was simply to add a new sheet where the evaluation date is set to 29 Mar 2013, and a call to ohRangeRetrieveError in the Bootstrapping sheet. Here the first error (two instruments with the same maturity) doesn't occur because the O/N and T/N pillars are never selected, so it goes directly to the "no-fix" thing. You'll need to refresh the objects in order to see the error message.

Thank you in advance.

Gerardo


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div style="font-family:Calibri;font-size:10px">
Banca Profilo S.p.A.
Corso Italia, 49 - 20122 Milano - Tel. 02 58408.1, Fax 02 5831 6057 Capitale Sociale Euro 136.794.106,00 i.v.
Iscrizione al Registro Imprese di Milano, C.F. e P.IVA 09108700155 - [hidden email] Iscritta all’Albo delle Banche e dei Gruppi bancari Aderente al Fondo Interbancario di Tutela dei depositi Aderente al Conciliatore Bancario Finanziario e all’Arbitro Bancario Finanziario Appartenente al Gruppo bancario Banca Profilo e soggetta all’attività di direzione e coordinamento di Arepo BP S.p.A.


DISCLAIMER:
The information transmitted may contain confidential and/or privileged material.
Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited.
If you received this in error, please contact the sender and delete the material from any computer.
</div>
</body>
</html>


***********************************************************************************
This e-mail is intended for the addressee(s) named above and any other use is prohibited. It may contain confidential information. If you  received this e-mail in error please contact the sender by return e-mail.

The Bank of England does not accept legal responsibility for the contents of this message if it has reached you via the Internet, as Internet communications are not secure. Any opinions expressed are those of the author and are not necessarily endorsed by the Bank of England.

Recipients are advised to apply their own virus checks to this message .
***********************************************************************************


_____________________________________________________________________
This e-mail has been scanned for known viruses by the Messagelabs SkyScan Service.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div style="font-family:Calibri;font-size:10px">
Banca Profilo S.p.A.
Corso Italia, 49 - 20122 Milano - Tel. 02 58408.1, Fax 02 5831 6057
Capitale Sociale Euro 136.794.106,00 i.v.
Iscrizione al Registro Imprese di Milano, C.F. e P.IVA 09108700155 - [hidden email]
Iscritta all’Albo delle Banche e dei Gruppi bancari
Aderente al Fondo Interbancario di Tutela dei depositi
Aderente al Conciliatore Bancario Finanziario e all’Arbitro Bancario Finanziario
Appartenente al Gruppo bancario Banca Profilo e soggetta all’attività di direzione e coordinamento di Arepo BP S.p.A.


DISCLAIMER:
The information transmitted may contain confidential and/or privileged material.
Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon,
this information by persons or entities other than the intended recipient is prohibited.
If you received this in error, please contact the sender and delete the material from any computer.
</div>
</body>
</html>

------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: yield curves fail on holiday

Ibbotson, Simon
Hi Gerardo,

As the O/N instrument is not defined and T/N  instrument is not defined  then the discount factor for Spot is undefined. Hence the discount factor for any point in the curve is ambiguous (dependent upon the Spot DF).

Also - when is Spot for a closed market?

Most trading systems have a default behaviour for when the valuation date is not a settlement date.
One suggestion would be - for affected trades/currencies - for you to set the Valuation Date to be 28 Mar 2013; this would give you the same behaviour as at the EOD on the Thursday. As the rates in your yieldcurve wouldn't be current anyway - then this should give you reasonable behaviour.

Simon



-----Original Message-----
From: Ballabio Gerardo [mailto:[hidden email]]
Sent: Wednesday, April 03, 2013 1:35 PM
To: Ibbotson, Simon; quantlib-users
Cc: Prandoni Paolo
Subject: R: yield curves fail on holiday

*************************
This email has reached the Bank via the Internet or an external network
*************************
No, I'm saying that, even if the market is closed, I should be able to calculate theoretical market values on my rate curve. Is that wrong?

Gerardo

-----Messaggio originale-----
Da: Ibbotson, Simon [mailto:[hidden email]]
Inviato: mercoledì 3 aprile 2013 12.48
A: Ballabio Gerardo; quantlib-users
Cc: Prandoni Paolo
Oggetto: RE: yield curves fail on holiday

Hi Gerardo,

Are you saying that in Italy, you can make settlements on Good Friday? In which case, you probably need to be using a different calendar to TARGET.

Or is it more subtle, with no cash payments allowed but there is a market for post-Spot transactions?

Simon

-----Original Message-----
From: Ballabio Gerardo [mailto:[hidden email]]
Sent: Wednesday, April 03, 2013 9:41 AM
To: quantlib-users
Cc: Prandoni Paolo
Subject: [Quantlib-users] yield curves fail on holiday

Hi all,
last Friday (29 Mar 2013) was Good Friday, that's a holiday for the TARGET calendar, but a working day in Italy. So I discovered that some of my yield curves built with QuantLibXL failed to bootstrap. Specifically that seems to be a problem of curves that use deposits.

Actually, qlPiecewiseYieldCurve did generate an object, but as soon as I tried to read anything from it (for example with qlPiecewiseYieldCurveDates) I obtained this error message:

  qlPiecewiseYieldCurveDates - more than one instrument with maturity April 3rd, 2013

That was easy to understand: if the current evaluation date is a holiday for the calendar specified in the qlDepositRateHelper2 calls, both the O/N and T/N deposits start on the same day, that's the next business day (qlCalendarAdvance gives the same result for Period="0D" and "1D").

So I discarded the O/N rate helper and moved on. And here came the "interesting" thing: reading from the curve failed again with this message:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 3rd, 2013, reference date April 2nd, 2013: Missing no-fixTN Actual/360 fixing for March 28th, 2013

I guess "no-fixTN" is a fictitious index autogenerated in the bootstrap process; since the evaluation date is a holiday, the algorithm looks for the fixing on the previous business day, but can't find it. I tried discarding the T/N helper too, but that just shifted the problem:

  qlPiecewiseYieldCurveDates - 1st iteration: failed at 1st alive instrument, maturity April 4th, 2013, reference date April 2nd, 2013: Missing no-fixSN Actual/360 fixing for March 28th, 2013

Only when I discarded *all* deposits, the curve did finally bootstrap. But of course I can't use a curve that's radically different from the curve I use on all other days (the first non-deposit pillar has 6 months maturity!).

How am I supposed to solve that? I might try to add fixings for the "no-fix" indexes, but that doesn't seem a good solution, and what would be the correct values for those fixings?

To reproduce the issue, I'm attaching a slightly modified version of the YieldCurveBootstrapping.xls example from the QuantLibXL\Workbooks\StandaloneExamples folder. The modification was simply to add a new sheet where the evaluation date is set to 29 Mar 2013, and a call to ohRangeRetrieveError in the Bootstrapping sheet. Here the first error (two instruments with the same maturity) doesn't occur because the O/N and T/N pillars are never selected, so it goes directly to the "no-fix" thing. You'll need to refresh the objects in order to see the error message.

Thank you in advance.

Gerardo


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div style="font-family:Calibri;font-size:10px">
Banca Profilo S.p.A.
Corso Italia, 49 - 20122 Milano - Tel. 02 58408.1, Fax 02 5831 6057 Capitale Sociale Euro 136.794.106,00 i.v.
Iscrizione al Registro Imprese di Milano, C.F. e P.IVA 09108700155 - [hidden email] Iscritta all’Albo delle Banche e dei Gruppi bancari Aderente al Fondo Interbancario di Tutela dei depositi Aderente al Conciliatore Bancario Finanziario e all’Arbitro Bancario Finanziario Appartenente al Gruppo bancario Banca Profilo e soggetta all’attività di direzione e coordinamento di Arepo BP S.p.A.


DISCLAIMER:
The information transmitted may contain confidential and/or privileged material.
Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited.
If you received this in error, please contact the sender and delete the material from any computer.
</div>
</body>
</html>


***********************************************************************************
This e-mail is intended for the addressee(s) named above and any other use is prohibited. It may contain confidential information. If you  received this e-mail in error please contact the sender by return e-mail.

The Bank of England does not accept legal responsibility for the contents of this message if it has reached you via the Internet, as Internet communications are not secure. Any opinions expressed are those of the author and are not necessarily endorsed by the Bank of England.

Recipients are advised to apply their own virus checks to this message .
***********************************************************************************


_____________________________________________________________________
This e-mail has been scanned for known viruses by the Messagelabs SkyScan Service.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div style="font-family:Calibri;font-size:10px">
Banca Profilo S.p.A.
Corso Italia, 49 - 20122 Milano - Tel. 02 58408.1, Fax 02 5831 6057 Capitale Sociale Euro 136.794.106,00 i.v.
Iscrizione al Registro Imprese di Milano, C.F. e P.IVA 09108700155 - [hidden email] Iscritta all’Albo delle Banche e dei Gruppi bancari Aderente al Fondo Interbancario di Tutela dei depositi Aderente al Conciliatore Bancario Finanziario e all’Arbitro Bancario Finanziario Appartenente al Gruppo bancario Banca Profilo e soggetta all’attività di direzione e coordinamento di Arepo BP S.p.A.


DISCLAIMER:
The information transmitted may contain confidential and/or privileged material.
Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited.
If you received this in error, please contact the sender and delete the material from any computer.
</div>
</body>
</html>


_____________________________________________________________________
This e-mail originated from the Internet and has been scanned for known viruses by the Messagelabs SkyScan Service.

_____________________________________________________________________
This e-mail has been scanned for known viruses by the Messagelabs SkyScan Service.
------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: R: yield curves fail on holiday

Ferdinando M. Ametrano-3
In reply to this post by Ballabio Gerardo-4

On Wed, Apr 3, 2013 at 2:35 PM, Ballabio Gerardo <[hidden email]> wrote:
even if the market is closed, I should be able to calculate theoretical market values on my rate curve. Is that wrong?
 
yes, that's plain wrong in my book.

You should and could calculate NPVs using the last good business day (lgbd) as evaluation date. Or (more tricky but feasible) the next good business day.
In both cases you would be using the lgbd's market data, so I would suggest to go for the lgbd.

It does make very little sense to 'mark-to-market' a portfolio to a non-existent market, such as a Good Friday market.
Anyway if hard-pressed to come up with sensible values the proper way in my opinion would be to bootstrap the curves as per the lgbd, then use the qlImpliedTermStructure class/function in order to obtain a curve which has discount factor 1.0 at Good Friday. This way you would be using the forward implied curve for Good Friday as seen from the lgbd.

Last but not least on Good Friday you should be on holiday, but don't get me started on why oh why a Christian Holiday is not a public holiday in a supposedly Catholic country ;-)

ciao -- Nando

------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

R: R: yield curves fail on holiday

Ballabio Gerardo-4

O-o-ok. Then I suppose it’s only by accident that my Eonia curve (built without deposits) did bootstrap…

 

In fact we would have been a bit “hard-pressed” (if our QuantLibXL sheets were already running in production!) because this Good Friday also happened to be the last working day of the month, when mark-to-market evaluations of all open transactions must be written on the accounting books. But I see that won’t happen again until 2018, so let’s defer this matter until then (and then I’ll make sure to be on vacation on that day) ;-)))

 

Ciao

Gerardo

 

 

Da: [hidden email] [mailto:[hidden email]] Per conto di Ferdinando Ametrano
Inviato: mercoledì 3 aprile 2013 17.09
A: Ballabio Gerardo
Cc: Ibbotson, Simon; quantlib-users; Prandoni Paolo
Oggetto: Re: [Quantlib-users] R: yield curves fail on holiday

 

 

On Wed, Apr 3, 2013 at 2:35 PM, Ballabio Gerardo <[hidden email]> wrote:

even if the market is closed, I should be able to calculate theoretical market values on my rate curve. Is that wrong?

 

yes, that's plain wrong in my book.

 

You should and could calculate NPVs using the last good business day (lgbd) as evaluation date. Or (more tricky but feasible) the next good business day.

In both cases you would be using the lgbd's market data, so I would suggest to go for the lgbd.

 

It does make very little sense to 'mark-to-market' a portfolio to a non-existent market, such as a Good Friday market.

Anyway if hard-pressed to come up with sensible values the proper way in my opinion would be to bootstrap the curves as per the lgbd, then use the qlImpliedTermStructure class/function in order to obtain a curve which has discount factor 1.0 at Good Friday. This way you would be using the forward implied curve for Good Friday as seen from the lgbd.

 

Last but not least on Good Friday you should be on holiday, but don't get me started on why oh why a Christian Holiday is not a public holiday in a supposedly Catholic country ;-)

 

ciao -- Nando




Banca Profilo S.p.A. Corso Italia, 49 - 20122 Milano - Tel. 02 58408.1, Fax 02 5831 6057 Capitale Sociale Euro 136.794.106,00 i.v. Iscrizione al Registro Imprese di Milano, C.F. e P.IVA 09108700155 - [hidden email] Iscritta all’Albo delle Banche e dei Gruppi bancari Aderente al Fondo Interbancario di Tutela dei depositi Aderente al Conciliatore Bancario Finanziario e all’Arbitro Bancario Finanziario Appartenente al Gruppo bancario Banca Profilo e soggetta all’attività di direzione e coordinamento di Arepo BP S.p.A. DISCLAIMER: The information transmitted may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: R: yield curves fail on holiday

Ferdinando M. Ametrano-3
On Wed, Apr 3, 2013 at 5:30 PM, Ballabio Gerardo <[hidden email]> wrote:

In fact we would have been a bit “hard-pressed” (if our QuantLibXL sheets were already running in production!) because this Good Friday also happened to be the last working day of the month, when mark-to-market evaluations of all open transactions must be written on the accounting books.


I don't want to sound picky, you could try to enlighten your bank that the last working day of the month has been Thursday March 28th for European banks.

:-)

And I am pretty sure my bank and yours share the same Central Bank, don't we?

Last but not least I have seen also the practice for selecting the last liquid business day instead of Dec 31st for end-of-year purposes... 


------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users