profile

Wilson Freitas

Preços de Opções + Curva de Juros = estimadores de dividendos


Olá, Reader!

Bem-vindo(a) de volta à nossa jornada de exploração quantitativa!

Nas últimas edições desta newsletter eu escrevi sobre diversas características operacionais do pacote rb3.

Da sua robustez na forma de organizar os dados, na maneira simples de acessar os dados e como realizar consultas de grandes volumes.

O rb3 é uma peça importante de um conjunto de ferramentas que eu utilizo para fazer análise utilizando dados financeiros.

Na primeira newsletter eu escrevi “Tudo começa com dados” e a consequência disso é que “Tudo acaba em análises”.

No caminho dos dados até as análises eu passo por diversas bibliotecas, linguagens de programação e ambientes.

Nesta edição eu vou mostrar uma análise muito interessante que eu faço utilizando 2 datasets do rb3: b3-cotahist-yearly e b3-reference-rates.

A utilização desses 2 datasets ilustra bem o poder do rb3 em construir um datalake a partir de dados obtidos na B3.

A combinação de diferentes datasets produz novos datasets ainda mais poderosos.

Nas primeiras versões do rb3 eu chamei a combinação desses datasets de superdatasets, mas depois eu removi isso do pacote por achar um tanto brega.

A função cotahist_options_by_symbols_get() retorna um dataset (objeto Arrow) com todas as opções de uma determinada ação (passada como argumento, por exemplo, ITUB4).

Essa função combina os 2 datasets acima e traz:

  • todas as séries de opções para um ativo objeto juntamento com os seu dados cadastrais (vencimento, preço de exercício, tipo da opção) e os seus dados de mercado (preço de fechamento e volume negociado);
  • o preço de fechamento do ativo objeto;
  • taxa de juros livre de risco no vencimento da opção.

Com todos esses dados em um único dataset você pode realizar diversos cálculos com as opções, como:

  • cálculo das volatilidades implícitas;
  • cálculo da volatilidade realizada;
  • cálculo das gregas;
  • cálculo do bleed;
  • P&L explain;
  • paridade put-call;

Apenas para citar algumas coisas que podemos fazer com esse dataset.

Importante frisar que tudo isso é obtido executando apenas 1 função do rb3, esse pacote que foi construído para tornar a sua vida menos miserável.

A ideia é apresentar uma análise de um estimador de dividend yield de opções de uma ação.

As opções sobre as ações negociadas na B3 são, em teoria, livres de dividendos.

O que significa isso?

A B3 realiza um procedimento operacional que ajusta o preço de exercício das opções sobre ações, toda vez que ocorre um evento corporativo, assim, tornando a opção imune ao evento corporativo.

Uma das implicações diretas disso é na paridade put-call da opção.

Sendo livre de dividendos, a equação acima deveria ter q = 0.

Vamos mostrar, olhando os dados, que a equação acima não é uma igualdade e que a diferença sugere que há um diferente de zero.

Vamos fazer isso para as opções de ITUB4 com data de referência em 2 de junho de 2025 (começo de junho).

As opções de ITUB4 foram escolhidas porque essa empresa paga regularmente dividendos e, portanto, há expectativa de dividendos implícita nos preços das opções.

Segue o que vamos fazer.

  1. Utilizar a função cotahist_options_by_symbols_get("ITUB4") para obter as opções de ITUB4 e filtrar a data de 2025-06-02.
  2. Calcular a paridade put-call segundo a diferença entre as calls e as puts, lado esquerdo da equação acima.
  3. Calcular o valor teórico da paridade put-call considerando q = 0 na equação acima, no lado direito da equação acima.
  4. Fazer gráfico comparando essas duas estimativas.

O código abaixo executa os passos acima.

Podemos visualizar os dados da paridade put-call e comparar com o valor teórico calculado. O gráfico abaixo apresenta essa comparação.

Dada essa diferença observada entre os valores teóricos e empíricos, podemos estimar essa correção, em média, utilizando uma regressão linear simples.

Essa regressão linear é aplicada de forma que:

  • Y é a paridade put-call c - p.
  • X é o preço de exercício K.
  • a será estimado, mas representa e como S é o preço da ação, que temos, podemos obter q.
  • b também será estimado e representa o fator de desconto , assim também podemos obter uma estimativa de r implícita nos preços das opções.

Realizando a regressão linear

Os resultados da regressão são ótimos, os estimadores dos coeficientes são significativos e o R-quadrado é muito bom (~ 1). Com isso não temos problema quanto à qualidade dos dados.

Vamos agora calcular os valores dos estimadores de q e r.

Para isso vamos apenas inverter as fórmulas dos coeficientes apresentadas acima.

Empacotei as variáveis t, r, q_est e r_est (prazo para o vencimento, taxa de juros de mercado, estimador de dividend yield e estimador de taxa de juros de mercado) em um dataframe para facilitar a visualização.

Como as variáveis estimadas possuem o mesmo valor para todas as opções em um dado vencimento, a ideia aqui é visualizar uma estrutura a termo para essas variáveis e entender o comportamento delas nos vencimentos das opções.

Abaixo temos os gráficos dos estimadores do dividend yield e da taxa de juros livre de risco.

Esta análise demonstra de forma clara o poder do pacote rb3 em facilitar análises financeiras sofisticadas com uma abordagem surpreendentemente simples.

Com apenas uma linha de código - cotahist_options_by_symbols_get("ITUB4") - conseguimos acessar um dataset rico que combina:

  • Dados de mercado de opções (preços, volumes, strikes, vencimentos)
  • Preços do ativo subjacente
  • Curva de juros livre de risco

Essa integração automática de múltiplas fontes de dados é o que torna o rb3 uma ferramenta transformadora. Em vez de precisar navegar por diferentes sistemas, formatos e APIs da B3, o usuário pode focar no que realmente importa: a análise.

Os resultados obtidos - estimadores de dividend yield implícito nas opções - ilustram como dados bem organizados podem revelar informações valiosas do mercado. A descoberta de que as opções “livres de dividendos” da B3 na verdade carregam uma expectativa implícita de dividendos de aproximadamente 1% é um insight que só foi possível pela facilidade de acesso e manipulação dos dados.

O rb3 não é apenas um pacote para baixar dados da B3 - é uma plataforma que democratiza análises quantitativas avançadas no mercado brasileiro. Ele transforma o que antes exigia equipes de TI e processos complexos de ETL em análises que podem ser executadas por qualquer analista quantitativo em poucos minutos.

Como mencionei no início: “Tudo começa com dados” e “Tudo acaba em análises”. O rb3 elimina a fricção entre esses dois pontos, permitindo que você dedique seu tempo ao que realmente agrega valor: extrair insights dos dados para tomar melhores decisões de investimento.

Um abraço, Wilson.

Wilson Freitas

Escrevo semanalmente para lhe ajudar a utilizar linguagem de programação na análise de dados financeiros, estratégias de investimento quantitativas e as melhores práticas para manipulação e visualização de dados. Para que você possa ter conhecimento e ferramentas quantitativas e reproduzir análises quantitativas de forma independente.

Share this page