The ECB yield curve with rmarkdown and R (Italian)

Print Friendly

La curva dei rendimenti per scadenze

La curva dei rendimenti per scadenze (o più semplicemente curva dei tassi) rappresenta graficamente la relazione esistente tra rendimenti di titoli obbligazionari emessi da uno specifico (lo Stato, ad esempio) o da più specifici emittenti (corporate con rating AAA, ad esempio) e la loro vita residua. La tabella che segue contiene i dati riportati dal Sole 24 Ore e relativi alla curva dei rendimenti per scadenza dei principali titoli di Stato dell’area euro al 18 aprile 2017.

library(tidyverse)
library(readr)
yc <- read_csv2("C:/.../RendScad.csv")
library(knitr)
kable(yc, caption = "Rendimenti per scadenze")
Rendimenti per scadenze
Data 3m 6m 1a 2a 3a 4a 5a 7a 10a
Ieri -0.88 -0.88 -0.84 -0.86 -0.80 -0.68 -0.52 -0.25 0.19
Una sett.fa -0.87 -0.86 -0.83 -0.84 -0.79 -0.67 -0.51 -0.23 0.21
Un mese fa -0.96 -0.95 -0.83 -0.78 -0.66 -0.49 -0.33 -0.06 0.44
Due mesi fa -0.85 -0.88 -0.86 -0.84 -0.81 -0.68 -0.48 -0.21 0.30

I rendimenti dei titoli di Stato vengono spesso confrontati tra loro dal momento che l’incentivo ad investire in titoli di paesi stranieri da parte degli investitori è tanto maggiore quanto maggiore è il rendimento dei titoli esteri. Nella tabella seguente sono riportati i differenziali di rendimento pubblicati dal Sole 24 Ore al 18 aprile 2017.

diff <- read_csv2("C:/Users/Rudolph/Google Drive/EIMF/Financial markets/Differenziali.csv")
kable(diff, caption = "Differenziali tra l'Euro e i principali paesi")
Differenziali tra l’Euro e i principali paesi
Paese 3m 6m 1a 2a 3a 4a 5a 7a 10a
USA -1.71 -1.74 -1.89 -2.03 -2.15 -2.23 -2.24 -2.25 -2.03
un mese fa -1.70 -1.82 -1.83 -1.83 -2.23 -2.29 -2.32 -2.34 -2.04
Giappone -0.78 -0.69 -0.64 -0.64 -0.61 -0.51 -0.37 -0.17 0.14
un mese fa -0.65 -0.66 -0.54 -0.52 -0.47 -0.33 -0.19 -0.02 0.37
Regno Unito -1.05 -1.00 -0.94 -0.96 -0.98 -0.93 -0.99 -0.84 -0.86
un mese fa -1.06 -1.04 -0.90 -0.86 -0.88 -0.81 -0.92 -0.92 -0.80
yield_latest <- read_csv("C:/.../yield_latest.csv")
# yield_latest
library(stringr)
yc.dat <- yield_latest %>%
  select(1, 8, 9, 10, 35)
yc.dat <- yc.dat %>% 
  filter(grepl('SR_', Key))
yc.dat.AAA <- yc.dat %>% 
  filter(grepl('_A.SV_', Key))
SR.s <- str_extract(yc.dat.AAA$Key, 'SR_.*')
SR.s <- str_replace_all(SR.s, '[SR_]', '')
y <- as.numeric(str_extract(SR.s, "\\d+(?=Y)"))
y[is.na(y)] <- 0.0
m <- as.numeric(str_extract(SR.s, "\\d+(?=M)"))
m[is.na(m)] <- 0.0
m <- m/12
M <- y + m
yc.dat.AAA$Maturity <- M

Di seguito è riportata la curva dei rendimenti per scadenze dei titoli AAA pubblicata dalla Banca Centrale Europea al 13 aprile 2017.

library(ggplot2)
pl <- ggplot(yc.dat.AAA, aes(x = Maturity, y = `Observation value`))
pl + geom_point() + ylab("Tassi spot (SR, spot rate)") + xlab("Vita residua")

Le curve dei rendimenti BCE

La BCE pubblica quotidianamente le curve dei rendimenti per scadenze relative a:

  • I tassi a pronti denominati tassi spot (SR, per spot rate);
  • I tassi impliciti a termine, riferiti ai tassi a brevissimo termine (istantanei, ossia relativi a operazioni con scadenza overnight, IF — instanteous forward);
  • I tassi par, riferiti a titoli con quotazione alla pari (PY, par yield)

Nella figura riportata di seguito sono rappresentate le curve dei tassi a pronti (SR), a termine (IF) e dei rendimenti alla pari, o par (PY), sia con riferimento ai titoli di Stato AAA (Bund tedeschi, prevalentemente) sia al complesso dei titoli di Stato emessi dai paesi appartenenti all’area euro, fornite dalla BCE (e disponibili su questa pagina web) al 18 aprile 2017.

yc.dat.all <- yield_latest %>%
  select(1, 8, 9, 10, 35)
yc.dat.all <- yc.dat.all %>% 
  filter(grepl('SR_|IF_|PY_', Key))
yc.dat.all$Rating <- str_extract(yc.dat.all$Key, '_A.SV_|_C.SV_')
yc.dat.all$Rating <- str_replace_all(yc.dat.all$Rating, '_A.SV_', 'AAA')
yc.dat.all$Rating <- str_replace_all(yc.dat.all$Rating, '_C.SV_', 'All bonds')
yc.dat.all$Key <- str_extract(yc.dat.all$Key, 'SR_.*|IF_.*|PY_.*')
yc.dat.all$Type <- factor(str_extract(yc.dat.all$Key, 'SR|IF|PY'), levels = c('SR', 'IF', 'PY'))
yc.dat.all$Maturity <- str_replace_all(yc.dat.all$Key, '(SR|IF|PY)_', '')
y <- as.numeric(str_extract(yc.dat.all$Maturity, "\\d+(?=Y)"))
y[is.na(y)] <- 0.0
m <- as.numeric(str_extract(yc.dat.all$Maturity, "\\d+(?=M)"))
m[is.na(m)] <- 0.0
m <- m/12
M <- y + m
yc.dat.all$Maturity <- M
plall <- ggplot(yc.dat.all, aes(x = Maturity, y = `Observation value`, color = Rating))
plall + geom_point() + ylab("Tassi (percentuale)") + xlab("Vita residua") + facet_wrap( ~ Type, nrow = 1)
# ggsave(file = 'ECB_2017-04-18.png', dpi = 300, height = 6.0, width = 10.0)

La curva dei rendimenti per scadenza riportata nel primo grafico (SR per spot rates) a sinistra rappresenta la cosidetta curva dei rendimenti zero coupon estrapolata dai prezzi di mercato dei titoli (zero coupon e con cedola) negoziati sul mercato secondario, indica i tassi di mercato a pronti prevalenti nelle condizioni correnti di mercato.

Il secondo grafico, al centro, è la curva dei rendimenti impliciti a termine (IF, per instantenous forward) derivata dalla curva dei rendimenti spot zero coupon e indica il consenso di mercato riguardante le aspettative sui tassi spot attesi. Studi estesi alla maggior parte dei mercati obbligazionari internazionali hanno dimostrato che i tassi impliciti a termine non hanno un’elevata capacità previsiva e questo sembra contrastare con quanto è stato appena descritto e con l’attenzione significativa che gli operatori di mercato prestano ai tassi a termine. È necessario, invece, sottolineare che al contrario l’analisi sui tassi a termine consente di determinare un tasso di break-even, appunto il tasso implicito a termine, che divide le strategie degli operatori segmentandoli in rialzisti e ribassisti.

Il terzo grafico sulla destra è la curva dei rendimenti dei titoli alla pari (PY, per par yield) che rappresenta i tassi corrispodenti ai titoli di nuova emissione. È seguita soprattutto dagli operatori impegnati sui mercati primari (sia dei titoli di Stato sia dei titoli corporate).

La forma della curva e i suoi movimenti

Gli spostamenti verso l’alto e verso il basso della curva dei rendimenti descrivono condizioni di mercato che vengono tradizionalmente interpretate ricorrendo ad alcune teorie, a loro volta raggruppate all’interno di due macrocategorie, elaborate per fornire una spiegazione logica alle rilevazioni dei tassi desunte dai prezzi a cui sono scambiati i titoli sul mercato secondario.

Si tratta della teoria delle aspettative e della teoria dei mercati segmentati

  1. Le teorie delle aspettative, a sua volta suddivisa in:
    1. La teoria delle aspettative pure;
    2. La teoria della preferenza per la liquidità;
    3. La teoria degli habitat preferenziali.
  2. Le teorie dei mercati segmentati

Le teorie delle aspettative condividono un’ipotesi circa il comportamento dei tassi a termine (o forward, IF nel grafico che riporta le curve dei rendimenti per scadenza della BCE) e ipotizza che questi ultimi, per i titoli a lunga scadenza, siano in relazione alle aspettative di mercato circa i tassi di interesse a breve futuri. Comunque, queste tre teorie differiscono su come altri fattori possono inlfuenzare i tassi a termine. La teoria delle aspettative pure sostiene che non esistano altri fattori ad influenzare i tassi a termine se non i tassi di interesse attesi futuri. Le teorie della liquidità e degli habitat preferenziali invece assumono che vi siano altri fattori ad influenzare i tassi a termine.

La teoria delle aspettative pure

La teoria delle aspettative pure ipotizza che i tassi a termine rappresentino esclusivamente i tassi a breve termine attesi. A questo modo l’intera struttura a termine incorpora le aspettative di aumento o riduzione dei tassi a breve attesi durante il periodo di riferimento rilevante. Gli investitori, anticipando i movimenti attesi nei tassi di interesse futuri, sposterebbero la domanda e l’offerta verso le scadenze a breve rispettivamente in caso di aumento atteso e di riduzione attesa dei tassi di interesse a breve in modo tale che i rendimenti attesi di tutti i titoli siano uguali per tutti i periodi di investimento (Garbade 1989). Purtroppo, come è già stato accennato, la curva dei rendimenti per scadenza ha una pendenza normalmente crescente ma questo empiricamente non viene riscontrato in aumenti tendenziali dei tassi di interesse.

La teoria della preferenza per la liquidità

Secondo la teoria delle aspettative pure gli investitori non considerano quindi i rischi associati con l’investire in obbligazioni: il rischio derivante dal detenere un’obbligazione aumenta all’aumentare della vita residua per cui gli investitori domanderebbero un premio per assumersi il rischio di investire in obbligazioni con vite residue più lunghe. In particolare, i tassi a termine dovrebbero riflettere le aspettative sui tassi di interesse attesi oltre ad un premio di liquidità che dovrebbe aumentare all’aumentare delle scadenze. Per questo motivo questa teoria si chiama teoria della preferenza per la liquidità secondo cui i tassi a termine incorporano un premio di liquidità dato da un tendenziale eccesso di offerta di titoli con scadenze superiori all’anno (Garbade 1989). A questo modo una curva crescente potrebbe comunque nascondere aspettative di aumento, di parità o addirittura di flessione nei tassi di interesse a pronti attesi.

La teoria degli habitat preferenziali

Nella terza teoria delle aspettative, la forma nella struttura a termine dei rendimenti obbligazionari è determinata sia dalle attese sui tassi a pronti sia da un premio per il rischio, positivo o negativo, tale da indurre gli investitori a spostarsi dai propri segmenti di scadenze (habitat) preferiti. Secondo la teoria degli habitat preferenziali, ipotizza che siano necessari dei premio per il rischio per indurre un investitore a ridurre, o ad aumentare, la scadenza dei titoli nel proprio portafoglio a periodi di tempo inferiori, o maggiori, di quelli del proprio orizzonte temporale operativo. La teoria ipotizza che gli investitori siano avversi al rischio, per cui accetteranno delle discrepanze tra le scadenze dei titoli in portafoglio e quelle dei propri orizzonte temporali operatici solo se i premi al rischio saranno sufficienti a colmare il loro grado di avversione al rischio.

La teoria dei mercati segmentati

Nella teoria dei mercati segmentati gli investitori, come in quella degli habitat preferenziali, hanno dei segmenti di scadenza preferiti imposti dalla natura delle proprie attività o delle proprie passività, sia si tratti di disposizioni regolamentari o che siano auto imposie. Gli investitori sembrano dunque del tutto indifferenti di fronte ai rendimenti offerti dai titoli con scadenze diverse ai loro orizzonti temporali operativi. Gli investitori, però, non sono disposti a spostarsi su scadenze diverse per avvantaggiarsi dei premi al rischio disponibili e di conseguenza la forma, e la pendenza, nella curva dei rendimenti per scadenza è data unicamente dall’equilibrio di domanda e offerta nei rispettivi segmenti di scadenza e non da aspettative sui tassi attesi o premi di rischio domandati. La segmentazione del mercato dipende dalla preferenza degli investitori di minimizzare la loro esposizione al rischio.

Di seguito sono riportati due grafici che descrivono gli spostamente della curva dei rendimenti dal 2 gennaio 2017 al 18 aprile 2017.

yield_current_year_euro <- read_csv("C:/.../yield_current_year_euro.csv")
yc.dat.all.cy <- yield_current_year_euro %>%
  select(1, 8, 9, 10, 35)
yc.dat.all.cy <- yc.dat.all.cy %>% 
  filter(grepl('SR_|IF_|PY_', Key))
# nrow(yc.dat.all.cy)
yc.dat.all.cy$Rating <- str_extract(yc.dat.all.cy$Key, '_A.SV_|_C.SV_')
yc.dat.all.cy$Rating <- str_replace_all(yc.dat.all.cy$Rating, '_A.SV_', 'AAA')
yc.dat.all.cy$Rating <- str_replace_all(yc.dat.all.cy$Rating, '_C.SV_', 'All bonds')
yc.dat.all.cy$Key <- str_extract(yc.dat.all.cy$Key, 'SR_.*|IF_.*|PY_.*')
yc.dat.all.cy$Type <- factor(str_extract(yc.dat.all.cy$Key, 'SR|IF|PY'), levels = c('SR', 'IF', 'PY'))
yc.dat.all.cy$Maturity <- str_replace_all(yc.dat.all.cy$Key, '(SR|IF|PY)_', '')
y <- as.numeric(str_extract(yc.dat.all.cy$Maturity, "\\d+(?=Y)"))
y[is.na(y)] <- 0.0
m <- as.numeric(str_extract(yc.dat.all.cy$Maturity, "\\d+(?=M)"))
m[is.na(m)] <- 0.0
m <- m/12
M <- y + m
yc.dat.all.cy$Maturity <- M
# yc.dat.all.cy
plall.cy <- ggplot(yc.dat.all.cy, aes(x = Maturity, y = `Observation value`, color = `Time period or range`))
plall.cy + geom_line(alpha = 1/3) + ylab("Rates (percent)") + facet_wrap( ~ Type, nrow = 1)
# ggsave(file = 'ECB_CY_2017-04-18.png', dpi = 300, height = 6.0, width = 10.0)
since.by <- yc.dat.all.cy %>% 
  filter(`Time period or range` == '2017-01-02' | `Time period or range` == '2017-04-13')
pl.by <- ggplot(since.by, aes(x = Maturity, y = `Observation value`,color = `Time period or range`))
pl.by + geom_point() + ylab("Rates (percent)") + facet_wrap( ~ Type, nrow = 1)
# ggsave(file = 'ECB_CY_2017-04-18_s.png', dpi = 300, height = 6.0, width = 10.0)

Share Button
Posted in Economics, R-stats
Tags: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

+ 17 = 19

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tweets