I still haven’t figured what to do with my approach of tracking spread between 10y Italy and German bonds. I’ve always used assumption that change of benchmark bond wouldn’t have a large impact on the bond yield. Last week I discovered that it was a flawed approach. My data source (Investing.com) started using BTP 2.2 01jun2027 as benchmark instead of BTP 1.25 01dec2026. The 2027 one has yield 18 bps above the 2026 one, so it seemed like BTPs cheapened significantly. One way would be finding all bonds that used to be 10y benchmarks or CTDs in BTP futures, converting their prices to yields and interpolating between the two to find the exactly 10 year yield. Another way would be fitting finding at least some historical benchmarks of 2y, 5y, 10y, 30y and fitting Nelson-siegel-svensson function to them, and then getting the 10y yield. Both seem too laborious to both work out and update on a daily basis. Having Bloomberg definitely helps in this case as they have already derived zero-coupon yields. I could perhaps run this exercise to find the “pure” 10 year-yield once now, update once a quarter or when my source changes its benchmark, and in between just be aware of the gap. Though doing this for BTPs opens thoughts that I should do this exercise for all other bonds too. I will have to think some more to see if I can find a solution that takes less efforts.

You need to build a curve and imply the 10y par yield... Otherwise, you'll be at the mercy of all sorts of funky effects. I am reasonably sure that you can obtain decent historical data for various benchmark yields from ECB (http://sdw.ecb.europa.eu/home.do), BuBa (http://www.bundesbank.de/Navigation...l_markets/money_and_capital_markets_node.html) and Banca d'Italia (https://infostat.bancaditalia.it/inquiry/lite/mobile/en/iq#/P2NvbnRleHQ9dGF4byZzZWN0aW9uPWxpc3Q%3D).

The joke that there are more opinions than economists is appropriate for curves apparently. The Banca d’Italia daily data only goes back to 2012 when BTP bungabunga was already in full swing and not updated from late Feb. I tried to validate the 10-year banca d'italia benchmark against Bloomberg-calculated 10-year spot rate (F90510Y Index), but the appalling difference between the two suggests someone screwed up. Found no relationship between the differences and the level or slope of the curve. Plotting differences for Central bank derived – BTPS 1.25, Bloomberg derived – BTPS 1.25, Bloomberg derived – Central bank derived on a more recent interval doesn’t make me feel confident about data either. The steep spike in Bloomberg derived - BTPS 1.25 and in central bank derived – BTPS 1.25 differences suggests that either the benchmark was changed or the basket of bonds used for fitting was changed. However, this doesn’t explain the disappearance of gap between central bank and bloombrg derived yields. Yet the yield for the generic 10y (https://www.bloomberg.com/quote/GBTPGR10:IND) was the same as BTPS 1.25 yield both prior and after 08/02/2017, which suggests the benchmark did not change. Hope to dig further into the issue later this week.

There will inevitably be all sorts of "model dependencies". It's a tricky business, building bond curves.

I think of Bender from Futurama now except it's the curve and not a theme park. - Yeah, well, I'm gonna go build my own bond curves with blackjack and hookers. In fact, forget the curves.

If you so desire, macro_paper, I can get you some daily data going back to 1999 for Italy (and Germany). A couple of dealer systems that I use build curves and allow me to get the data. You have to make sure you know what you want, though...

Thanks, but no need. I need something I can update on my own using publicly available information and without spending much time on updates. I'd have neither fresh data nor methodology. I have full data for Italian and German bunds for 2000-2014, i.e. all bond issues, their prices, coupons, issue and maturity dates, cashflow dates. It's the programming/maths part that was challenging when I tried to do it the proper way a while ago. I tried to model the curve by finding such model coefficients that would minimize the sum squared of model price deviations from the actual prices. The first problem was that having 40 cents off on a 30y isn't as bad as having 40 cents off on a 2y. The second problem was "independent" optimization in each time period, so that different local maxima/minima would be found yesterday versus a week ago, and you could have significant model rate jumps even with almost no change in the curve. First problem seemed easy to solve by finding yield differences squared instead of price differences squared, but this essentially meant optimization squared because finding yields from given prices and the yield differences squared is a lot more computationally intensive than the difference of those given prices. In practice this led to more occasions of no solutions being found at all. Attempted fixes for the second problem were taking previous day coefficients as a starting point for the current day and by limiting the jump in coefficients. This did improve the results in some quieter periods (or the smoother data just deceived my eyes), but this constraint made the system stuck in 2011-2012 volatility. It obviously made it very dependent on starting point. Start optimizing from 1-mar-2005 and you get very diff results than if you start from 01-jun-2005. There is some paper that deals with the problem but my skills are too limited to understand it. Using all bonds traded may not have helped either because some 8% illiquids would drop out of basket on days without prices or worse distort the picture with stale prices. At that point my reasoning was that by using all bonds available the impact of one issue inclusion/exclusion becomes smaller.

EURNOK short from ~9.2160 spot. With june futures 9.244 level: long 1 NOKM7 0.11740 short 2 6EM7 @ 1.08525

Yeah, this is a tricky and somewhat arbitrary process... In Italy, you really need to throw some issues out completely, but then, at the same time, find a way to deal with the resulting "sparseness" of particular sectors. In Germany, you need to account for some funky effects that used to arise between OBLs and aged DBRs. It's definitely sort of an art, rather than a science, in some aspects.

-0.45% for the week (largely due to EUR FX hedge). -0.6% in q1 in USD terms, -0.8% in EUR terms. Perfect annualized Sharpe of 1, but with negative sign.