Índice de condições financeiras no Python: replicando o do BCB

Este exercício apresenta a construção e decomposição do Índice de Condições Financeiras (ICF) para a economia brasileira, utilizando a linguagem Python. Baseado na abordagem do Banco Central do Brasil, o estudo automatiza a coleta de dados públicos e aplica a Análise de Componentes Principais (PCA) para segregar o índice em sete grupos de ativos, como juros locais, juros externo, risco, etc. A análise permite identificar quais vetores estão atuando sobre a economia, oferecendo um diagnóstico preciso sobre a virada do ciclo financeiro observada no início de 2026.

O índice de condições financeiras resume, em um único número, se o ambiente financeiro está apertando ou afrouxando a economia.

Neste tutorial reconstruímos no Python o ICF do Banco Central do Brasil com dados públicos, e o decompomos para ver o que puxa cada movimento.

O resultado replica de perto o índice oficial: a versão que construímos acompanha de perto o ICF divulgado pelo BCB, sem usar nenhuma base paga. A prova está no gráfico abaixo.

Índice de condições financeiras no Python: série replicada vs. ICF oficial do BCB, com correlação de 0,896 entre 2012 e 2022
ICF replicado (azul) vs. ICF oficial do BCB (vermelho), 2012–2022. As duas séries quase se sobrepõem. Fontes: BCB, FRED e Yahoo Finance.

As duas linhas quase se sobrepõem em toda a amostra que o BCB publica, o que valida a metodologia. A seguir mostramos como chegar até esse resultado, passo a passo, e como abrir o índice por grupo de fatores.

Código do exercício

O código com a réplica do Índice de Condições Financeiras do Banco Central com dados públicos está disponível em:

Acessar o código →

O que é um índice de condições financeiras

As condições financeiras descrevem o custo e a disponibilidade de crédito para famílias e empresas. Quando estão restritivas (juros altos, risco elevado, câmbio depreciado, bolsa em queda), elas freiam o consumo e o investimento. Quando estão estimulativas, aceleram.

As condições financeiras se manifestam em dezenas de preços de mercado ao mesmo tempo: juros de vários prazos, prêmios de risco, câmbio, bolsa, commodities. Cada preço carrega um pedaço da informação.

O índice de condições financeiras (ICF) representa esse conjunto de preços num indicador único, construído para que o movimento comum entre eles apareça numa série só. Por convenção, valores positivos indicam aperto e valores negativos indicam afrouxamento.

O ponto é que o ICF precisa ser estimado, e não consultado. Ele resulta de uma sequência de escolhas sobre quais variáveis entram, como se agrupam e quanto cada grupo pesa.

Este exercício replica a metodologia que o Banco Central descreve no Boxe 5 do Relatório de Inflação de dezembro de 2022 e no Estudo Especial nº 76.

A adaptação central é usar apenas fontes públicas e automatizáveis, o que torna o índice reproduzível de ponta a ponta no Python.

Como o índice é construído

A construção segue quatro etapas. Cada uma resolve um problema específico de juntar variáveis muito diferentes em uma medida comparável.

📥

1. Coletar e agrupar
20 variáveis de mercado organizadas em 7 grupos econômicos, de APIs públicas.

🧹

2. Tratar
Frequência mensal, remoção de tendência e padronização por z-score.

🧮

3. Extrair fatores (PCA)
Uma componente principal por grupo, resumindo o movimento comum das variáveis.

⚖️

4. Ponderar e agregar
Peso por relevância econômica, medida contra a atividade futura (IBC-Br).

Os sete grupos de variáveis

As variáveis cobrem tanto o mercado local quanto o global, porque as condições financeiras no Brasil respondem às duas frentes.

Do lado local entram os juros Brasil (NTN-B de 5 e 10 anos e Selic esperada) e o mercado de capitais (Ibovespa, MSCI World e MSCI Emerging Markets).

Do lado externo, os juros exterior (títulos soberanos de EUA, Alemanha, Reino Unido e Japão) e o risco (VIX e spread Brasil-EUA).

Completam o conjunto as moedas (dólar, moedas emergentes e real), o petróleo (WTI e Brent) e as commodities (índices metálico e agropecuário do BCB).

O tratamento das séries

Antes de modelar, todas as séries passam por três ajustes.

A frequência. As séries diárias viram mensais, por média ou último valor do mês, para que todas compartilhem a mesma unidade de tempo.

A remoção de tendência. Variáveis com tendência de longo prazo, como índices de bolsa e commodities, têm a tendência linear subtraída. O índice passa a captar oscilação, e não nível.

A padronização por z-score. Cada série é recentrada em média zero e desvio-padrão um. Sem esse passo, uma variável com números grandes dominaria o resultado só pela unidade em que é medida.

A extração de fatores com PCA

A Análise de Componentes Principais (PCA) encontra, dentro de cada grupo, a combinação das variáveis que captura a maior parte da variação conjunta. Essa combinação, chamada de primeira componente principal, é o fator comum do grupo.

No grupo de juros, por exemplo, quando as taxas de 5 e 10 anos e a Selic esperada sobem juntas, o fator sobe com elas e passa a resumir, em uma série só, o nível de juros.

Reduzir cada grupo a um fator evita contar duas vezes variáveis que andam juntas.

Há um detalhe técnico que muda o resultado: o sinal de uma componente principal é indeterminado. O fator e o seu negativo explicam a mesma variação, e o algoritmo pode devolver qualquer um dos dois.

Para o índice ter interpretação estável, ancoramos o sinal de cada subíndice em uma variável de referência: a NTN-B nos juros, o VIX no risco, o Ibovespa na bolsa. Assim, subíndice maior significa sempre condições mais restritivas.

A ponderação pela relevância econômica

Os sete subíndices não pesam igual no índice final. O peso de cada um vem da sua relevância econômica, medida por uma regressão contra a variação futura do IBC-Br, a proxy mensal do PIB.

Quanto mais um grupo se relaciona com a atividade seis meses à frente, maior o peso que ele recebe. O ICF final é a soma ponderada dos subíndices, padronizada.

A tabela abaixo traz o peso de cada grupo.

Grupo de fatores Peso no índice
Risco 26,3%
Moedas 16,9%
Juros Brasil 16,6%
Mercado de Capitais 14,8%
Commodities 10,5%
Juros Exterior 8,3%
Petróleo 6,5%

Peso de cada grupo no ICF, pela relevância econômica frente à atividade futura. Fonte: elaboração própria.

Risco, moedas e juros locais concentram quase 60% do índice, o que é coerente com o que costuma mover as condições financeiras de uma economia emergente.

O índice até o dado mais recente

Validada a replicação contra o BCB, o mesmo índice pode ser estendido até o dado mais recente, já que todas as fontes são de acesso contínuo. O gráfico abaixo traz a série completa.

Índice de condições financeiras do Brasil replicado no Python, série mensal até o dado mais recente
ICF replicado, série mensal. Acima de zero: aperto; abaixo: afrouxamento. Fontes: BCB, FRED e Yahoo Finance.

Abrindo o índice: a decomposição

Como o ICF é uma soma ponderada dos subíndices, ele pode ser aberto para revelar quanto cada grupo contribuiu em cada mês. Essa abertura é a decomposição.

Ela responde a uma pergunta que o número agregado deixa aberta: um aperto veio dos juros, do câmbio ou do risco global?

Decomposição do índice de condições financeiras por grupo de fatores: contribuição de juros, risco, câmbio, bolsa e commodities
Contribuição de cada grupo ao ICF, mês a mês. A linha preta é o índice agregado. Fontes: BCB, FRED e Yahoo Finance.

Cada barra soma as contribuições dos grupos naquele mês, e a linha preta é o índice resultante.

Nos episódios de aperto, a figura mostra se o empurrão veio dos juros locais, do risco global ou do câmbio. O índice agregado, sozinho, não traz essa origem.

As ferramentas por trás

Logo do Python
Python: orquestra todo o pipeline: coleta, tratamento, PCA e visualização. Com pandas, scikit-learn (PCA e regressão) e plotnine para os gráficos.
Logo do Banco Central do Brasil
Banco Central (SGS e Expectativas): fornece os índices de commodities, o IBC-Br e as expectativas de Selic, via pacote python-bcb.
FRED · Yahoo
FRED e Yahoo Finance: trazem os juros internacionais, VIX, dólar, câmbio, petróleo e os índices acionários, via pandas-datareader e yfinance.

Considerações finais

Este exercício mostra algo que era, até pouco tempo, restrito a mesas de análise: reconstruir um indicador oficial do Banco Central com dados públicos e poucas etapas de código, chegando a uma série que acompanha de perto a original.

O Python reúne num só ambiente a coleta das APIs, o tratamento das séries, a modelagem estatística (PCA e regressão) e a visualização.

Esse caminho, de coletar a tratar, modelar e visualizar, se repete em quase todo problema de análise macrofinanceira. O que muda é a aplicação:

  • Economistas: monitorar o aperto ou afrouxamento das condições financeiras como leitura complementar à política monetária.
  • Analistas de mercado: antecipar inflexões do ciclo, já que condições financeiras costumam anteceder a atividade.
  • Gestores e traders: ler o ambiente de risco de forma sintética e decompô-lo por fator para entender de onde vem o estresse.
  • Risco e research: construir indicadores próprios, calibrados à carteira ou ao mandato, em vez de depender de um número fechado.

Em todas elas o ganho é o mesmo: um indicador reconstruído em casa pode ser aberto por grupo, refeito com outra janela e checado contra a série oficial.

Você viu como funciona. Aprenda a construir do zero

Coletar dados de APIs públicas, tratar séries temporais, aplicar PCA e regressão e montar gráficos: é o que você pratica, do zero e sem pré-requisito, na formação Do Zero à Análise de Dados Econômicos e Financeiros usando Python e IA. Quem quer acesso a todas as formações tem o AM Black, a assinatura anual.

Conheça a formação →Ver o AM Black →

Leia também:

 

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print
Análise Macro © 2011 / 2026

comercial@analisemacro.com.br – Rua Visconde de Pirajá, 414, Sala 718
Ipanema, Rio de Janeiro – RJ – CEP: 22410-002

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp