Comentário de Conjuntura

Coronavírus, Volatilidade e Ibovespa

By 4 de fevereiro de 2020 No Comments

A proliferação do coronavírus fez aumentar a volatilidade global em janeiro, tendo impactos negativos no mercado financeiro. Para ilustrar, vamos nesse Comentário de Conjuntura relacionar um índice de volatilidade, o VIX, com o índice Bovespa. Para isso, carregamos alguns pacotes como abaixo.


library(quantmod)
library(dplyr)
library(tidyr)
library(ggplot2)
library(scales)
library(png)
library(grid)
library(ggalt)

Carregados os pacotes, nós usamos a função getSymbols do pacote quantmod para coletar os dados do IBOV e do VIX. O primeiro é coletado a partir do yahoo finance, enquanto o segundo é coletado a partir do FRED.


ibov = getSymbols("^BVSP",src="yahoo")
vix = getSymbols('VIXCLS', src='FRED')
data1 = tibble(dates=as.Date(time(VIXCLS)), vix=VIXCLS)
data2 = tibble(dates=as.Date(time(BVSP)), ibov=BVSP$BVSP.Close)
data = inner_join(data1, data2, by='dates') %>%
drop_na()

Com os dados coletados, podemos gerar um gráfico como abaixo.


img <- readPNG('logo.png')
g <- rasterGrob(img, interpolate=TRUE)

data_select = data[data$ibov < 120000 & data$vix > 5 &
data$ibov > 90000 & data$vix < 30,]

ggplot(data, aes(x=vix, y=ibov/1000))+
geom_point(size=.6)+
geom_encircle(aes(x=vix, y=ibov/1000),
data=data_select,
color="blue",
size=2,
expand=0.08)+
geom_smooth(aes(x=vix, y=ibov/1000),
data=data_select,
method='lm',
se=FALSE,
colour='red',
size=.8)+
labs(x='VIX Index', y='Ibovespa (mil)',
title='Ibovespa vs. Volatilidade Global (VIX Index)',
caption='Fonte: analisemacro.com.br')+
theme(panel.background = element_rect(fill='#acc8d4',
colour='#acc8d4'),
plot.background = element_rect(fill='#8abbd0'),
axis.line = element_line(colour='black',
linetype = 'dashed'),
axis.line.x.bottom = element_line(colour='black'),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = 'bottom',
legend.background = element_rect((fill='#acc8d4')),
legend.key = element_rect(fill='#acc8d4',
colour='#acc8d4'),
plot.margin=margin(5,5,15,5))+
annotation_custom(g,
xmin=60,
xmax=80,
ymin=75, ymax=120)

E o gráfico...

Como esperado, há uma correlação negativa entre o IBOV e o VIX. Abaixo, mostramos que houve um aumento da volatilidade nas últimas semanas associado ao coronavírus.

(*) Mais sobre como modelar o VIX em nosso Curso de Econometria Financeira usando o R.

___________


(*) O script completo do Comentário estará disponível logo mais no Clube do Código.

Cadastre-se em nossa lista VIP para descontos e conteúdos exclusivos!

Quero participar
{"cart_token":"","hash":"","cart_data":""}