Extraindo outros dados do mercado de ações Usando novamente a função getSymbols mas com alguns comandos adicionais (“SYMBOL”, src = “SOURCE”, de = “AAAA-MM-DD”, para = “AAAA-MM-DD”)

Alguns fontes para colocar no comando src são: yahoo, google, oanda etc.

Primeiramente será extraido o Bombay Stock Exchange Data usando fonte de finanças yahoo. Índice / símbolo da bolsa de valores de Bombaim - BSESN.

Analise dos dados de um mês da Bolsa de Bombaim.

library(quantmod)
## Loading required package: xts
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## ################################### WARNING ###################################
## # We noticed you have dplyr installed. The dplyr lag() function breaks how    #
## # base R's lag() function is supposed to work, which breaks lag(my_xts).      #
## #                                                                             #
## # If you call library(dplyr) later in this session, then calls to lag(my_xts) #
## # that you enter or source() into this session won't work correctly.          #
## #                                                                             #
## # All package code is unaffected because it is protected by the R namespace   #
## # mechanism.                                                                  #
## #                                                                             #
## # Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning.  #
## #                                                                             #
## # You can use stats::lag() to make sure you're not using dplyr::lag(), or you #
## # can add conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop   #
## # dplyr from breaking base R's lag() function.                                #
## ################################### WARNING ###################################
## Loading required package: TTR
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
getSymbols("PETR4.SA", src = "yahoo", from="2023-01-03", to= "2023-3-10")
## [1] "PETR4.SA"
#View(PETR4.SA)

Aqui está a tabela da PETR4.SA(em objeto xts) Dados de Saída. Nesta tabela pode ser vista as diferentes colunas com dados para Open, High, Low, Close, Volume & Ajusted Stock Price.

High (Alta) refere-se ao preço mais alto da ação tocada no mesmo dia, Low (Baixa) refere-se ao preço mais baixo a ação foi negociada no mesmo dia, Close (Fechar) refere-se ao preço de fechamento daquele estoque específico e o Volume (Volume) referem-se ao número de ações negociadas que dia.

Gráficos de Saída.

chartSeries(PETR4.SA)

chart_Series(PETR4.SA)

chart_Series(PETR4.SA,type = "candlesticks")

Analisando dados de um ano da BOLSA da Petrobras

getSymbols("PETR4.SA",src="yahoo" , from ="2022-03-23", to = Sys.Date())
## Warning: PETR4.SA contains missing values. Some functions will not work if
## objects contain missing values in the middle of the series. Consider using
## na.omit(), na.approx(), na.fill(), etc to remove or replace them.
## [1] "PETR4.SA"
chart_Series(PETR4.SA,type = "candlesticks")

Podemos fazer o download dos dados dos ativos PETR4.SA e PETR3.SA por meio do seguinte código:

#Cria um novo ambiente para armazenar os dados
stockData <- new.env() 
 
#Especifica as datas de interesse
startDate = as.Date("2021-01-01") 
endDate = as.Date("2022-12-31")
#Obtêm os dados do ativo PETR4 e PETR3
ativos<-c("PETR4.SA","PETR3.SA")
getSymbols(ativos, src="yahoo",from=startDate,to=endDate)
## [1] "PETR4.SA" "PETR3.SA"

No comando acima, os dados dos ativos PETR4.SA e PETR3.SA são obtidos para as datas 01/01/2021 até 31/12/2022. A fonte desses dados é o Yahoo Finance. É possível, utilizar outras fontes como o Google Finance nesse caso basta trocar a opção src=“yahoo” pela opção src=“google”.

#Plota a série temporal dos preços de fechamento
plot.xts(PETR4.SA$PETR4.SA.Close,major.format="%b/%d/%Y",
         main="PETR4.SA.",ylab="Close price.",xlab="Time")

#Calcula o log-retorno.
diffPETR4.SA<-diff(log(PETR4.SA))
 
#Plota a série temporal dos preços de fechamento
plot.xts(diffPETR4.SA$PETR4.SA.Close,major.format="%b/%d/%Y",
         main="PETR4.SA.",ylab="Log-return Close price.",xlab="Time")

Pode-se trabalhar inclusive com um subsets de dados para uma determinada janela:

#Examinando apenas um mês de dados.
petrSubset<-  window(diffPETR4.SA, start = as.Date("2022-05-01"), 
                     end = as.Date("2022-05-31"))

Comparar a valorização das moedas

get <- getFX('USD/BRL' , from = '2022-08-01')
## Warning in doTryCatch(return(expr), name, parentenv, handler): Oanda only
## provides historical data for the past 180 days. Symbol: USD/BRL
chart <- chartSeries(USDBRL)

#addBBands()