Login  Register

Re: CPI Time Series Interpolation

Posted by Charles Allderman on Feb 09, 2017; 11:48am
URL: http://quantlib.414.s1.nabble.com/CPI-Time-Series-Interpolation-tp18062p18072.html

Hi Francois

I remember the discussion but we did not delve into the interpolation base issue then I think. Is the interpolation issue then the only issue? If I understand you correctly, I think I like the first method as it allows the user the option of passing in an inflation curve and the valuing off nominal should he so wish.

Thanks
Charles

On Thu, Feb 9, 2017 at 2:57 PM, Francois Botha <[hidden email]> wrote:
Hi,

Charles, you might remember we had a chat about this about a year back. Sadly, this illustrates my laziness and I have to do some more work on that PR before it is ready for merging. 

PR50 is necessary if bonds are valued at the real curve, and the inflation curve in the future is assume to be a flat 0. Past inflation fixings (since issue date) allows for the rolling up until effective date. This is the method that BESA prescribes in the ZA inflation linked bond valuation.

The alternative way is to value the bond at the nominal curve, but then you have to deduce the inflation curve yourself (difference between nominal and real yield curves) and add the fixings as in the first method. 

I still wanted to thoroughly investigate whether the 2nd approach isn't a better approach that wouldn't require PR50 before I cleaned up the PR.

The above doesn't solve your issue, but I just wanted to explain why PR50 is still in limbo.



Francois Botha

On 9 February 2017 at 13:57, Peter Caspers <[hidden email]> wrote:
Hi,

it’s not rounding, QuantLib calculates 123.92 = 123.8 + (124.2-123.8) x (10-1) / 30, i.e. takes November instead of February as the basis for the interpolation. This is due to a bug described here


There is an attempt to solve that, but this is not yet merged


Looking at that I think we also need to fix the interpolation in CPICoupon, the code for this starts here


What do you think, Francois, Luigi?

Kind Regards
Peter


On 08 Feb 2017, at 13:08, Charles Allderman <[hidden email]> wrote:

Hi

I am digging into the pricing of a CPIBond. I have this index CPI index time
series:

DATE             
2016-08-31  123.0
2016-09-30  123.2
2016-10-31  123.8
2016-11-30  124.2
2016-12-31  124.7

If I interpolate for 10 February 2017 I get:
(10.0-1)/28.0*(124.2-123.8)+123.8
123.92857142857143

Deriving the values as calculated by QuantLib using the last cash flow I
get:
principal*baseCPI/notional
123.92000000000002

So it appears to be rounded down.

The inflation index is simply created by passing in a vector of
dates(month-end date plus 1 day) and values.
inflationIndex.addFixings(dte_fixings[:len(fixData)], fixData)

So is there a way to get the full interpolated value?

Thanks
Charles











--
View this message in context: http://quantlib.10058.n7.nabble.com/CPI-Time-Series-Interpolation-tp18062.html
Sent from the quantlib-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users