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"))
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()