Analisando ações através de gráficos do pacote {PerformanceAnalytics}

A análise da performance e do risco de ativos financeiros se compreende em uma importante maneira de assegurar ganhos no mercado financeiro. O que acontece em diversos casos, é que muitos se embarram em uma complexidade de cálculos para realizar essa avaliação. Para isso, o pacote {PerformanceAnalytics} traz de forma simples e fácil, uma forma de realizar a avaliação de ativos financeiros. Neste texto, iremos dar exemplos de códigos na construção de gráficos úteis que o pacote oferece.

Primeiramente, devemos coletar os dados necessários para realizar a análise. Para isso, iremos utilizar o pacote {quantmod} para retirar os preços ajustados das ações preferenciais do Itaú, tomado aqui somente como exemplo de forma aleatória. Para Benchmark, iremos utilizar o IBOVESPA.


# Carrega os pacotes necessários
library(PerformanceAnalytics)
library(quantmod)
library(tidyverse)
## Coleta os Preços das ações utilizando a função getSymbols() do pacote {quantmod}

ticker <- c("ITUB4.SA", "^BVSP") # Ticker dos ativos que iremos utilizar
start = "2010-12-31" # Data de referência da série que iremos utilizar

getSymbols(ticker, 
           src= 'yahoo',
           from = start,
           auto.assign = TRUE,
           warnings =  FALSE)
## Transforma os preços em Retornos Mensais

itau <- ITUB4.SA$ITUB4.SA.Adjusted %>% 
  to.monthly(indexAt = "last",
             OHLC = FALSE) %>% 
  Return.calculate(method = "log") %>% 
  na.omit()


ibov <- BVSP$BVSP.Adjusted %>% 
  to.monthly(indexAt = "last", 
             OHLC = FALSE) %>% 
  Return.calculate(method = "log") %>% 
  na.omit()


returns <- merge(itau, ibov, all = TRUE) # Junta em um data.frame os retornos do Itaú e do IBOVESPA

O primeiro gráfico que podemos utilizar é o chart.RollingMean(). Ele permite que façamos uma visualização do retorno médio do ativo ao longo do tempo.

chart.RollingMean(itau) 

Logo em seguida, podemos utilizar a função charts.PerformanceSummary(), para visualizar a série do retorno acumulado dos ativos desde a data de referência, o retorno mensal dos ativos e o Drawndown.

charts.PerformanceSummary(returns,
                          colorset = redfocus,
                          legend.loc = "topleft"
                          )

Outro gráfico muito útil é o charts.RollingRegression(), que nos retorna um gráfico de regressão ao longo do tempo do seu ativo de escolha em relação a outro qualquer ativo ou Benchmark, permitindo visualizar o Alpha, o Beta e o R².

charts.RollingRegression(Ra = returns$ITUB4.SA.Adjusted,  # Retorno da variável dependente
                        Rb = returns$BVSP.Adjusted, # Retorno da variável independente
                        width = 12, # Período para aplicar a janela da rolling regression
                        colorset = redfocus, 
                        legend.loc = "topright"
                        )

Por fim, para visualizar de maneira geral o risco do ativo, podemos utilizar a função charts.RollingPerformance(), que exibe o desvio-padrão, o Índice de Sharpe, bem como também retorno anual dos ativos.

charts.RollingPerformance(R = returns, 
                          width = 12,
                          Rf = 0, # Retorno do ativo livre de risco. Utilizamos 0 aqui apenas para fins didáticos.
                          colorset = redfocus,
                          legend.loc = "topleft"
                          )

De forma rápida e condensada, conseguimos visualizar a performance e o risco dos ativos. O pacote também oferece diversos outros cálculos e gráficos para a avaliação de ativos financeiros.

________________________
(*) Para entender mais sobre Mercado Financeiro e aprender como realizar a coleta, tratamento e visualização de dados financeiros, confira nosso curso de R para o Mercado Financeiro.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise regional do mercado de trabalho com dados do CAGED usando Python

Os microdados dos CAGED fornecem informações detalhadas a nível de cidade, sexo, raça, nível de instrução, idade, salário e outras sobre os trabalhadores formais do Brasil, possibilitando ricas análises regionais de dados. Neste artigo mostramos como acessar, processar e analisar estes dados utilizando o Python.

Transfer Learning: mostrando porque o Python está na ponta do desenvolvimento

A aprendizagem por transferência (transfer learning) é o reuso de um modelo pré-treinado em um novo problema. Portanto, sua utilização torna-se um avanço enorme para a previsão de diferentes tipos de variáveis, principalmente para aquelas ordenadas no tempo. Mostramos nesta postagem o uso do Transfer Learning com o Python para o caso de Séries Temporais.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.