B3 - Vale ON - VALE3 - 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 Vale ON (VALE3), nos anos de 2020 e 2021, conforme obtidas na página Séries Históricas da B3 S.A. – Brasil, Bolsa, Balcão (ex BM&F BOVESPA), corrigidas devido a proventos (juros e dividendos) e bonificações. A linha tracejada vertical azul mostra a data dos proventos.

B3 - Vale ON - VALE3 - Série Histórica - 2020-2021
B3 - Vale ON - VALE3 - 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 b3vale3cotacoes.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('b3vale3cotacoes.R')
#
# Gerar um gráfico do histórico das ações da
# Vale (VALE3) negociadas na 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/vale3.sqlite")

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

qry <- "SELECT DATAPREG, PREULT FROM vale3 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-09-20", "2021-03-04", "2021-06-23"))

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 - Vale - VALE3 (",
    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")

# Gravar o gráfico no disco
ggsave(
  "~/doctec/static/img/b3/b3vale3cotacoes.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.