Skip to content

About

Cruzamento de Informações entre a tabela de ações filtradas segundo o IDV (Investidor de Verdade) no site Fundamentus e o filtro de ações do Novo Mercado na B3.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Análise Fundamentalista de Ações — Fundamentus + Novo Mercado (B3)

Notebook em Python que faz a raspagem dos indicadores fundamentalistas de todas as ações listadas no Fundamentus, aplica um filtro de qualidade e cruza o resultado com a carteira do Novo Mercado (índice IGNM da B3), gerando uma lista de ações e gráficos de P/L e P/VP.

Aviso: este projeto é uma ferramenta de estudo e screening quantitativo. Os critérios e limiares são convenções de análise, não constituem recomendação de compra ou venda. Decisões de investimento são de responsabilidade de quem as toma.


Funcionalidades

  • Baixa e interpreta a tabela completa de indicadores do Fundamentus (≈1.000 ações).
  • Detecta as colunas a partir do cabeçalho da tabela, de modo que continua funcionando mesmo quando o Fundamentus adiciona, remove ou reordena colunas.
  • Converte números no padrão brasileiro (1.234,56) e percentuais (12,34% → 0,1234).
  • Aplica um filtro fundamentalista composto (rentabilidade, margens, liquidez e endividamento).
  • Obtém a lista do Novo Mercado direto da API da B3 (sem download manual), com fallback para um CSV local.
  • Plota P/L e P/VP das ações selecionadas.

Fontes de dados

Dado Origem Forma de acesso
Indicadores fundamentalistas fundamentus.com.br/resultado.php Raspagem HTML (BeautifulSoup)
Composição do Novo Mercado (IGNM) API pública da B3 indexProxy/indexCall/GetPortfolioDay/<base64>

A URL da B3 carrega os parâmetros da consulta codificados em base64 (ex.: {"language":"pt-br","pageNumber":1,"pageSize":1000,"index":"IGNM","segment":"1"}). Trocando o campo index, a mesma função serve para outros índices (IBOV, IFIX, SMLL, etc.).


Pré-requisitos

  • Python 3.9+
  • Bibliotecas:
pip install beautifulsoup4 lxml pandas numpy matplotlib

As demais dependências (urllib, json, base64, unicodedata) fazem parte da biblioteca padrão do Python.


Como usar

Google Colab

  1. Abra o notebook no Colab.
  2. Execute as células na ordem. A lista do Novo Mercado é buscada automaticamente da API da B3 — não é preciso montar o Google Drive.
  3. Caso a API esteja indisponível, o bloco except usa um CSV local; nesse caso, baixe o arquivo do índice IGNM em https://sistemaswebb3-listados.b3.com.br/indexPage/day/IGNM?language=pt-br e ajuste o caminho em caminho_csv.

Localmente (Jupyter / VS Code)

git clone <url-do-repositorio>
cd <repositorio>
pip install -r requirements.txt   # ou o comando pip acima
jupyter notebook Fundamentos_IDV_v4_novomercado.ipynb

Estrutura do notebook

# Célula O que faz
1 Raspagem Baixa o HTML do Fundamentus e localiza a tabela de resultados.
2 Extração Lê os nomes das colunas do cabeçalho, mapeia para nomes limpos e monta o DataFrame com o texto cru de cada célula.
3 Tratamento Converte o formato brasileiro em número (to_number); percentuais viram fração; liquidez e patrimônio são expressos em milhões de R$.
4 Filtro Aplica os critérios fundamentalistas e ordena por P/L.
5 Novo Mercado Busca a carteira IGNM na API da B3 (com fallback para CSV).
6 Cruzamento Mantém apenas as ações aprovadas que também estão no Novo Mercado.
7 Gráficos Barras horizontais de P/L e P/VP das ações finais.

Critérios do filtro

O filtro combina rentabilidade, eficiência, liquidez e solvência:

Indicador Regra Objetivo
ROE >= 6% Retorno sobre o patrimônio
ROIC >= 6% Retorno sobre o capital investido
Margem líquida >= 4% Lucratividade
Margem EBIT >= 4% Rentabilidade operacional (garante EBIT > 0)
Liquidez 2 meses >= R$ 8 mi Volume negociado suficiente
Patrimônio líquido >= R$ 1,5 mi Porte mínimo
Dívida líquida / Patrimônio < 1,0 Endividamento controlado
Dívida líquida / EBIT < 3 Dívida quitável em poucos anos
Liquidez corrente >= 1,0 Folga de caixa no curto prazo

Nota sobre a dívida: o Fundamentus deixou de divulgar Dívida Bruta/Patrimônio na tela de resultados, passando a Dívida Líquida/Patrimônio. Como a dívida líquida desconta o caixa, o limiar foi ajustado para < 1,0 (mais estrito). A métrica Dívida Líquida/EBIT é derivada de EV/EBIT − P/EBIT, sem depender do valor contábil do patrimônio. Valores negativos indicam caixa líquido (empresa com mais caixa que dívida) e passam naturalmente nos critérios.

Todos os limiares ficam comentados na célula de filtro para facilitar a calibração. Setores como bancos e utilities têm alavancagem estruturalmente diferente e podem pedir limiares próprios.


Observações técnicas

  • Codificação: o Fundamentus responde em latin-1; o tratamento já considera isso.
  • Robustez a mudanças de layout: as colunas são identificadas por nome (não por posição), então a inserção de uma coluna nova no meio da tabela não desalinha os demais indicadores.
  • Reprodutibilidade: os dados são de mercado e mudam a cada dia; a saída varia conforme a data de execução.

Licença

Defina a licença do projeto (ex.: MIT). Os dados pertencem às respectivas fontes (Fundamentus e B3) e estão sujeitos aos termos de uso delas.

About

Cruzamento de Informações entre a tabela de ações filtradas segundo o IDV (Investidor de Verdade) no site Fundamentus e o filtro de ações do Novo Mercado na B3.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages