Como transformar preço de ações em retornos

Quando se fala em estudos financeiros, bem como formas de analisar investimentos, o retorno é a principal medida utiliza para se realizar cálculos e comparações de ativos ao longo do tempo. Existe inúmeros motivos para isso, tanto estatísticos, quanto pela própria teoria e prática de finanças. Hoje, iremos ensinar como transformar os preços de ações em retornos através do R.

Para quem não sabe, o retorno simples de um ativo é dado pela diferença de seu valor no tempo t e t-1 dividido pelo valor no tempo t-1, sendo R_t = (P_t - P_{t-k})/P_{t-k}.

Outro método de cálculo se dá através do Retorno Contínuo: r_t = \text{ln} (P_t/P_{t-k}).

library(tidyverse)
library(PerformanceAnalytics)
library(quantmod)

Para realizar esse cálculo através do R, vamos primeiro coletar o dados de forma reprodutível, utilizando o pacote {quantmod}. Iremos coletar os preços de fechamento de três empresas aleatórias e tratá-las de forma que estejam em um data frame da classe xts.

tickers = c('PETR4.SA', 'ABEV3.SA', 'MGLU3.SA')



prices = getSymbols(tickers, src='yahoo',
                    from='2021-01-01',
                    warning=FALSE) %>%
  map(~Ad(get(.))) %>%
  reduce(merge) %>%
  `colnames<-` (tickers)

Após coletar e tratar os dados, podemos calcular os retornos através da função do pacote {PerformanceAnalytics}, chamada Return.calculate(). É necessário somente o data frame da classe xts do preço dos ativos e especificar o método de calculo dos retornos. No caso, utilizaremos "discrete" para o retorno simples e "log" para o retorno contínuo.

# Calcula os retornos discretos
returns_discrete <- Return.calculate(prices,
                            method = "discrete") %>% 
  na.omit()



# Calcula os retornos contínuos
returns_log <- Return.calculate(prices,
                            method = "log") %>% 
  na.omit()

Podemos plotar os retornos dos nossos ativos.

plot(returns_discrete,
     legend.loc = "topleft",
     main = "Retorno Simples de ativos selecionados")

Podemos também visualizar o retorno cumulativo ao longo do tempo.

chart.CumReturns(returns_log, 
                 legend.loc = "topleft",
                 main = "Retorno Acumulado de ativos selecionados")

________________________

(*) 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 selecionar variáveis para modelos de previsão no Python?

Em oposição à crença popular, grande parte dos modelos de machine learning não produzem previsões magicamente. É papel do cientista de dados executar uma boa engenharia de variáveis para não cair no clássico problema de “garbage in, garbage out” (GIGO) em aprendizado de máquina. Neste sentido, aprender a fazer uma boa seleção de variáveis é fundamental e neste artigo exploramos algumas possibilidades práticas usando o Python.

Resultado IPCA-15 - Novembro/2024

A Análise Macro apresenta os resultados do IPCA-15 de Novembro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Resultado PNADc Trimestral - 3° Trimestre/2024

A Análise Macro apresenta os resultados da PNADc Trimestral do 3º trimestre de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

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.