Para obter informações detalhadas sobre a metodologia utilizada neste estudo, recomendamos consultar a Carta da Gestão de Fevereiro de 2023. Adicionalmente, você pode encontrar o backtest da estratégia na Carta da Gestão de Abril de 2023. Ambos os documentos estão disponíveis em nosso site para consulta.
Modificações na Metodologia
[Abril de 2023] Para determinar o fator de valor, são considerados dois indicadores: “earnings to price” e “book to market”. No entanto, esses indicadores são problemáticos quando o numerador é negativo. Isso ocorre porque, se o preço diminuir, o indicador se tornará mais negativo. Esse fenômeno vai em desacordo com a essência do fator valor, que considera uma queda no preço como um evento que torna o ativo mais atrativo, e não menos. Por esse motivo, truncamos o valor desses indicadores em zero.
[Agosto de 2023] Realizamos duas alterações fundamentais. A primeira diz respeito à introdução do fator “Qualidade”. Dentro desse contexto, o fator em questão é calculado pela média dos valores ajustados de ROE e ROA de cada empresa. A segunda modificação envolve a revisão do conjunto de ativos considerados. Anteriormente, esse conjunto incluía os componentes dos índices IBrX 100 e SMLL. Agora, o grupo de ativos em consideração consiste nos membros do Índice Brasil Amplo (IBrA B3).
Contato
Se você tiver alguma dúvida ou sugestão de melhoria, estamos à disposição para ajudar. Valorizamos muito o seu feedback e comentários construtivos, pois estamos empenhados em aprimorar constantemente nosso trabalho. Não hesite em entrar em contato conosco enviando um e-mail para contato@avantgardeam.com.br. Teremos o prazer de atendê-lo e auxiliá-lo da melhor forma possível.
Disclaimer
Os materiais apresentados não são considerados relatórios de análise, de acordo com a definição da Instrução nº 598/2018 da Comissão de Valores Mobiliários (CVM), nem oferecem aconselhamento de investimentos em valores mobiliários, conforme a definição da Instrução CVM nº 592/2017.
As opiniões apresentadas nos nossos materiais estão sujeitas a alterações sem aviso prévio e não devem ser consideradas como uma oferta de compra ou venda de títulos, valores mobiliários ou instrumentos financeiros. Portanto, a Avantgarde Asset Management não assume nenhuma responsabilidade por eventuais perdas decorrentes de decisões tomadas por investidores com base no conteúdo desses materiais.
Os materiais apresentados têm um caráter exclusivamente informativo, não devendo ser considerados como recomendações de investimento, relatórios de acompanhamento, análises ou estudos sobre valores mobiliários e seus emissores que possam influenciar ou auxiliar investidores no processo de tomada de decisão de investimento.
Os investimentos em fundos não são garantidos pelo administrador, pelo gestor, por qualquer mecanismo de seguro ou pelo Fundo Garantidor de Crédito - FGC. É importante destacar que nossos materiais não devem ser considerados como a única fonte de informação para tomada de decisão de investimento. Além disso, recomendamos que os investidores leiam atentamente o Regulamento, o Formulário de Informações Complementares e a Lâmina de Informações Essenciais, se houver, antes de realizar o investimento, dentre outras fontes de informação.
Aplicações em títulos e valores mobiliários possuem riscos associados, que podem resultar na perda total ou parcial do capital investido, ou ainda requerer investimentos adicionais de recursos, conforme a situação.
A Avantgarde Asset Management não se responsabiliza por quaisquer perdas diretas, indiretas ou lucros cessantes resultantes da utilização dos nossos materiais para qualquer finalidade.
Este material está disponível para uso e redistribuição com fins não comerciais, desde que a atribuição adequada de autoria seja feita. É importante destacar que o nome da Avantgarde Asset Management e de seus colaboradores não pode ser utilizado para endossar ou promover qualquer produto relacionado a este material. Em caso de dúvidas sobre o uso adequado deste material, por favor entre em contato conosco.
Source Code
---title: "Estrelas Avantgarde"date: "`r Sys.Date()`"theme: flatlyformat: html: self-contained: true code-tools: source: true toggle: false caption: none---<style>body {text-align: justify}</style>```{r, include=FALSE}library(Rblpapi)library(tidyverse)library(DT)library(docstring)library(paws)source('functions.R')blpConnect()``````{r, include=FALSE}# This function was previously 'hidden' in the "functions.R" file. To increase transparency, we make it available here.get_number_of_stars <-function(factor_metric){#' Assign Stars.#' @description This function assigns a star rating (ranging from 1 to 5) #' to each asset based on how well it ranks in comparison to #' other assets with respect to a given factor. #' #' The higher the #' asset's rank, the higher the star rating it will receive. #' Specifically, the top 10% of assets will receive a 5-star #' rating, the next 20% (i.e., assets ranked between 10% and 30%) #' will receive a 4-star rating, the next 40% #' (i.e., assets ranked between 30% and 70%) will receive a 3-star #' rating, the next 20% (i.e., assets ranked between 70% and 90%) #' will receive a 2-star rating, and the bottom 10% of assets will #' receive a 1-star rating. #' @param factor_metric numeric vector. Vector containing the values for a factor metric (PE RATIO, e.g.).#' @returns Categorical vector indicating the star rating of each asset. ranked_factor_metric <-rank(factor_metric) len <-length(ranked_factor_metric)# Defines breaks for each star level based on the length of the ranked vector breaks <-round(c(1, len *0.1, len *0.3, len *0.7, len *0.9, len ))# Break points are used to determine which star level each asset will receive number_of_stars <-cut( ranked_factor_metric, breaks = breaks, include.lowest =TRUE, labels =1:5 )return(number_of_stars)}``````{r, include=FALSE}# Investable universe (members of the IBRA Index)securities <-bds('IBRA Index', 'INDX_MWEIGHT')$`Member Ticker and Exchange Code`securities <-paste(word(securities, 1), 'BZ Equity')## If we have more than one ticker for the same company (PETR3 and PETR3, e.g.),### select the one that Bloomberg considers as the Fundamental Ticker.securities <-bdp(securities, 'EQY_FUND_TICKER') %>%rownames_to_column('Ticker') %>%mutate(EQY_FUND_TICKER =paste(EQY_FUND_TICKER, 'Equity')) %>%distinct(EQY_FUND_TICKER) %>%pull(EQY_FUND_TICKER)``````{r, include=FALSE}rm(ibx_composition, smll_composition)``````{r, include=FALSE}# Fetch, from Bloomberg, the metrics that we will considerfields <-c('PX_LAST', # PRICE'TRAIL_12M_EPS_BEF_XO_ITEM', 'BOOK_VAL_PER_SH', # VALUE'CUR_MKT_CAP', # SIZE'CURRENT_TRR_1MO', 'CURRENT_TRR_1YR', # MOMENTUM'EQY_BETA', 'VOLATILITY_260D', # LOW VOL"RETURN_ON_COMMON_EQUITY_ADJUSTED", # Quality"RETURN_ON_ASSETS_ADJUSTED"# Quality)metrics <-bdp(securities, fields)``````{r, include=FALSE}rm(fields)``````{r, include=FALSE}# Clean dataclean_metrics <- metrics %>%rownames_to_column('Ticker') %>%mutate(EARNINGS_TO_PRICE =ifelse(TRAIL_12M_EPS_BEF_XO_ITEM >0, TRAIL_12M_EPS_BEF_XO_ITEM / PX_LAST, 0),BOOK_TO_MARKET =ifelse(BOOK_VAL_PER_SH >0, BOOK_VAL_PER_SH / PX_LAST, 0),MOMENTUM = CURRENT_TRR_1YR - CURRENT_TRR_1MO, # Total Return 12-1 months ) %>%mutate_at(vars(VOLATILITY_260D, EQY_BETA, CUR_MKT_CAP),~ .x *-1# Buy low, sell high to buy high, sell low ) %>%# Normalize datamutate(across(!Ticker, ~(.x -mean(.x, na.rm =TRUE)) /sd(.x, na.rm =TRUE) )) %>%# Replace missing values with zero (mean)mutate(across(!Ticker, ~replace_na(.x, 0) )) %>%rowwise() %>%mutate(# Summarize multiple factor metrics into oneLOW_VOLATILITY =mean(c(VOLATILITY_260D, EQY_BETA)),VALUE =mean(c(EARNINGS_TO_PRICE, BOOK_TO_MARKET)),QUALITY =mean(c(RETURN_ON_COMMON_EQUITY_ADJUSTED, RETURN_ON_ASSETS_ADJUSTED)) ) %>%rename(SIZE = CUR_MKT_CAP) %>% dplyr::select('Ticker', 'VALUE', 'SIZE', 'MOMENTUM', 'LOW_VOLATILITY', "QUALITY" ) %>%ungroup()``````{r, include=FALSE}stars <- clean_metrics %>%# Stars for each asset and factormutate(across(!Ticker, ~as.numeric(get_number_of_stars(.x)) )) %>%# Overall star ratingrowwise() %>%mutate(ALL_FACTORS =mean(c_across(!Ticker)) ) %>%ungroup() %>%mutate(ALL_FACTORS =as.numeric(get_number_of_stars(ALL_FACTORS)) ) %>%mutate(bdp(Ticker, c('SHORT_COMPANY_NAME', 'ID_ISIN')), .after =1) %>%rename(NOME = SHORT_COMPANY_NAME,VALOR = VALUE,TAMANHO = SIZE,MOMENTO = MOMENTUM,`BAIXA VOL`= LOW_VOLATILITY,QUALIDADE = QUALITY,`TODOS FATORES`= ALL_FACTORS )upload_df_to_aws_s3(stars)stars <- stars %>%arrange(desc(`TODOS FATORES`), NOME) %>%column_to_rownames('NOME') %>% dplyr::select(!c(Ticker, ID_ISIN)) %>% dplyr::select("TODOS FATORES", sort(colnames(.))) %>%# Star emojimutate(across(everything(), ~strrep('\xE2\xAD\x90', .x) )) ``````{r, echo=FALSE}datatable( stars, rownames =TRUE, extensions ="Buttons", options =list(dom ='Blfrtip', scrollX=TRUE,buttons =list(list(extend ='excel', filename =paste0('EstrelasAvantgarde', '_', str_replace_all(Sys.Date(), '-', '')) ))))```# MetodologiaPara obter informações detalhadas sobre a metodologia utilizada neste estudo, recomendamos consultar a Carta da Gestão de Fevereiro de 2023. Adicionalmente, você pode encontrar o backtest da estratégia na Carta da Gestão de Abril de 2023. Ambos os documentos estão disponíveis em nosso [site](https://www.avantgardeam.com.br/cartas-da-gestao/) para consulta.## Modificações na Metodologia- [**Abril de 2023**] Para determinar o fator de valor, são considerados dois indicadores: "*earnings to price*" e "*book to market*". No entanto, esses indicadores são problemáticos quando o numerador é negativo. Isso ocorre porque, se o preço diminuir, o indicador se tornará mais negativo. Esse fenômeno vai em desacordo com a essência do fator valor, que considera uma queda no preço como um evento que torna o ativo mais atrativo, e não menos. Por esse motivo, truncamos o valor desses indicadores em zero.- [**Agosto de 2023**] Realizamos duas alterações fundamentais. A primeira diz respeito à introdução do fator "Qualidade". Dentro desse contexto, o fator em questão é calculado pela média dos valores ajustados de ROE e ROA de cada empresa. A segunda modificação envolve a revisão do conjunto de ativos considerados. Anteriormente, esse conjunto incluía os componentes dos índices IBrX 100 e SMLL. Agora, o grupo de ativos em consideração consiste nos membros do Índice Brasil Amplo (IBrA B3).# ContatoSe você tiver alguma dúvida ou sugestão de melhoria, estamos à disposição para ajudar. Valorizamos muito o seu feedback e comentários construtivos, pois estamos empenhados em aprimorar constantemente nosso trabalho. Não hesite em entrar em contato conosco enviando um e-mail para [contato@avantgardeam.com.br](mailto:contato@avantgardeam.com.br). Teremos o prazer de atendê-lo e auxiliá-lo da melhor forma possível.# Disclaimer- Os materiais apresentados não são considerados relatórios de análise, de acordo com a definição da Instrução nº 598/2018 da Comissão de Valores Mobiliários (CVM), nem oferecem aconselhamento de investimentos em valores mobiliários, conforme a definição da Instrução CVM nº 592/2017.- As opiniões apresentadas nos nossos materiais estão sujeitas a alterações sem aviso prévio e não devem ser consideradas como uma oferta de compra ou venda de títulos, valores mobiliários ou instrumentos financeiros. Portanto, a Avantgarde Asset Management não assume nenhuma responsabilidade por eventuais perdas decorrentes de decisões tomadas por investidores com base no conteúdo desses materiais.- Os materiais apresentados têm um caráter exclusivamente informativo, não devendo ser considerados como recomendações de investimento, relatórios de acompanhamento, análises ou estudos sobre valores mobiliários e seus emissores que possam influenciar ou auxiliar investidores no processo de tomada de decisão de investimento.- Os investimentos em fundos não são garantidos pelo administrador, pelo gestor, por qualquer mecanismo de seguro ou pelo Fundo Garantidor de Crédito - FGC. É importante destacar que nossos materiais não devem ser considerados como a única fonte de informação para tomada de decisão de investimento. Além disso, recomendamos que os investidores leiam atentamente o Regulamento, o Formulário de Informações Complementares e a Lâmina de Informações Essenciais, se houver, antes de realizar o investimento, dentre outras fontes de informação.- Aplicações em títulos e valores mobiliários possuem riscos associados, que podem resultar na perda total ou parcial do capital investido, ou ainda requerer investimentos adicionais de recursos, conforme a situação.- A Avantgarde Asset Management não se responsabiliza por quaisquer perdas diretas, indiretas ou lucros cessantes resultantes da utilização dos nossos materiais para qualquer finalidade.- Este material está disponível para uso e redistribuição com fins não comerciais, desde que a atribuição adequada de autoria seja feita. É importante destacar que o nome da Avantgarde Asset Management e de seus colaboradores não pode ser utilizado para endossar ou promover qualquer produto relacionado a este material. Em caso de dúvidas sobre o uso adequado deste material, por favor entre em contato conosco.