terça-feira, 25 de novembro de 2014

Já falamos um pouco sobre o tópico de finanças, com foco no mercado de ações, nos posts da categoria Finance. Inclusive, mostramos um código em Python sobre como capturar dados de cotações de ações no post Value Investing baseado em Joel Greenblatt, Python e MongoDB.

Inauguramos hoje definitivamente a seção Finance aqui no blog e traremos aplicações de manipulação de dados das ações em bolsa, com foco no R e em Python. Também traremos posts sobre Finanças Computacionais e Econometria, voltadas para estas duas linguagens.

Quando falamos em R, talvez a principal biblioteca para a manipulação de dados de cotações das ações seja a quantmod. Com ela, é possível que rapidamente façamos a extração das informações e o tratamento dos dados. Ela não é uma biblioteca para análise estatística, ou seja, devemos integrar outros códigos e bibliotecas se desejarmos uma análise mais apurada dos dados, ou mesmo o desenvolvimento de um modelo matemático.

Começando do básico, vamos instalar e carregar a biblioteca, bem como já selecionar o primeiro período de análise, de 01.05.2014 à 21.11.2014

#Instala e chama a biblioteca quantmod
install.packages("quantmod")
library("quantmod")

#Seleção do período de análise
startDate = as.Date("2014-05-01")
endDate = as.Date("2014-11-21")

Agora, vamos criar o vetor com os nomes das ações que vamos estudar (Google e Petrobras) e utilizaremos a função getSymbols para realizar o download dos dados via YAHOO Finance.

#Seleção das ações
tickers <- c("GOOG","PETR4.SA")

#Download dos dados do período
?getSymbols
getSymbols(tickers, src = "yahoo", from = startDate, to = endDate)

Fazendo uma simples checagem dos dados

#Mostra os primeiros 5 registros para as ações da Petrobras
head(PETR4.SA,5)

#Analisando os dados de fechamento do Google
?Cl
head(Cl(GOOG),5)

Agora, vamos plotar o gráfico da Petrobras
#Gráfico de candlestick da Petrobras
candleChart(PETR4.SA)




#Adicionado as bandas de bollinger ao gráfico, com média de 20 períodos e 2 desvios
?addBBands
addBBands(n=20, sd=2)



#Adicionando o indicador ADX, média 11 do tipo exponencial
?addADX
addADX(n = 11, maType="EMA")



Vamos salvar os valores das bandas em uma variável e analisar os valores referentes as datas mais recentes

valorBollinger <- BBands(Cl(PETR4.SA),n=20, sd=2)
tail(valorBollinger,5)

O resultado desta última linha mostra, respectivamente, o valor da banda inferior, da média móvel, da banda superior e da largura das bandas.

O download do código completo está em nosso repositório Computational Finance - quantmod_Intro.R.

Um abraço e até o próximo post!


0 comentários:

Postar um comentário