Porque o Beta é importante ?
Como Calcular o Beta ?
Calculando o Beta de uma ativo com Python
Continue aprendendo sobre Python com a Voitto!

Entenda agora como calcular o Beta de Ativos Financeiros

Descubra o que significa o Beta em finanças, qual a sua importância na análise de ativos financeiros e ainda, duas formas de calculá-lo utilizando Python!

Lucas Crispim
Por: Lucas Crispim
Entenda agora como calcular o Beta de Ativos Financeiros

Em finanças, o beta (β ou beta de mercado ou coeficiente beta) é uma medida de como um ativo individual se move (em média) quando outro ativo ou índice aumenta ou diminui.

Assim, o beta é uma medida útil da contribuição de um ativo individual para o risco da carteira de mercado quando adicionado.

O beta é referido como o risco não diversificável de um ativo, seu risco sistemático, risco de mercado ou índice de hedge. Dessa maneira, o Beta não é uma medida de risco idiossincrático.

Porque o Beta é importante ?

Se formos pensar no caso brasileiro (por motivos de simplificação). A interpretação do beta é o quanto um determinado ativo financeiro é sensível a uma subida ou descida do Ibovespa (principal indicador de desempenho das ações negociadas na B3 e lista as principais empresas do mercado de capitais brasileiro).

Se pensarmos nos últimos anos, o mercado brasileiro sofreu com alguns reveses econômicos, como por exemplo durante a covid 2020.

Neste período, a bolsa brasileira ativou o mecanismo de circuit breaker ( O Circuit Breaker é um mecanismo de segurança utilizado pela Bolsa de Valores do Brasil para paralisar as negociações por um período quando o Ibovespa, seu principal índice, cai mais do que 10%, independentemente do motivo).

Neste tipo de cenário de alta volatilidade do mercado, é desejável ter em sua carteira de investimentos ativos que não sejam tão impactados.

Como Calcular o Beta ?

Aqui calcularemos o beta de um ativo e depois o beta de uma carteira. Para este fim serão utilizados dois métodos. Para o primeiro deles a fórmula é mostrada abaixo:

Fórmula do Beta

No número da equação a covariância entre X e Y representa como as mudanças nos retornos de uma ação estão relacionadas às mudanças nos retornos do benchmark. E no denominador a variância do benchmark.

Calculando o Beta de uma ativo com Python

Para testar o primeiro método usaremos a plataforma google colab. A razão dessa escolha é pela simplicidade de uso e disponibilidade das bibliotecas que serão utilizadas. O primeiro trecho de código é a instalação no ambiente da biblioteca do Yahoo Finance.

pip install yfinance

Após esta instalação devemos importar as bibliotecas que serão usadas nos dois métodos. Estas bibliotecas serão mostradas abaixo.

importações necessárias

Vamos entender melhor para que serve cada biblioteca utilizada:

  • yfinance (yahoo finance): é a biblioteca que irá buscar os valores de ativos ao longo do tempo. 
  • pandas:  irá armazenar os valores dos ativos. 
  • numpy:  responsável por cálculos matemáticos. 
  • sklearn e matplotlib: a primeira é destinada a cálculos estatísticos e a segunda para gráficos.

Após a importação dessas bibliotecas, é possível importar os dados de ações. Para este exemplo usaremos a Vale (VALE3), e nosso benchmark será o índice ibovespa.

O código de importação dos valores dos últimos 5 anos de vale e do Ibovespa, é mostrado abaixo.

importações dos valores dos 5 anos de Vale e Ibovespa

Repare que o símbolo de importação da Vale é VALE3.sa e do Ibovespa é ^BVSP.

Após a importação é possível ver os valores diários da Vale. O código para mostrar as 5 primeiras linhas da tabela de dados é mostrado abaixo.

print(vale.head(5))

O resultado é mostrado na Figura 1.

Alguns resultados diários da empresa Vale

Podemos ver na Figura 1 que a tabela referente aos resultados da empresa possui as colunas open, high, low, close, volume, dividends e stock splits. Essas colunas se referem especificamente a: valor de abertura, valor máximo, valor mínimo, valor de fechamento, volume de negociações, dividendos e divisão de ações.

Para o Ibovespa os mesmos passos são executados. O código para impressão das cinco primeiras linhas da tabela é mostrado abaixo.

print(ibov.head(5))

O resultado do código acima é mostrado na figura abaixo.

Alguns resultados diários do índice Ibovespa

Neste momento possuímos todos os dados necessários para calcular o beta. Mas primeiramente precisamos calcular os retornos diários tanto de Vale quanto de Ibovespa.

O valor do retorno diário é calculado sobre o valor de fechamento da empresa (coluna Close). A fórmula para calcular o retorno percentual diário de um ativo é a subtração entre os valores de fechamento de dias subsequentes, e a divisão desse resultado pelo valor de fechamento mais recente entre os pares.

Vamos demonstrar através de um exemplo:

No dia 01/02 o valor de fechamento de Vale foi de 80 reais, no dia 02/02 o valor de fechamento de Vale foi de 85 reais.

Portanto a variação percentual entre esses dois dias foi de  (80-85)/85 = −0,058823529 ou -5.88%.

Felizmente não precisamos executar esse cálculo para todos os últimos cinco anos tanto para Vale quanto para o Ibovespa. Para isso vamos adicionar uma coluna na tabela de dados da Vale e do Ibovespa com este cálculo já realizado, como apresentado no código abaixo:

Cálculo para os últimos 5 anos

O resultado da impressão das cinco primeiras linhas da tabela da vale é mostrado na Figura 3.

Alguns resultados diários da empresa Vale juntamente com a coluna "% rd"

Na figura anterior é possível ver que uma nova coluna foi adicionada à tabela da Vale. Essa coluna é referente ao retorno percentual diário em relação aos valores de fechamento da ação da empresa.

O procedimento semelhante é realizado para o Ibovespa. O leitor mais atento deve ter notado que existe um valor faltante na primeira linha da coluna “% rd”.

Esse valor é faltante porque o resultado da variação percentual sempre é guardado no dia posterior a referência. Para a primeira linha desta coluna não existe valor de referência (valor de fechamento do dia anterior) e portanto o valor é faltante.

De posse deste último cálculo é possível calcular o beta:

beta = vale["% rd"].cov(ibov["% rd"])/ibov["% rd"].var()

O valor é mostrado em tela utilizando o comando abaixo:

print(beta)

O valor encontrado é de 0.9302. Este valor indica que os valores das ações da Vale são menos voláteis que o Ibovespa.

Podemos proceder ao segundo método de cálculo do beta. Este método tem uma interpretação geométrica muito mais entendível ao leitor.

Primeiramente devemos mesclar os data frames e renomear as colunas “% rd” para vale e ibov respectivamente. Isso será feito em apenas uma linha de código, como apresentado a seguir:

Código de mesclagem e renomeação de frames.

Na sequência as linhas que contiverem valores nulos serão deletadas. O código para essa operação é mostrado abaixo.

df_merged.dropna(inplace=true)

Depois dessas operações é possível ver a tabela novamente na figura abaixo.

Junção das tabelas e mudança de label das colunas "% rd"

Vamos plotar o resultado para ter uma ideia de como a variação percentual diária se relaciona entre a Vale e o Ibov. O código que vai gerar essa figura é mostrado abaixo.

código para gerar o gráfico abaixo

O código acima é responsável por gerar o gráfico abaixo:

Relação entre as variações percentuais de vale e ibov.

Agora é possível fazer uma regressão linear para calcular o valor de beta. O código desse cálculo é mostrado abaixo

Cálculo para regressão linear

Vamos plotar os dados de variação percentual diária (vale e ibov) e da regressão linear na figura abaixo, o código é mostrado abaixo.

código para gerar o gráfico abaixo

Regressão linear de ajuste entre as variações percentuais diárias de vale e ibov.

Neste caso especial o beta é o coeficiente angular da reta de regressão. O código para obter este valor é mostrado abaixo.

reg.coef_


O resultado mostrado é 0.9275. Repare que o valor do beta não é exatamente igual ao que foi calculado no primeiro método, mas isso não representa nenhum problema.

Essa diferença se deve às formas de cálculo diferentes. Outro valor muito importante que é possível retirar da regressão linear é o Valor de R² ( R² mostra o quão bom é o ajuste linear).

O valor de R² varia de 0 a 1. Sendo que quanto mais próximo de 1 este valor for, melhor é o ajuste linear dos dados de retorno percentual diário do ativo. Para Vale, o código que exibe o valor de R² é mostrado abaixo.

reg.score(X,Y)

O valor obtido é 0.3733. Outra informação importante a respeito de R² é que ele é uma medida para a volatilidade do ativo em relação ao benchmark (neste caso o ibov).

A partir dos cálculos já realizados, podemos criar um ranking das ações com menor beta e menos voláteis da B3. Veja o código abaixo.

criação do ranking parte 1

criação do ranking parte 2

O que foi feito é calcular o beta e a volatilidade para as ações que compõem a lista da B3 atualmente. O campo “B/V” representa a divisão do beta pelo R².

Vamos ordenar esta lista a fim de procurar a menor taxa “B/V”. Esta ordenação vai indicar quais ativos possuem o menor beta e a menor volatilidade dado por R².

comando de ordenação


O resultado é mostrado abaixo.

resultado da ordenação


Dessa maneira é possível montar uma estratégia de compra de ações (Não é uma recomendação de investimentos!) baseada em desvinculação com o Ibovespa e com menor volatilidade em relação ao ajuste.

Continue aprendendo sobre Python com a Voitto!

Durante esse artigo, você pode aprender sobre uma das aplicações da linguagem Python, esta que vem se tornando tão requisitada no mercado de trabalho e no ramo da tecnologia e por isso, nós temos um presente para você!

O curso Python Intermediário para Análise de Dados da Voitto é super completo e com ele, você aprenderá como utilizar essa linguagem de programação de maneira assertiva e suas principais ferramentas.

Aprimore suas habilidades e garanta aquela vaga que sempre sonhou. Clique na imagem abaixo e descubra mais sobre o curso.

Python Intermediário para Análise de Dados

Lucas Crispim

Lucas Crispim

Técnico em desenvolvimento de sistemas pelo Instituto Federal do Sudeste de Minas Gerais. Formado em física pela universidade federal de Juiz de Fora. Possui mestrado em modelagem computacional pelo ppgmc-ufjf. Possui Doutorado em modelagem computacional pelo ppgmc-ufjf. Possui pós-doutorado em engenharia pela universidade federal do Rio de Janeiro. Sou especialista em métodos numéricos e resolução de equações diferenciais. Sou desenvolvedor de software na viasat inc. Lá atuo com backend em java e front-end react. Sou docente na XP educação, onde leciono no curso de python para desenvolvimento web. Entusiasta da educação financeira, produzo conteúdo para desmistificar o universo das finanças utilizando Python.

Fundamentos Essenciais para Python, Se inscreva!

QUER RECEBER CONTEÚDO VIP?

Entre para nossa lista e receba conteúdos exclusivos e com prioridade.

Respeitamos sua privacidade e nunca enviaremos spam!

voitto.com.br

© Copyright 2008 - 2024 Grupo Voitto - TODOS OS DIREITOS RESERVADOS.

[Curso Gratuito] Fundamentos Essenciais Para Python

Para baixar o material, preencha os campos abaixo:

Possui graduação completa?

Concordo em receber comunicações de acordo com a Política de Privacidade.