Escolha uma Página

Uso do Software R em Ciência de Dados em Finanças & Introdução à Análise de Ações com R

A linguagem de programação R é uma das mais recentes ferramentas de ponta. Hoje, milhões de analistas, pesquisadores e marcas como Facebook, Google, Bing, Accenture, Wipro estão usando R para resolver problemas complexos. Os aplicativos R não estão limitados a apenas um setor, podemos ver a programação R em – bancos, comércio eletrônico, finanças e muito mais.

Basicamente, a linguagem R é um programa de código aberto, orientada por linha de comando mantido pela equipe de desenvolvimento do núcleo R, link do site disponível em https://www.r-project.org/ . Além disso, a linguagem R é bastante usada para realizar operações estatísticas e mineração de dados. O download do programa pode ser feito aqui utilizando qualquer um dos mirrors. Recomendo também a instalação do RStudio que é uma interface com recursos adicionais para o R.

O software R fornece um conjunto estatístico avançado capaz de realizar todas as tarefas financeiras necessárias. Com a ajuda do R, as instituições financeiras são capazes de realizar a medição do risco negativo, ajustar o desempenho do risco e utilizar visualizações como gráficos de velas, gráficos de densidade, gráficos de rebaixamento, etc. O R também fornece ferramentas para médias móveis, autorregressão e análise de séries temporais que formam o cerne das aplicações financeiras.

As indústrias financeiras também estão aproveitando os processos estatísticos de séries temporais de R para modelar o movimento de seu mercado de ações e prever os preços das ações. O R também fornece recursos para mineração de dados financeiros por meio de seus pacotes como quantmod, pdfetch, TFX, pwt, etc. O R facilita a extração de dados de ativos online. Com a ajuda do RShiny, você também pode demonstrar seus produtos financeiros por meio de visualizações vívidas e envolventes.

Assim como as instituições financeiras, os setores bancários usam R para modelagem de risco de crédito e outras formas de análise de risco. Os bancos fazem uso intenso do Mortgage Haircut Model, que permite assumir a propriedade em caso de inadimplência. A modelagem do corte de hipoteca envolve a distribuição do preço de venda, a volatilidade do preço de venda e o cálculo do déficit esperado. Para esses propósitos, o R é frequentemente usado junto com ferramentas proprietárias como o SAS. O R também é usado em conjunto com o Hadoop para facilitar a análise da qualidade do cliente, segmentação do cliente e retenção.

Aplicação Prática do R em Finanças – Introdução à Análise de Ações com R

Para mostrar o poder analítico do software R, aproveitando este item envolvendo finanças, vamos fazer uma análise, utilizando o pacote “quantmod”, envolvendo análise técnica de uma ação.

A análise de ações e investimentos é um tema que pode ser muito bem explorado na programação. Isso inclui a linguagem R, que já possui vasta literatura, pacotes e funções desenvolvidas no tema. Neste post faremos uma breve introdução ao assunto utilizando os pacotes quantmod e forecast (para previsão). Esta aplicação de trading automatizado tem propósito didático para o contexto de finanças quantitativas com redes neurais. Portanto, não deve ser utilizado como tomada de decisão para investimentos pessoais do leitor.

install.packages(“quantmod”)
library(“quantmod”)

install.packages(“forecast”)
library(forecast)

A ação analisada será a da Apple, uma das maiores empresas de equipamentos eletrônicos e softwares do mundo, foi fundada em 1976, tendo como seus fundadores os estudantes Steve Jobs e Steve Wozniak. Os dados serão extraídos do site Yahoo Finance, conforme estudo de caso de Trading abordado anteriormente.

Acoes <- c(“AAPL”)

O período analisado será os últimos 5 anos.

Data_Inicio = as.Date(“2017-03-31”)
Data_fim = as.Date(“2022-03-31”)

getSymbols(Acoes, src = “yahoo”, from = Data_Inicio, to = Data_fim)

O argumento src = "yahoo" indica a fonte dos dados. Também podemos utilizar outras fontes como o Google FinanceFREDOanda, bancos de dados locais, CSVs e vários outros.

Podemos gerar o resumo dos dados com os seguintes comandos: head(), tail() e summary().

O comando “head” nos mostra os 6 primeiros registros/preços , “tail” nos mostra os 6 últimos registros/preços e o comando “summary” nos mostra algumas estatísticas descritivas básicas como a o intervalo de máximos e mínimos, média e mediana. São 6 colunas com: preço de abertura, preços máximo e mínimo do dia, preço de fechamento, volume de transações e preço ajustado. Obtendo como resposta:

Criando Gráficos para Análise Técnica Básica

A função chartSeries() é usada para gerar o gráfico  dos dados que foram coletados.

chartSeries(AAPL)

Também é possível usar um comando adicional subset() para usar apenas as informações referentes aos últimos 3 meses.

chartSeries(AAPL, subset=”last 3 months”)

Para tornar a análise ainda mais robusta podemos adicionar alguns indicadores técnicos, no caso vamos adicionar Bandas de Bollinger com a função addBBands().

chartSeries(AAPL)
addBBands()

As Bandas de Bollinger possuem relação com a volatilidade e são compostas por três curvas a curva central costuma ser uma média móvel dos preços e serve como base para as duas outras curvas. Frequentemente, quando as bandas de Bollinger se aproximam da média, o preço das ações de uma companhia sofrem consideráveis alterações. Assim, movimentos fora das bandas propõem a continuação da tendência. Altas e baixas fora das bandas, seguidas de altas e baixas dentro das bandas propõem uma reversão de tendência.  Neste caso, deve-se comprar quando o preço toca a banda Bollinger inferior e vender quando o preço toca a banda superior.

É possível plotar mais gráficos como o de retorno diário, utilizando a função diff().

diffAAPL <- diff(log(AAPL))

plot(diffAAPL$AAPL.Adjusted,
main = “Retorno díários – Apple”)





Autor: Bruno Santos
Criador do Blog Possui experiência em Finanças e Análise de Dados. É graduado em Administração de empresas, com foco em finanças pelo Centro Universitário Ibmec (2017) e faz MBA de Finanças Corporativas na FGV. Atualmente é Head Financeiro de uma Startup & Gestor de Fundos. Tem diversos artigos publicados em revistas e congressos nacionais e internacionais. Possui experiência e trabalhos realizados nas linguagens de programação R, PYTHON e VBA. Tem experiência nas áreas de Finanças, Métodos Quantitativos, Análise de Dados, Automação de Processos e Mercado Financeiro. Presta consultoria nas áreas de Finanças e Análise de Dados.

1 Comentário

  1. Avatar

    Thanks for your blog, nice to read. Do not stop.

    Responder

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *