Tag

curso de gestão de portfólios Archives - Análise Macro

Como calcular o retorno de um portfólio de investimentos

By | mercado financeiro

No post de hoje, como parte do que ensinamos no nosso curso R para o Mercado Financeiro, continuaremos a mostrar como podemos realizar cálculos úteis para avaliações de investimentos. No post passado, mostramos como podemos realizar cálculos dos retorno de ativos individualmente, porém, no mundo real, nem sempre iremos investir nosso dinheiro todo em um único ativo. Por isso, deve-se ser necessário o entendimento de como podemos calcular o retorno de um portfólio de ativos.

Sem muito suspense, o retorno de um portfólio é simplesmente a soma do retorno ponderado pelo peso dos ativos baseado no total de dinheiro investido. De outra forma, podemos definir através de uma equação:

(1)   \begin{equation*} r_p = \frac{I_1}{I_1-I_2} * r_1 + \frac{I_2}{I_1+I_2} * r_2 = w_1 *r_1 + w_2 * r_2 \end{equation*}

onde r_p é o retorno do portfólio, I_1 o dinheiro investido no ativo 1, I_2 o dinheiro investido no ativo 2, r_1 o retorno do ativo 1 e r_2 o retorno do ativo 2.

Nesse caso, utilizamos apenas dois ativos como exemplo na equação, mas o mesmo funciona para caso houver mais ativos no portfólio, sendo necessário apenas expandir a equação.

Mas, como podemos realizar isso no R? É bem simples!

Primeiro iremos carregar os pacotes necessários.

library(quantmod)
library(Quandl)
library(PerformanceAnalytics)
library(tidyverse)
library(timetk)

Em seguida, podemos seguir para o nosso código.


# Define os ativos que irão ser coletados

tickers <- c("PETR4.SA", "ITUB4.SA", "ABEV3.SA", "JBSS3.SA")

# Define a data de início da coleta

start <- "2016-12-01"

# Realiza a coleta dos preços diários

prices <- getSymbols(tickers,
                     auto.assign = TRUE,
                     warnings = FALSE,
                     from = start,
                     src = "yahoo") %>% 
  map(~Cl(get(.))) %>% 
  reduce(merge) %>% 
  `colnames<-`(tickers)

# Transfroma os preços diários em mensais

prices_monthly <- to.monthly(prices,
                           indexAt = "lastof",
                           OHLC = FALSE)

# Calcula os retornos mensais

asset_returns <- Return.calculate(prices_monthly,
                                  method = "log") %>% 
  na.omit()

Veja que até aqui somente tratamos de calcular os retornos individuais dos nossos ativos. Agora, será o momento que devemos realizar o cálculo do retorno do portfólio. Para isso, iremos construir quatro portfólio diferentes, de forma que possamos validar qual a melhor estratégia que podemos utilizar.

Iremos fazer da seguinte forma, através de 4 ativos, com pesos escolhidos aleatoriamente, definimos: PETR4 com peso de 50%; ITUB4 com peso de 27%; ABEV3 com peso de 13% e JBSS3 com peso de 10%.

# Define os pesos dos respectivos ativos

w <- c(0.50, 0.27, 0.13, 0.10)

# Calcula o retorno do portfolio baseado no peso de cada ativo

portfolio_return <- Return.portfolio(asset_returns,
                                      weights = w) %>% 
  `colnames<-`("port_returns")

Através da função Return.portfolio(), calculamos o retorno do portfolio com os retornos individuais e com os pesos escolhidos.

No segundo portfólio, iremos utilizar as mesmas métricas, porém, deixaremos que a função faça um rebalanceamento.

# Calcula o retorno do portfolio baseado no peso de cada ativo com rebalanceamento

portfolio_return_reb <- Return.portfolio(asset_returns,
                               weights = w,
                               rebalance_on = "quarters") %>% 
  `colnames<-`("port_return_reb")

No terceiro portfólio, iremos construir o que a literatura conhece como equally weighted portfolio, no qual estabelece que todos os ativos possuem o mesmo peso.

# Calcula o Equally Weighted Portfolio

portfolio_return_ew <- Return.portfolio(asset_returns) %>% 
  `colnames<-`("ewp")

E por fim, no quarto portfólio, criamos novamente o equally weighted portfolio, porém, com rebalanceamento.

# Calcula o Equally Weighted Portfolio com rebalanceamento

portfolio_return_ew_reb <- Return.portfolio(asset_returns,
                                            rebalance_on = "quarters") %>% 
  `colnames<-`("ewp_reb")

Podemos então visualizar a performance do nosso portfólio através do retorno acumulado, comparando-os entre si, e também com CDI.

Parece que teremos que revisar nossas estratégias.

________________________

(*) 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.
________________________

Coletando e visualizando preços de commodities no R

By | mercado financeiro

No Brasil, é comum acompanhar preços de commodities, afinal, qualquer mudança desses ativos afeta a vida dos brasileiros, seja diretamente ou indiretamente, mesmo para quem não atue no mercado financeiro. No post de hoje, vamos mostrar como é possível coletar dados de commodities e visualizá-los no R.

library(quantmod)
library(tidyverse)
library(timetk)

Após o carregamento dos pacotes, iremos criar os vetores com os tickers dos ativos que iremos coletar. Utilizaremos como fonte o Yahoo Finance, portanto, devemos encontrar os símbolos para a coleta no site.

# Define os tickers que iremos coletar

tickers <- c("KC=F", "NG=F", "CL=F", "SB=F")

Com os símbolos em mãos, podemos retirar os preços a partir do ano de interesse (aqui a partir de 2019), utilizando a função getSymbols(). Em seguida, podemos tratar os dados pegando somente os dados de fechamento e juntando em um só tibble os preços das quatro commodities.

Após isso, transformamos nosso conjunto de dados no formato long, de forma que fique mais fácil utilizar o ggplot para a visualiza-los.

# Retira os preços do Yahoo Finance e realiza o tratamento

prices <- getSymbols(tickers, src = "yahoo",
                     from = "2019-01-01") %>%
  map(~Cl(get(.))) %>% 
  reduce(merge) %>% 
  `colnames<-` (c("Coffee Mar 22", "Natural Gas Dec 21", "Crude Oil", "Sugar #11 Mar 22")) %>% 
  tk_tbl(preserve_index = TRUE,
         rename_index = "date") %>% 
  drop_na()

# Transforma em formato long

prices_long <- prices %>% 
  pivot_longer(cols = -date,
               values_to = "price")


# Plota os preços

prices_long %>% 
ggplot(aes(x = date, y = price, colour = name))+
  geom_line()+
  labs(title = "Preços de Commodities em US$",
       x = "$",
       y = "",
       caption = "Fonte: Yahoo Finance")

Como podemos ver, houve uma escalada de preços do café no ano de 2021. Também é possível notar o momento em que o preço do petróleo cru ficou negativo em abril de 2020.

________________________

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

Mercado Financeiro e Gestão de Portfólios

By | Cursos da Análise Macro

Hoje é o último dia de inscrições para o super Curso Mercado Financeiro e Gestão de Portfólios. As inscrições encerram-se às 23h59 dessa segunda-feira, 11/05. Em um único curso você terá uma introdução ao mercado financeiro e às principais técnicas de gestão de portfólio. Além disso, o aluno também contará com o uso intensivo do R, uma das linguagens de programação mais utilizados no mundo da ciência de dados.

Confira todos os detalhes diretamente na página do Curso aqui.

Mercado Financeiro e Gestão de Portfólios

By | Cursos da Análise Macro

São os últimos dias de inscrições para o super Curso Mercado Financeiro e Gestão de Portfólios. As inscrições encerram às 23h59 do próximo dia 11/05. Em um único curso você terá uma introdução ao mercado financeiro e às principais técnicas de gestão de portfólio. Além disso, o aluno também contará com o uso intensivo do R, uma das linguagens de programação mais utilizados no mundo da ciência de dados.

Confira todos os detalhes diretamente na página do Curso aqui.

Mercado Financeiro e Gestão de Portfólios

By | Cursos da Análise Macro

Entramos na última semana de inscrições para o super Curso Mercado Financeiro e Gestão de Portfólios. Em um único curso você terá uma introdução ao mercado financeiro e às principais técnicas de gestão de portfólio. Além disso, o aluno também contará com o uso intensivo do R, uma das linguagens de programação mais utilizados no mundo da ciência de dados.

Confira todos os detalhes diretamente na página do Curso aqui.

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

Assinar Gratuitamente