Módulos do R para a Análise de Dados Financeiros

PPGE / UFSC

Marcelo S. Perlin

EA-UFRGS

2024-05-17

Objetivos da palestra

  • Apresentar as plataformas R e o RStudio para a pesquisa científica;
  • Apresentar um pequeno conjunto de pacotes voltados ao mercado financeiro local;
  • Apresentar exemplos de importação de dados de diferentes pacotes;

O que é o R

O R é uma linguagem de programação voltada para a resolução de problemas estatísticos e para a visualização gráfica de dados.

Autores: Ross Ihaka e Robert Gentleman (The University of Auckland), criada em 1993

Funcionalidade: R é sinônimo de programação voltada à análise de dados

Custo: O R é totalmente livre e disponível em vários sistemas operacionais.

Por que Escolher o R

  • Plataforma madura, estável, e continuamente suportada.
  • Aprender a linguagem do R é fácil.
  • Os pacotes do R permitem as mais diversas funcionalidades.
  • O R tem compatibilidade com diferentes linguagens e sistemas operacionais.
  • O R é totalmente gratuito!

Módulos do R

  • Renda Variável – ações, FIIs e derivativos
  • Renda Fixa – Títulos públicos, curva de juros
  • Dados Econômicos – BCB-SGS

Renda Variável (1)

  • Preços de ações, FIIs e índices

Renda Variável (2)

Renda Fixa

Dados Econômicos

Exemplos de código

  1. yfR
  2. GetTDData
  3. GetDFPData2
  4. rb3

Módulo yfR

Yahoo finance oferece ampla gama de preços ajustados de ações e íncides de ações negociadas no mundo inteiro

Cuidado com dados do Yahoo Finance

  • Ticker para o Brasil possuem final .SA: PETR4.SA
  • Preços são somente ajustados a splits!
  • Cuidado com uso de preços de ações em pesquisa científica
  • Preços de índices são confiáveis.
Rows: 4,743
Columns: 11
$ ticker                 <chr> "GGBR4.SA", "GGBR4.SA", "GGBR4.SA", "GGBR4.SA",…
$ ref_date               <date> 2018-01-02, 2018-01-03, 2018-01-04, 2018-01-05…
$ price_open             <dbl> 9.960317, 10.238095, 10.341269, 10.833333, 10.6…
$ price_high             <dbl> 10.29365, 10.59524, 10.93651, 11.07143, 11.0714…
$ price_low              <dbl> 9.960317, 10.190476, 10.341269, 10.587301, 10.5…
$ price_close            <dbl> 10.29365, 10.27778, 10.83333, 10.69841, 11.0714…
$ volume                 <dbl> 10790010, 16546950, 34724214, 21679938, 1934377…
$ price_adjusted         <dbl> 6.470328, 6.460349, 6.809560, 6.724751, 6.95921…
$ ret_adjusted_prices    <dbl> NA, -0.001542309, 0.054054469, -0.012454377, 0.…
$ ret_closing_prices     <dbl> NA, -0.001542014, 0.054054132, -0.012454253, 0.…
$ cumret_adjusted_prices <dbl> 1.0000000, 0.9984577, 1.0524288, 1.0393214, 1.0…

Módulo GetTDData

Dados para contratos de dívida soberana do Brasil estão disponíveis no site do Tesouro Direto website como planilhas do Excel.

Dados disponíveis

  • Tesouro Prefixado (LTN)
  • Tesouro Pós-Fixado (NTN-B Principal)
  • Tesouro Pós-Fixado com coupom (NTN-B)
  • Tesouro SELIC (LFT)

Módulo GetDFPData2

Sistema DFP (Demonstrativo Financeiros Padronizados) da B3 oferece dados financeiros de todas empresas negociadas em bolsa

Dados disponíveis

  • DRE - Demonstrativo de Resultado (anual)
  • BP - Balanço Patrimonial (anual)
  • DFC - Demonstrativo de fluxo de caixa (anual)
Rows: 2,601
Columns: 47
$ CNPJ               <chr> "08.773.135/0001-00", "11.396.633/0001-87", "12.091…
$ DENOM_SOCIAL       <chr> "2W ECOBANK S.A.", "3A COMPANHIA SECURITIZADORA", "…
$ DENOM_COMERC       <chr> "2W ECOBANK S.A.", "TRIPLO A  COMPANHIA SECURITIZAD…
$ DT_REG             <date> 2020-10-29, 2010-03-08, 2020-11-09, 1997-07-11, 19…
$ DT_CONST           <date> 2007-03-23, 2009-11-03, 2010-06-08, 1996-07-30, 19…
$ DT_CANCEL          <date> NA, 2015-12-18, NA, NA, NA, 2006-05-30, 1998-06-17…
$ MOTIVO_CANCEL      <chr> NA, "Cancelamento Voluntário - IN CVM 480/09", NA, …
$ SIT_REG            <chr> "ATIVO", "CANCELADA", "ATIVO", "ATIVO", "ATIVO", "C…
$ DT_INI_SIT         <date> 2020-10-29, 2015-12-18, 2020-11-09, 1997-07-11, 19…
$ CD_CVM             <dbl> 25224, 21954, 25291, 16330, 16284, 16349, 35, 16802…
$ SETOR_ATIV         <chr> "Energia Elétrica", "Securitização de Recebíveis", …
$ TP_MERC            <chr> NA, NA, "BOLSA", NA, NA, NA, NA, NA, NA, NA, NA, NA…
$ CATEG_REG          <chr> "Categoria A", "Categoria B", "Categoria A", "Categ…
$ DT_INI_CATEG       <date> 2020-10-29, 2010-03-08, 2020-11-09, 2011-04-28, 20…
$ SIT_EMISSOR        <chr> "FASE OPERACIONAL", "FASE PRÉ-OPERACIONAL", "FASE O…
$ DT_INI_SIT_EMISSOR <date> 2020-07-16, 2010-03-08, 2020-08-31, 2015-04-30, 19…
$ CONTROLE_ACIONARIO <chr> "PRIVADO", "PRIVADO", "PRIVADO", "PRIVADO", "PRIVAD…
$ TP_ENDER           <chr> "SEDE", "SEDE", "SEDE", "SEDE", "SEDE", "SEDE", "SE…
$ LOGRADOURO         <chr> "Avenida Doutor Chucri Zaidan, 1240 - Ed Morumbi Go…
$ COMPL              <chr> "Torre A-27º- SL 21", "sala 703", "SL 1401, 1501", …
$ BAIRRO             <chr> "Vila São Francisco", "Centro", "Botafogo", "Barra …
$ MUN                <chr> "SÃO PAULO", "RIO DE JANEIRO", "RIO DE JANEIRO", "R…
$ UF                 <chr> "SP", "RJ", "RJ", "RJ", "RJ", "RJ", "RS", "RJ", "SP…
$ PAIS               <chr> "BRASIL", "BRASIL", "BRASIL", "BRASIL", "BRASIL", "…
$ CEP                <dbl> 4711130, 20020000, 22250145, 22775003, 20020010, 22…
$ DDD_TEL            <chr> "11", "21", "21", "21", "21", "21", "51", "21", "11…
$ TEL                <dbl> 39579400, 22338867, 21455555, 25560809, 38043700, 2…
$ DDD_FAX            <chr> "11", "21", NA, "21", "21", "21", "51", "21", NA, "…
$ FAX                <dbl> 39579499, 22338867, NA, 25560809, 38043480, 2196720…
$ EMAIL              <chr> "ri@2wecobank.com.br", "dri@3asec.com.br", "ri@3rpe…
$ TP_RESP            <chr> "DIRETOR DE RELAÇÕES COM INVESTIDORES", "DIRETOR DE…
$ RESP               <chr> "Adriano Fernandes Nascentes", "FELIPE MARQUES DA F…
$ DT_INI_RESP        <date> 2024-03-01, 2011-06-16, 2020-08-13, NA, 2022-05-06…
$ LOGRADOURO_RESP    <chr> "Av. Doutor Chucri Zaidan, nº 1.240, Torre A, 27ºan…
$ COMPL_RESP         <chr> "Sala 2.701", "SALA 703", "16º andar", NA, "51", "2…
$ BAIRRO_RESP        <chr> "Vila São Francisco", "CENTRO", "Botafogo", NA, "Ce…
$ MUN_RESP           <chr> "SÃO PAULO", "RIO DE JANEIRO", "RIO DE JANEIRO", NA…
$ UF_RESP            <chr> "SP", "RJ", "RJ", NA, "RJ", "RJ", "RS", "MG", "SP",…
$ PAIS_RESP          <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ CEP_RESP           <dbl> 4707000, 20020000, 22250145, NA, 20020010, 22290160…
$ DDD_TEL_RESP       <chr> "11", "21", "21", NA, "21", "21", "51", "31", "21",…
$ TEL_RESP           <dbl> 39579400, 22338867, 34755555, NA, 38043700, 2196720…
$ DDD_FAX_RESP       <chr> NA, "21", NA, NA, NA, "21", "0051", "31", "0021", "…
$ FAX_RESP           <dbl> NA, 22338867, NA, NA, NA, 21967201, 3743595, 327372…
$ EMAIL_RESP         <chr> "ri@2wecobank.com.br", "juridico@triploasec.com.br"…
$ CNPJ_AUDITOR       <chr> "52.803.244/0001-06", "60.525.706/0001-07", "57.755…
$ AUDITOR            <chr> "KPMG AUDITORES ASSOCIADOS", "MOORE STEPHENS LIMA L…
[1] "DF Consolidado - Balanço Patrimonial Ativo"  
[2] "DF Consolidado - Balanço Patrimonial Passivo"
[3] "DF Consolidado - Demonstração do Resultado"  
[4] "DF Individual - Balanço Patrimonial Ativo"   
[5] "DF Individual - Balanço Patrimonial Passivo" 
[6] "DF Individual - Demonstração do Resultado"   

Módulo rb3

Diversos dados do mercado financeiros estão disponíveis no site da B3, porém com difícil acesso. Pacote rb3 realiza o webscrapping de diversos dados históricos do site.

Dados disponíveis

  • equities/stocks
  • futures
  • FII (Reits)
  • options
  • BDRs
  • historical yield curves (calculated from futures contracts)
  • B3 indexes composition

Livros do R

Análise de Dados Financeiros e Econômicos com o R

Visualização de Dados com o R

Referências

Freitas, Wilson. 2024. Rbcb: R Interface to Brazilian Central Bank Web Services. https://github.com/wilsonfreitas/rbcb.
Freitas, Wilson, and Marcelo Perlin. 2023. Rb3: Download and Parse Public Data Released by B3 Exchange. https://github.com/ropensci/rb3.
Perlin, Marcelo. 2022. GetBCBData: Imports Datasets from BCB (Central Bank of Brazil) Using Its Official API. https://github.com/msperlin/GetBCBData/.
———. 2023. yfR: Downloads and Organizes Financial Data from Yahoo Finance. https://github.com/ropensci/yfR.
———. 2024. GetTDData: Get Data for Brazilian Bonds (Tesouro Direto). https://github.com/msperlin/GetTDData/.
Perlin, Marcelo S. 2023. GetQuandlData: Fast and Cached Import of Data from Quandl Using the Json API. https://github.com/msperlin/GetQuandlData/.
Perlin, Marcelo, and Guilherme Kirch. 2022. GetFREData: Reading FRE Corporate Data of Public Traded Companies from B3. https://github.com/msperlin/GetFREData/.
———. 2023. GetDFPData2: Reading Annual and Quarterly Financial Reports from B3. https://github.com/msperlin/GetDFPData2/.
Raymond McTaggart, Gergely Daroczi, and Clement Leung. 2021. Quandl: API Wrapper for Quandl.com. https://github.com/quandl/quandl-r.