SAUDAÇÕES!

Seja bem vindo à página do professor Pedro Albuquerque. Para saber mais sobre meu currículo, disciplinas ministradas e interesses de pesquisa, navegue no menu disponível no topo da página.

quinta-feira, 23 de agosto de 2012

Pacote quantmod - Análise quantitativa de séries financeiras.


O pacote quantmod é um pacote projetado para ajudar na análise quantitativa, desenvolvimento de testes e implantação de modelos de negócios com base estatística.

Após instalar o pacote, podemos fazer o download dos dados dos ativos PETR4.SA e PETR3.SA por meio do seguinte código:

#Habilita o pacote quantmod
library(quantmod)

#Cria um novo ambiente para armazenar os dados
stockData <- new.env() 

#Especifica as datas de interesse
startDate = as.Date("2010-01-01") 
endDate = as.Date("2011-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)
No comando acima, os dados dos ativos PETR4.SA e PETR3.SA são obtidos para as datas 01/01/2010 até 31/12/2011. 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".
#Usa o comando head para mostrar as seis primeiras observações
head(PETR4.SA)

#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")
O comando acima produz o seguinte gráfico:
Usualmente, trabalha-se com a série diferenciada, ou seja, utiliza-se o log-retorno na forma: $\begin{array}{ll} r_{t}=&log\left(\frac{P_{t}}{P_{t-1}}\right)\end{array}$ onde $P_{t}$ é o preço do ativo no tempo $t$ e $log(.)$ é o logarítimo natural. O comado em R é escrito da seguinte forma:
#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")
Resultando no seguinte gráfico:
Pode-se trabalhar inclusive com um subconjunto de dados para uma determinada janela:
#Examinando apenas um mês de dados.
petrSubset<-  window(diffPETR4.SA, 
+start = as.Date("2011-05-01"), end = as.Date("2011-05-31"))
#Imprime os dados
petrSubset 

Um comentário:

  1. olá, vc sabe dizer se a versão 3.3.2 do R suporta a Quantmod library? não estou conseguindo. muito obrigado

    ResponderExcluir