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

Como tratar dados no Python? Parte 5: renomeando colunas

Como dar novos nomes significativos para as colunas em uma tabela de dados usando Python? Neste tutorial mostramos os métodos de renomeação de colunas disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Como tratar dados no Python? Parte 4: operações por grupos

Como mensalizar dados diários? Ou como filtrar os valores máximos para diversas categorias em uma tabela de dados usando Python? Estas perguntas são respondidas com os métodos de operações por grupos. Neste tutorial mostramos estes métodos disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

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.