Como implementar uma carteira quantitativa focada em dividendos
A forma correta de selecionar as cash cows.
Poucas coisas populam mais o imaginário do investidor brasileiro do que dividendos. De fato, ativos que pagam dividendos tendem a ser mais estáveis. A lógica é simples: se está sobrando dinheiro para ser repartido entre os acionistas, então a operação tem sido bem-sucedida.
É claro que esse fato isoladamente não conta toda a história. Muitas vezes, ações pagadoras de dividendos podem ser value traps, ou seja, aparentemente baratas mas estarem lentamente morrendo. Esse fenômeno é conhecido como boiling frog syndrome – uma metáfora um tanto cruel para descrever a situação onde uma postura passiva é adotada até que a situação seja irreversível. Traduzindo para o mercado financeiro, seria um apego a uma ação perdedora sob a justificativa de que seus indicadores são aceitáveis e o turnaround é iminente.
Ainda assim, muitas vezes os dividendos são utilizados como proxy de geração de caixa. No post anterior, expliquei justamente como utilizar o dividend yield como potencializador de uma estratégia de baixo risco.
O objetivo de hoje é mostrar como calcular o retorno de uma carteira baseada puramente em dividendos, além de expor as limitações dessa estratégia. Essa aula também está disponível em vídeo no YouTube, e o código completo pode ser acessado no GitHub.
Antes de mais nada, precisamos definir o que é dividend yield:
Ou seja, apesar da distribuição de dividendos ocorrer apenas algumas vezes por ano, o preço do indicador muda diariamente, uma vez que o preço da ação também muda diariamente.
Além disso, como calcular os dividendos pagos anualmente? Muitas vezes as empresas tem distribuição irregular. Não existe uma fórmula certa para se computar esse indicador, e esse é nosso primeiro problema.
Portanto, a análise dos dividendos dependerá bastante da fonte utilizada. Um site estável e developer friendly que uso há anos é o Fundamentus. Ali é possível buscar os ativos que tem o maior dividend yield (de acordo com suas próprias métricas), excluindo aqueles de baixa liquidez.
def get_fundamentus_data():
"""Get stock data from Fundamentus website focusing on specific columns"""
url = "https://fundamentus.com.br/resultado.php"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
# Make request to the website
r = requests.get(url, headers=headers)
# Parse HTML table with correct decimal and thousands separators
html_data = io.StringIO(r.text)
df = pd.read_html(html_data, decimal=",", thousands=".")[0]
# Convert percentage columns from percentage to decimal
df['Div.Yield'] = pd.to_numeric(df['Div.Yield'].str.replace('%', '').str.replace(',', '.'), errors='coerce') / 100
# Select only the columns we need
needed_columns = ["Papel", "Div.Yield", "Liq.2meses"]
df = df[needed_columns]
return df
Esse simples código retorna, em poucas linhas, tudo que precisamos para seguir com a análise. Daí podemos realizar alguns filtros:
# Filter by minimum liquidity
df = df[df['Liq.2meses'] >= min_liquidity]
# Filter stocks with positive dividend yield
df = filtered_df[filtered_df['Div.Yield'] > 0]
Assumindo uma liquidez mínima de 10M, no momento que escrevo esse texto reduzimos a lista para 112 ativos.
Uma carteira quantitativa é composta de forma algorítimica, ou seja, automaticamente de acordo com uma regra específica. Assim, além da liquidez mínima, precisamos definir também quantos ativos comporão a carteira.
A vantagem das carteiras quantitativas
A razão que me atraiu para o campo das finanças quantitativas foi a interseção entre programação, matemática e investimentos. Seu grande mérito, portanto, é remover a subjetividade da tomada de decisão: por que comprar a ação A e não a B? Você consegue justificar cada operação feita sem ficar nos achismos?
Se escolhermos os 10 ativos com maior dividendo e realizarmos um backtest no último ano, esse teria sido o resultado:
Excelentes 37.84% num período onde a bolsa patinou! De fato parece uma estratégia imbatível. Antes de falar do principal problema dessa abordagem, vejamos o retorno individual e acumulado desse portfólio:
O que chama atenção é que apenas três ativos tiveram o desempenho superior à carteira no período. O restante não só perdeu em rentabilidade, como apresentou um sharpe bem menor que 1.
Isso realça uma das principais vantagens das finanças quantitativas: não precisamos depender de stock picking. Através de uma combinação de ativos, selecionados baseados em critérios objetivos e matemáticos, o todo apresenta uma maior probabilidade de sucesso.
Limitações
Tudo muito bem, tudo muito bom. Mas precisamos escancarar algumas óbvias limitações dessa abordagem.
A primeira delas é o viés de sobrevivência. A composição da carteira é montada hoje, com os ativos existentes hoje. Se fosse o caso de que uma ação pagadora de dividendos existisse há 1 ano, mas foi à falência e terminou delistada, essa, que seria uma perda altíssima, não seria capturada pelo backtest.
A segunda limitação, e a mais séria de todas, é o fato de que o top 10 montado acima é baseado no dividend yield de hoje. Mas o backtest foi realizado no último ano. Ora, nada garante que um ano atrás o top 10 era o mesmo. Pelo contrário, é extremamente improvável. A esse problema chamamos lookahead bias.
Para resolvê-lo, é necessário o histórico do dividend yield de cada ação, de modo que possamos, para um determinado dia t, estabelecer qual era o top naquele dia.
Além disso, toda estratégia quantitativa vai exigir um período de rebalanceamento. Sabendo da característica mutável do portfólio, é preciso periodicamente conferir se houve alguma mudança na lista. Esse período não deve ser curto demais a ponto de aumentar os custos transacionais e tributários, nem longo demais que a lista permaneça defasada por muito tempo.
Foi justamente com isso em mente que desenvolvi a ferramenta de Carteiras Quantitativas no QuantBrasil. Ali é possível selecionar o método de seleção (e.g. dividendos), e o período de rebalanceamento.
Assim, uma estratégia de rebalanceamento mensal baseada em dividendos que seleciona o top 10 teve um retorno de 18,72% no último ano. Apesar de ter batido o IBOV com folga, o retorno é metade do backtest original.
No QuantBrasil, além do resultado total, também mostramos o rebalanceamento feito em cada período. Note como no primeiro mês houve apenas uma mudança na lista, e no seguinte o top 10 se manteve o mesmo.
Conclusão
De fato, uma estratégia quantitativa baseada em dividendos parece vencedora. Podemos facilmente calcular seu retorno utilizando Python, e o Jupyter Notebook disponibilizado permite que essa análise seja feita em segundos.
No entanto, para escapar do lookahead bias é necessário ter a composição histórica da lista dos maiores pagadores de dividendo, o que não é uma tarefa das mais fáceis. Para superar esse problema, você pode utilizar as Carteiras Quantitativas do QuantBrasil, que além de ranking por dividendos também inclui outras estratégias vencedoras como momentum e magic formula.
Portanto, mesmo que você seja um fiel seguidor do Barsi, saiba: existe um caminho ainda mais lucrativo te esperando ao se adicionar o tempero das finanças quantitativas.