Dados de ações no R: importando e visualizando gráficos - TC

TC School / Quant & Investimentos

Importando e visualizando dados de ações no R

25/08/2021 às 16:41

TC School

Dando sequência a série de introdução ao R, no artigo a seguir tratamos de como importar e visualizar dados de ações. Para ilustrar o estudo, aplicamos em nosso programa a evolução do preço das ações da Vale.

Nos textos anteriores, já elencamos as operações básicas e variáveis, bem como introduzimos ao programador iniciante como construir seu primeiro data frame. Para tornar a leitura mais fluída, separamos o texto nos seguintes tópicos:

  • Preparação
  • Importando os dados de ações com o BatchGetSymbols()
  • Visualizando gráficos de ações com o ggplot2
  • Animando gráficos de ações com o pacote gganimate
  • Visualizando gráficos de ações com o quantmod
  • Conclusão

dados

Preparação

Primeiro, vamos criar um script no R. Para isso, pressione “Ctrl + Shift + N” ou vá em File > New File > R Script.

programa r

Com o script criado, vamos instalar e importar os pacotes necessários.

Instalando os pacotes necessários

Para instalar pacotes, utilizaremos a função install.packages() e colocaremos no argumento o nome do pacote a ser instalado entre parênteses. Para baixar dados financeiros utilizaremos os pacotes BatchGetSymbols, GetQuandlDataQuantmod.

Para visualizar nossos dados financeiros utilizaremos os pacotes ggplot2 e gganimate.

install.packages(“BatchGetSymbols”)

install.packages(“quantmod”)

install.packages(“gganimate”)

install.packages(“ggplot2”)

install.packages(“ggthemes”)

Para rodar o código dentro do script basta selecionar tudo e apertar “Ctrl + Enter”

Abaixo preparei um breve resumo de cada um dos pacotes que instalamos!

BatchGetSymbols

Para baixar dados financeiros precisamos de alguma fonte e, com este pacote, conseguimos baixar dados financeiros do Yahoo Finance com uma certa facilidade. Por curiosidade, o batchgetsymbols foi criado pelo professor da UFRGS, Marcelo S. Perlin, em 2020.

Quantmod

O pacote quantmod foi criado para ser uma espécie de caixa de ferramentas do trader quantitativo. Ele reúne diversas funções que nos permitem importar, desenvolver e visualizar dados financeiros quantitativos.

Ggplot2

O pacote ggplot2 é o mais completo para a visualização de dados e com ele podemos criar uma infinidade de gráficos personalizados. 

Ggthemes

O pacote é uma extensão do ggplot2. Com ele podemos usar temas pré-prontos de alguns dos principais sites que fornecem gráficos. No ggthemes temos, por exemplo, temas inspirados nos gráficos do Google, The Economist e do FiveThirtyEight.

Gganimate

O gganimate funciona como uma “extensão” do ggplot2. Com ele conseguimos animar os gráficos criados no ggplot e personalizar ainda mais nossas visualizações. 

Com os pacotes instalados você terá uma saída no console parecida com esta:

r programação

Importando os pacotes instalados

Além de instalar os pacotes, precisamos importá-los no R. Para isso, usamos a função library() com o nome do pacote no argumento — dessa vez sem o parênteses.

library(BatchGetSymbols)

library(ggthemes)

library(quantmod)

library(gganimate)

library(ggplot2)

library(GetQuandlData)

library(quantmod)

library(gganimate)

library(ggplot2)

importando pacotes r

Importando os dados de ações com o BatchGetSymbols()

Primeiro, vamos importar os dados das ações com a função BatchGetSymbols(). Em seus argumentos colocaremos o ticker da ação e o período de interesse. O ticker colocaremos após o argumento “tickers” e as datas após os argumentos first.date e last.date. 

Neste primeiro exemplo vamos importar os dados da ação da Vale (VALE3) desde 01/01/2016. Lembrando que a função BatchGetSymbols nos retorna uma lista com dois data frames, então daremos a essa lista o nome de “df1”.

df1 <- BatchGetSymbols(tickers = ‘VALE3.SA’,first.date = ‘2016-01-01’,last.date = Sys.Date())

Três observações importantes sobre o código acima:
1) Como o ticker no Yahoo Finance termina em “.SA” temos que colocar no valor do argumento.
2) As datas são no formato “ano-mês-dia” ou “YYYY-MM-DD”
3) A função Sys.Date() nos retorna a data de hoje (presente no relógio do sistema)

Após rodar o código tivemos a seguinte saída:

saida dados

E a nossa lista (df1) já deve estar aparecendo no Global Environment:

preço ações vale

Se clicarmos na lupa no canto superior direito podemos explorar a lista:

importar lista r

Aqui vemos que o data frame “df.tickers” é o que possui as informações mais relevantes (preço de abertura, preço de fechamento, volume) para uma análise de dados financeiros.

Com isso, vamos acessar só esse data frame e armazená-lo em uma nova variável:

df2 <- df1$df.tickers

Feito isso, vamos usar a função View() e explorar nosso novo data frame df2:

> View(df2)

data frame

Veja que temos os preços de fechamento da ação da Vale desde 2016-01-04 (o mercado não funcionou nos dias 1, 2 e 3). Com esses preços, vamos construir o gráfico de preço das ações da Vale com o ggplot2.

Visualizando gráficos de ações com o ggplot2

Um gráfico de ações comum possui o preço de fechamento no eixo y e a data do respectivo preço no eixo x, algo como:

preço ações vale3

Fonte: TC Matrix

No caso do nosso data frame (df2) temos as colunas “price.close” e “ref.date” que representam os preços de fechamento das ações da Vale e suas respectivas datas. Com elas e a função ggplot() faremos o nosso gráfico.

Para facilitar o uso posterior, o gráfico será armazenado na variável “g”.

g <- ggplot(data = df2, aes(ref.date, price.close)) + geom_line()

  1. Note que a função aes() aceita os argumentos x e y, com isso, “ref.date” fica no eixo x e “price.close” no eixo y.
  2. A função geom_line() conecta os valores do nosso data frame em uma linha preta (por padrão). 

Nosso gráfico inicial ficou assim:

gráfico ações vale3

Ainda bastante incipiente, com apenas a evolução do preço das ações da Vale, sem título e com o nome das variáveis nos eixos. 

Para personalizar nosso gráfico, usaremos a função labs(), em seus argumentos, podemos adicionar nomes para os eixos, adicionar título, subtítulo e uma legenda para créditos.


g <- ggplot(data = df2, aes(ref.date, price.close)) + geom_line() + 

  labs(x = “Data”, y = “Preço de Fechamento”, title = “VALE3”, subtitle = “VALE S.A”,

       caption = Dados do Yahoo Finance)

> g

vale3 gráfico ações

Podemos personalizar também a cor da nossa linha. Aqui escolherei uma cor azul próxima a do gráfico do TC Matrix. Para trocar a cor, basta igualar o código da mesma em hexadecimal ao argumento “color” dentro da função geom_line(),

g <- ggplot(data = df2, aes(ref.date, price.close)) +geom_line(color=’#4364E8′) + labs(x = “Data”, y = “Preço de Fechamento”, title = “VALE3”, subtitle = “VALE S.A”,

       caption = “Dados do Yahoo Finance”)

> g

vale3 yahoo

Também podemos modificar o tema desse gráfico utilizando o pacote ggthemes(). Com ele, teremos uma série de temas prontos para escolhermos.

Modificando o tema do gráfico com o ggthemes()

Para modificar o tema do nosso gráfico basta adicionarmos a função do tema correspondente. Se dermos um “+ theme” e apertarmos a tecla Tab teremos uma série de temas para escolher:

tc school

Vamos então escolher o tema inspirado nos gráficos do Wall Street Journal, “theme_wsj()”:

> g <- ggplot(data = df2, aes(ref.date, price.close)) +geom_line(color=’#4364E8′) + labs(x = “Data”, y = “Preço de Fechamento”, title = “VALE3”, subtitle = “VALE S.A”,

       caption = “Dados do Yahoo Finance”) + theme_wsj()

> g

vale3 ações

Vamos testar também com o tema do google docs:
> g <- ggplot(data = df2, aes(ref.date, price.close)) +geom_line(color=’#4364E8′) + labs(x = “Data”, y = “Preço de Fechamento”, title = “VALE3”, subtitle = “VALE S.A”,

       caption = “Dados do Yahoo Finance”) + theme_gdocs()

> g

ações da vale

Feito! Para melhorar ainda mais, vamos animar o nosso gráfico com o gganimate.

Animando gráficos no R com o pacote gganimate

O pacote gganimate nos dá uma série de funções que nos permitem realizar “transições animadas”.

Como estamos fazendo um gráfico de ações, vamos usar a função transition_reveal() e colocar dentro do seu argumento a coluna “ref.date”.

Com isso, o gráfico será animado na ordem das datas presentes na coluna, deixando mais clara a evolução do preço da ação ao longo do tempo:

> g <- ggplot(data = df2, aes(ref.date, price.close)) +geom_line(color=’#4364E8′) + labs(x = “Data”, y = “Preço de Fechamento”, title = “VALE3”, subtitle = “VALE S.A”,

       caption = “Dados do Yahoo Finance”) + theme_wsj() + transition_reveal(ref.date)

>g

preço ações vale3

Feito! Agora que já sabemos importar e “plotar” um gráfico de uma ação na bolsa com o BatchGetSymbols e o ggplot2, vamos então aprender a plotar um gráfico com o pacote quantmod.

Visualizando gráficos de ações com o quantmod

O pacote quantmod possui funções que nos permitem visualizar gráficos mais “completos”.

No exemplo com o ggplot, conseguimos visualizar apenas duas colunas. Com a função chartSeries() do quantmod, podemos ver diversas informações juntas em nosso gráfico:

> getSymbols(“VALE3.SA”,src=”yahoo”, 

           first.date = ‘2016-01-01’,last.date = Sys.Date())

chartSeries(VALE3.SA, theme = “white”)

quantmod r

Podemos também alterar o horizonte temporal do gráfico e inclusive adicionar alguns indicadores técnicos como as Bandas de Bollinger e o RSI por exemplo:

Análise técnica: Bandas de Bollinger – TC

Índice de Força Relativa (IFR): como calcular e interpretar o indicador – TC

Visualizando o gráfico mensal:

chartSeries(VALE3.SA, subset = “last 1 months”)

gráfico dados ações

Visualizando o gráfico dos últimos 6 meses com as Bandas de Boellinger:

> chartSeries(VALE3.SA, subset = “last 6 months”)
> addBBands()

gráfico preço ações vale

Visualizando o gráfico dos últimos 6 meses com as Bandas de Bollinger e o RSI:

rsi r

> chartSeries(VALE3.SA, subset = “last 6 months”)
> addBBands()

> addRSI()

Conclusão

Chegamos ao fim de um longo artigo onde aprendemos a utilizar diversos pacotes novos.

Agora já sabemos como importar e visualizar dados de ações com propriedade, como vimos acima com o preço das ações da Vale. Nos próximos textos, vamos adentrar em algumas aplicações práticas do R em alguns dos nossos próximos artigos da série Introdução ao R. Fique ligado!

Baixe nosso aplicativo grátis! No TC você acompanha as principais notícias e cotações do mercado em tempo real, além de ter acesso a canais exclusivos para interagir com os melhores profissionais.

A gente também está no Instagram e no TikTok. Acompanhe!

Referências

Perlin, M. S. BatchGetSymbols: Downloads and Organizes Financial Data for Multiple Tickers. Porto Alegre, RS, 2020.
Perlin, M. S. Processamento e análise de dados financeiros e econômicos com o R (2nd ed.). Porto Alegre, RS, 2018.
Wickham, H. ggplot2: elegant graphics for data analysis. Springer New York, 2009.

Ryan, Jeffrey A., Joshua M. Ulrich, Wouter Thielen, Paul Teetor, Steve Bronder, and Maintainer Joshua M. Ulrich. Package ‘quantmod’. Available online: https://cran.r-project.org/web/packages/quantmod/quantmod.pdf (acesso em 22 de agosto de August 2021). 2020

Lucca Carlini
Lucca Carlini
Estudante de Economia na UFPE

TC School

A sua escola como investidor.

Disclaimer: Este material é produzido e distribuído somente com os propósitos de informar e educar, e representa o estado do mercado na data da publicação, sendo que as informações estão sujeitas a mudanças sem aviso prévio. Este material não constitui declaração de fato ou recomendação de investimento ou para comprar, reter ou vender quaisquer títulos ou valores mobiliários. O usuário não deve utilizar as informações disponibilizadas como substitutas de suas habilidades, julgamento e experiência ao tomar decisões de investimento ou negócio. Essas informações não devem ser interpretadas como análise ou recomendação de investimentos e não há garantia de que o conteúdo apresentado será uma estratégia efetiva para os seus investimentos e, tampouco, que as informações poderão ser aplicadas em quaisquer condições de mercados. Investidores não devem substituir esses materiais por serviços de aconselhamento, acompanhamento ou recomendação de profissionais certificados e habilitados para tal função. Antes de investir, por favor considere cuidadosamente a sua tolerância ou a sua habilidade para riscos. A administradora não conduz auditoria nem assume qualquer responsabilidade de diligência (due diligence) ou de verificação independente de qualquer informação disponibilizada neste espaço. Administradora: TradersNews Informação & Educação Ltda. Todos os direitos reservados.

TradersClub

O app essencial para investidores do mercado financeiro brasileiro.

Uma comunidade com milhares de investidores, ferramentas e serviços que vão ajudar você a investir melhor!

TradersClub