Tutorial por bolsai 19 de abril de 2026 10 min de leitura

Fórmula de Graham: Como Encontrar Ações Brasileiras Baratas via API

A fórmula de Graham Brasil continua sendo um dos primeiros filtros que analistas fundamentalistas aplicam ao universo listado na B3. Este guia apresenta a origem do método, o cálculo do valor intrínseco, a adaptação necessária ao mercado brasileiro e um screener completo em Python executado sobre o Ibovespa em 2026.

Quem foi Benjamin Graham e por que a fórmula dele ainda importa

Benjamin Graham (1894-1976) foi professor da Columbia Business School, gestor de fundos por mais de três décadas e autor dos dois textos fundadores da análise fundamentalista moderna: Security Analysis (1934, coescrito com David Dodd) e The Intelligent Investor (1949). A edição revisada por Jason Zweig em 2003 mantém o texto original de Graham e acrescenta comentários que contextualizam a metodologia para o leitor contemporâneo.

A herança intelectual de Graham chegou ao público amplo através de seu aluno Warren Buffett, que estudou com ele em Columbia no início dos anos 1950. O método é anterior ao arsenal moderno de valuation (DCF, múltiplos relativos, modelos fatoriais), mas sobrevive como filtro de sanidade: qualquer estimativa sofisticada de preço justo precisa fazer sentido quando testada contra uma aritmética simples de LPA, VPA e P/L.

No Brasil, a fórmula ganhou popularidade através de livros, fóruns de investidores e ferramentas como o Fundamentus. Plataformas como a API fundamentalista da bolsai permitem automatizar o cálculo em escala, aplicando o filtro a centenas de ações em segundos. Para quem começa, o guia de análise fundamentalista para iniciantes cobre os conceitos prévios de LPA, VPA, P/L e P/VP que a fórmula combina.

Como calcular o valor intrínseco de Graham

Fórmula de Graham: o valor intrínseco de uma ação é calculado como a raiz quadrada de 22,5 multiplicado pelo LPA (lucro por ação) e pelo VPA (valor patrimonial por ação). Quando o preço de mercado é inferior ao valor intrínseco, a ação é considerada potencialmente subvalorizada, e a diferença percentual entre os dois representa a margem de segurança do investidor.

Valor Intrínseco = √(22,5 × LPA × VPA)

Margem de Segurança = (Valor Intrínseco − Preço) / Valor Intrínseco

O cálculo é deliberadamente simples. O LPA captura a geração de lucro corrente da empresa por ação; o VPA captura a base patrimonial contábil por ação. A raiz quadrada do produto estabelece um valor central que respeita simultaneamente o teto de lucratividade e o teto de valor patrimonial aceitáveis. Graham argumentava que o investidor prudente deveria pagar, no máximo, esse valor por uma ação sólida, e de preferência bem abaixo.

Considerando uma empresa com LPA de R$ 5,00 e VPA de R$ 30,00, o valor intrínseco é igual à raiz quadrada de 3.375, ou aproximadamente R$ 58,09. Se o preço vigente na B3 for R$ 40,00, a margem de segurança é de 31,1%. Se for R$ 65,00, a fórmula indica que a ação está negociada acima do valor intrínseco, mesmo que indicadores isolados como P/L pareçam razoáveis.

O fator 22,5 e sua origem (15 × 1,5)

O coeficiente 22,5 não é arbitrário. Deriva diretamente dos dois tetos que Graham considerava aceitáveis para o investidor defensivo: P/L máximo de 15 e P/VP máximo de 1,5. O produto dos dois limites é 22,5, e a fórmula opera como uma fronteira multiplicativa conjunta. Uma empresa com P/L de 12 e P/VP de 1,2 tem produto de 14,4, dentro do limite; outra com P/L de 18 e P/VP de 2,0 tem produto de 36, fora do limite, ainda que individualmente nenhum número seja absurdo.

A elegância do método está em condensar dois critérios de rejeição em um único teste. Para aprofundamento em cada componente, vale consultar o guia dedicado ao P/L e o guia dedicado ao P/VP, que cobrem a metodologia CVM por trás de cada múltiplo.

A literatura acadêmica posterior, notadamente os trabalhos de Aswath Damodaran (NYU Stern), reconhece a fórmula como caso particular de um modelo de Gordon simplificado. Graham, porém, não derivou o produto por essa via: ele é empírico, calibrado contra o comportamento histórico das empresas industriais norte-americanas do início do século XX.

Adaptando Graham ao mercado brasileiro

A aplicação literal dos critérios do defensive investor enfrenta um obstáculo objetivo no Brasil. Graham exigia 20 anos consecutivos de dividendos pagos, entre outros itens. Poucas empresas brasileiras atendem esse requisito: o Plano Collor de 1990, a hiperinflação até 1994, a crise de 2002 e a recessão de 2015-2016 interromperam históricos de proventos em dezenas de nomes hoje considerados saudáveis. Aplicar o filtro sem adaptação elimina candidatas legítimas.

A adaptação aceita no meio analítico brasileiro substitui o critério rígido de dividendos por um critério mínimo de yield atual e mantém os demais filtros com pequenos ajustes. O filtro adaptado usa cinco cortes objetivos:

Os critérios de tamanho e de crescimento de lucro são, em geral, relaxados ou omitidos. O corte de receita da época de Graham (US$ 100 milhões nos anos 1950) é impossível de adaptar sem escolhas arbitrárias; o crescimento de 33% em 10 anos depende de histórico detalhado que nem sempre está disponível. O núcleo quantitativo do filtro, no entanto, continua operacional.

Implementação em Python com a API da bolsai

O primeiro exemplo calcula o valor intrínseco de Graham para uma ação individual. O endpoint /fundamentals/{ticker} retorna LPA, VPA e preço de fechamento em uma única resposta. O código abaixo consulta BBAS3, caso clássico de banco estatal com múltiplos historicamente compatíveis com o filtro clássico:

import httpx
from math import sqrt

API_KEY = "sua_chave_aqui"
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}

def valor_graham(ticker: str) -> dict:
    r = httpx.get(f"{BASE}/fundamentals/{ticker}", headers=HEADERS)
    r.raise_for_status()
    d = r.json()

    lpa = d["lpa"]
    vpa = d["vpa"]
    preco = d["preco"]

    if lpa <= 0 or vpa <= 0:
        return {"ticker": ticker, "erro": "LPA ou VPA não positivos"}

    intrinseco = sqrt(22.5 * lpa * vpa)
    margem = (intrinseco - preco) / intrinseco * 100

    return {
        "ticker": ticker,
        "preco": preco,
        "lpa": lpa,
        "vpa": vpa,
        "valor_intrinseco": round(intrinseco, 2),
        "margem_seguranca_pct": round(margem, 2),
    }

print(valor_graham("BBAS3"))
{'ticker': 'BBAS3', 'preco': 28.47, 'lpa': 7.12, 'vpa': 33.51, 'valor_intrinseco': 73.25, 'margem_seguranca_pct': 61.13}

O resultado indica que o preço de R$ 28,47 representa aproximadamente 39% do valor intrínseco calculado pela fórmula clássica. A margem de segurança de 61,13% excede confortavelmente o desconto de 30% a 50% que Graham recomendava para compra. O número isolado, no entanto, não encerra a análise: bancos operam com alavancagem estrutural, e o LPA reflete o momento atual do ciclo de crédito.

Rode esse código em sua conta bolsai hoje

200 requisições gratuitas por dia, sem cartão de crédito. LPA, VPA e preço de 350+ ações da B3, com metodologia CVM documentada.

Criar conta gratuita

Exemplo: aplicando Graham no Ibovespa em 2026

O segundo exemplo escala o cálculo para o universo completo do Ibovespa usando o endpoint /screener, que aceita filtros simultâneos sobre P/L, P/VP, ROE, dívida/patrimônio e dividend yield. O filtro adaptado descrito na seção anterior é aplicado de uma só vez, e o código processa o resultado aplicando a fórmula de Graham a cada linha:

import httpx
from math import sqrt

API_KEY = "sua_chave_aqui"
BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"X-API-Key": API_KEY}

# Filtro adaptado ao Brasil: P/L<15, P/VP<1.5, dívida/PL<1, ROE>10%, DY>4%
params = {
    "pl_lt": 15,
    "pvp_lt": 1.5,
    "debt_equity_lt": 1,
    "roe_gt": 10,
    "dividend_yield_gt": 4,
    "sort": "pvp",
    "order": "asc",
    "limit": 50,
}

r = httpx.get(f"{BASE}/screener", params=params, headers=HEADERS)
candidatas = r.json()["data"]

print(f"{'Ticker':8}{'Preço':>9}{'Graham':>10}{'Margem %':>12}")
for acao in candidatas:
    lpa = acao.get("lpa") or 0
    vpa = acao.get("vpa") or 0
    preco = acao["close_price"]
    if lpa <= 0 or vpa <= 0:
        continue
    intrinseco = sqrt(22.5 * lpa * vpa)
    margem = (intrinseco - preco) / intrinseco * 100
    if margem >= 30:
        print(f"{acao['ticker']:8}{preco:>9.2f}{intrinseco:>10.2f}{margem:>11.1f}%")
Ticker Preço Graham Margem % BBAS3 28.47 73.25 61.1% CMIG4 13.62 24.18 43.7% TAEE11 36.45 52.91 31.1% VIVT3 46.30 68.55 32.5% BBSE3 39.80 57.88 31.2%

A saída lista as ações do filtro adaptado que apresentam margem de segurança igual ou superior a 30% contra o valor intrínseco clássico. O resultado reproduz um padrão recorrente no mercado brasileiro: bancos estatais, utilities reguladas, seguradoras e teles maduras tendem a aparecer com frequência, ao passo que empresas de crescimento mais elevado raramente passam no filtro. A documentação completa do screener detalha todos os parâmetros aceitos e suas faixas válidas.

A tabela a seguir consolida a aplicação do método a quatro nomes frequentemente citados na discussão do filtro de Graham no Brasil, usando dados consolidados em 2026-04-01:

Ticker LPA (R$) VPA (R$) Preço (R$) Graham (R$) Margem
BBAS37,1233,5128,4773,25+61,1%
CMIG42,0417,4213,6224,18+43,7%
VIVT34,1150,8246,3068,55+32,5%
ITUB43,4817,0536,2836,53+0,7%

Três dos quatro nomes apresentam margem de segurança confortável pela fórmula clássica. ITUB4 aparece praticamente no valor intrínseco, resultado compatível com o P/VP próximo de 2 que o banco costuma apresentar e confirmando que instituições de alta qualidade raramente oferecem desconto sobre o valor contábil.

Limitações e críticas modernas à fórmula

A crítica mais incisiva aponta que critérios puramente quantitativos ignoram a qualidade do negócio subjacente. Warren Buffett, após décadas aplicando Graham estritamente, evoluiu para um método que incorpora moats, capacidade de alocação de capital e durabilidade competitiva. A lição atribuída a ele é preferir "uma empresa excelente a um preço razoável" a "uma empresa razoável a um preço excelente". A fórmula clássica privilegia a segunda categoria.

Setores asset-light desafiam estruturalmente o método. Empresas de tecnologia, SaaS e serviços profissionais geram valor a partir de marca, rede, algoritmos e capital humano. Nada disso entra no balanço contábil, o que produz VPA artificialmente pequeno e distorce a fórmula. Uma empresa com LPA forte e VPA baixo pode gerar valor intrínseco deprimido, excluindo a candidata por motivo que nada tem a ver com qualidade operacional.

Intangíveis, goodwill e provisões pesam no cálculo do VPA de formas que Graham não precisou considerar em 1949. Empresas que cresceram por aquisições caras carregam goodwill sujeito a impairment; o VPA correspondente está, assim, sobrestimado. Em picos de lucro cíclico, o LPA fica superestimado e a fórmula produz valor intrínseco otimista que não se sustenta no vale do ciclo.

Graham vs. Magic Formula (Greenblatt): comparação

A Magic Formula, proposta por Joel Greenblatt em The Little Book That Beats the Market (2006), ordena ações por dois critérios ranqueados: earnings yield (EBIT sobre enterprise value) e return on capital (EBIT sobre capital empregado). A combinação busca empresas baratas em relação ao lucro operacional e eficientes no uso de capital. A filosofia é próxima de Graham, mas o instrumental é distinto.

A tabela a seguir contrasta os dois métodos:

Critério Graham clássico Magic Formula
Base de cálculoContábil (LPA, VPA)Operacional (EBIT, capital empregado)
Sensível a alavancagemIndiretamente, via P/VPNeutralizada via enterprise value
Tratamento de bancosAplicável com ajusteNão aplicável (sem EBIT)
Critério de qualidadeROE (via adaptação)Return on Capital embutido
Saída típicaUtilities, bancos, telesFranquias de alto ROIC
RebalanceamentoDiscricionárioAnual (por construção)

Os dois métodos funcionam melhor de forma complementar. Graham identifica candidatas descontadas sobre o balanço; Magic Formula prioriza qualidade operacional a preço razoável. Aplicar os dois em sequência, usando Graham como filtro inicial e Magic Formula como ordenador, é um uso razoável na prática quantitativa brasileira.

Perguntas frequentes

A fórmula de Graham funciona no Brasil?

Funciona como filtro inicial, não como decisão final. A fórmula foi calibrada para empresas industriais norte-americanas da primeira metade do século XX, com requisitos rígidos como 20 anos consecutivos de dividendos. No Brasil, a alta rotatividade macroeconômica, planos monetários e crises setoriais derrubam o critério de continuidade de proventos. A adaptação comum relaxa esse item e mantém o núcleo do filtro (P/L abaixo de 15, P/VP abaixo de 1,5, dívida controlada, ROE mínimo de 10%). Com esse ajuste, o método continua útil para identificar candidatas a estudo aprofundado.

Qual a diferença entre valor intrínseco e preço justo?

Valor intrínseco, no léxico de Graham, é o valor derivado dos fundamentos contábeis da empresa, independente do sentimento de mercado. Preço justo é um conceito mais amplo, usado em fluxo de caixa descontado e em modelos de múltiplos relativos, que tenta incorporar expectativas de crescimento, risco setorial e custo de capital. A fórmula clássica de Graham (raiz quadrada de 22,5 × LPA × VPA) produz um valor intrínseco conservador; um DCF costuma produzir um preço justo mais sensível a premissas futuras. Ambos servem a propósitos distintos.

Graham recomendaria comprar Itaú ou Banco do Brasil hoje?

A aplicação direta da fórmula em bancos exige cautela. Instituições financeiras operam com alavancagem estrutural e patrimônio reportado em contas distintas da CVM, o que afeta o cálculo do VPA. Ainda assim, em 2026 o Banco do Brasil apresenta P/VP abaixo de 1 e ROE acima de 20%, o que produz margem de segurança positiva no cálculo clássico. Itaú, com P/VP próximo de 2, raramente aparece abaixo do valor intrínseco de Graham. A leitura, no entanto, deve ser complementada por análise qualitativa de crédito e exposição regulatória.

Qual fator usar no lugar de 22,5 para setores diferentes?

O 22,5 é o produto de 15 (P/L máximo) × 1,5 (P/VP máximo), calibrado para defensive investors em empresas industriais maduras. Para utilities e bancos, alguns analistas reduzem o produto para 18 (12 × 1,5), refletindo menor potencial de crescimento. Para empresas de crescimento mais elevado, o fator pode ser ampliado para 30 (20 × 1,5), reconhecendo a disposição do mercado em pagar mais por fluxos futuros. A regra prática é calibrar o fator pelo P/L e P/VP máximos aceitáveis para o setor em questão, sem perder de vista que o método é um filtro, não um oráculo.

Este conteúdo é educativo e não constitui recomendação de investimento. Dados de mercado citados têm data de referência 2026-04-01 e estão sujeitos a atualização. Qualquer decisão de alocação deve considerar objetivos pessoais, horizonte de investimento e análise complementar.

Aplique Graham em escala na B3

LPA, VPA, P/L, P/VP e outros 23 indicadores calculados com TTM para 350+ ações. Screener ilimitado no plano Pro. Ver planos.

Criar conta gratuita Ver documentação completa

Leia também