B3 - Brasil, Bolsa, Balcão ON - B3SA3 - Série Histórica - 2020-2021

Este gráfico mostra a série histórica de cotações diárias do último negócio do papel, para as ações da Brasil, Bolsa, Balcão ON (B3SA3), nos anos de 2020 e 2021, conforme obtidas na página Séries Históricas da própria B3 S.A. – Brasil, Bolsa, Balcão (ex BM&F BOVESPA), corrigidas devido a proventos (juros e dividendos) e bonificações. As linhas tracejadas verticais azuis mostram a data dos proventos, enquanto a linha tracejada vermelha mostra a data da bonificação.

B3 - Brasil, Bolsa, Balcão ON - B3SA3 - Série Histórica - 2020-2021
B3 - Brasil, Bolsa, Balcão ON - B3SA3 - Série Histórica - 2020-2021
Banco de Dados

Foi utilizado o banco de dados SQLite semelhante ao mostrado na página 7. Mercado financeiro, gerado pelo programa b3b3sa3cotacoes.py

Programa

Abaixo está mostrado o código do programa, escrito em R, que gera o gráfico, mas antes de ser executado as bibliotecas utilizadas precisam ser instaladas.

#
# source('b3b3sa3cotacoes.R')
#
# Gerar um gráfico do histórico das ações da B3
# Brasil, Bolsa, Balcão (B3SA3), negociadas na própria B3
#
# Bibliotecas
library(tidyverse)
library(lubridate)
library(gridExtra)
library(pracma)
library(ggsci)
library(ggrepel)
library(scales)
library(RSQLite)
library(DBI)

# Conectar ao banco de dados
con <- DBI::dbConnect(RSQLite::SQLite(),
                      "~/R/mercado/B3/b3sa3.sqlite")

# Consultas
tabelas <- paste("SELECT name ",
                 "FROM sqlite_master ",
                 "WHERE type = 'table' AND name NOT LIKE 'sqlite_%'")

qry <- "SELECT DATAPREG, PREULT FROM b3sa3 ORDER BY DATAPREG"

rs <- dbSendQuery(con, qry)
cot <- dbFetch(rs, n = -1)
dbHasCompleted(rs)
dbClearResult(rs)

# Desconectar do banco de dados
dbDisconnect(con)

# Converter caractere em data
cot <- cot %>% mutate(DATAPREG = as_date(DATAPREG))

# Limites do gráfico
liminf <- floor(min(cot$PREULT)) - 1
limsup <- ceiling(max(cot$PREULT)) + 1

# Proventos
proventos <- as_date(
  c(
    "2020-03-25",
    "2020-06-30",
    "2020-09-24",
    "2021-03-24",
    "2021-03-26",
    "2021-06-29",
    "2021-09-28"
  )
)

plot_cot <- ggplot(cot, aes(x = DATAPREG, y = PREULT)) +
  geom_ribbon(aes(ymin = liminf, ymax = PREULT),
              fill = "#69b3a2",
              alpha = 0.4) +
  geom_line(color = "#69b3a2", size = 1) +
  ggtitle(paste0(
    "B3 - Brasil, Bolsa, Balcão - B3SA3 (",
    min(cot$DATAPREG),
    " a ",
    max(cot$DATAPREG),
    ")"
  )) +
  xlab("Data do Pregão") +
  ylab("Cotação R$") +
  theme_minimal() +
  theme(
    legend.title = element_text(size = 14),
    legend.text = element_text(size = 12),
    legend.direction = "horizontal",
    legend.position = "top",
    panel.grid.major = element_line(
      size = 0.5,
      linetype = "solid",
      colour = "lightblue"
    ),
    panel.grid.minor = element_line(
      size = 0.3,
      linetype = "solid",
      colour = "lightblue"
    ),
    axis.text.x = element_text(
      size = 10,
      angle = 0,
      hjust = 0.5
    ),
    axis.text.y = element_text(size = 12),
    axis.title.x = element_text(size = 14),
    axis.title.y = element_text(size = 14),
    plot.title = element_text(size = 18),
    plot.subtitle = element_text(size = 16),
    plot.margin = unit(c(6, 12, 6, 6), "pt") # top, right, bottom, left
  ) +
  scale_y_continuous(limits = c(liminf, limsup)) +
  # Proventos
  geom_vline(xintercept = proventos,
             colour = "#5F559BFF",
             linetype = "longdash") +
  # Bonificações
  geom_vline(
    xintercept = as_date("2021-05-14"),
    colour = "#A20056FF",
    linetype = "longdash"
  )

# Gravar o gráfico no disco
ggsave(
  "~/doctec/static/img/b3/b3b3sa3cotacoes.png",
  plot_cot,
  device = png(),
  width = 11,
  height = 6.25,
  dpi = 72
)

dev.off()
Referências
Termos de Uso

O autor deste site não se responsabiliza, direta ou indiretamente, pela utilização de qualquer material apresentado. Este material é baseado na experiência pessoal do autor, obtida a partir de sites na Internet, pessoas, livros e outros materiais sobre este assunto, e deve ser visto apenas como uma base a partir da qual o leitor deve se aprofundar para desenvolver o seu próprio material. É recomendado a todos os leitores deste site estudarem bem este assunto antes de tomarem qualquer decisão porque, como se sabe, os riscos financeiros envolvidos no mercado acionário podem ser bastante elevados.