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

Coletando dados do Google Trends no R e no Python

Como acompanhar e antecipar tendências de mercado? Independentemente da resposta final, os dados são o meio. Neste artigo, mostramos como obter dados do Google Trends em tempo quase real, utilizando as linguagens de programação R e Python.

Contribuição para a Volatilidade [Python]

A contribuição para a volatilidade fornece uma decomposição ponderada da contribuição de cada elemento do portfólio para o desvio padrão de todo o portfólio. Em termos formais, é definida pelo nome de contribuição marginal, que é basicamente a derivada parcial do desvio padrão do portfólio em relação aos pesos dos ativos. A interpretação da fórmula da contribuição marginal, entretanto, não é tão intuitiva, portanto, é necessário obter medidas que possibilitem analisar os componentes. Veremos portanto como calcular os componentes da contribuição e a porcentagem da contribuição. Vamos criar as respectivas medidas usando a linguagem de programação Python.

Inflação de Serviços vs. Desemprego

A teoria econômica convencional sugere a presença de um trade-off entre inflação e desemprego no curto prazo, comumente conhecido como a Curva de Phillips. Em termos simples, reduções na taxa de desemprego podem resultar em um aumento temporário na inflação. Nesse contexto, a inflação de serviços emerge como uma categoria particularmente relevante devido às suas características distintivas. Para explorar e visualizar a relação entre inflação de serviços e desemprego, conduzimos uma análise utilizando a linguagem de programação Python. Além disso, empregamos o procedimento de Toda-Yamamoto para avaliar a existência de uma relação de causalidade no sentido Granger entre essas variáveis.

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.