Tag

retorno simples Archives - Análise Macro

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

By | mercado financeiro

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.
________________________

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

Assinar Gratuitamente