Títulos Públicos Federais (TPF)
Porta de entrada principal para dados de mercado de títulos públicos: taxas indicativas, vencimentos, estoque, dealers, negociações secundárias, leilões, benchmarks e Relatório Mensal da Dívida (RMD).
Para precificação e análise por tipo de título (cotação, duration, prêmio), consulte as páginas individuais: LFT, LTN, NTN-B, NTN-F, etc.
Taxas indicativas
Use yd.tpf.taxas(...) para consultar uma data e
yd.tpf.taxas_historicas(...) para consultar um período ou todo o histórico
disponível. As duas funções retornam o mesmo conjunto estável de colunas.
import pyield as yd
taxas_dia = yd.tpf.taxas("23-08-2024", titulo="PRE")
taxas_periodo = yd.tpf.taxas_historicas(
inicio="01-08-2024",
fim="31-08-2024",
titulo="PRE",
)
Convenções de escala e precisão
A tabela resume as regras adotadas pela PYield na precificação de títulos públicos federais. LTN, NTN-F, NTN-B, NTN-C e LFT seguem a metodologia da STN para títulos ofertados em leilões primários. A NTN-B Principal e a NTN-B1, vendidas exclusivamente pelo Tesouro Direto, seguem as regras próprias desse programa.
| Variáveis | LTN | NTN-F | NTN-B | NTN-B Principal | NTN-B1 | NTN-C | LFT |
|---|---|---|---|---|---|---|---|
| Taxa de retorno | T8 / I8 | T8 / I8 | T8 / I8 | A4 | I | T8 / I8 | T8 / I8 |
| Juros semestrais (a.a.) | -- | A5 | A8 | -- | -- | A8 | -- |
| Fluxo de pagamentos descontados | -- | A9 | A12 | -- | A12 | A12 | -- |
| Cotação (base 1) | -- | -- | T6 | T6 | T6 | T6 | T6 |
| Valor nominal atualizado (VNA) | -- | -- | T6 / I6 | I6 | I6 | T6 / I6 | T6 / I6 |
| Valor nominal atualizado (VNA, projeções) | -- | -- | T6 | -- | -- | T6 | T6 |
| Fator acumulado da taxa Selic | -- | -- | -- | -- | -- | -- | A16 |
| Projeções | -- | -- | A4 | -- | -- | A4 | -- |
| Fator pro rata (projeções) | -- | -- | T14 | -- | -- | T14 | -- |
| Variação do mês oficial | -- | -- | T16 | -- | -- | T16 | -- |
| Exponencial de dias | T14 | T14 | T14 | T14 | T14 | T14 | T14 |
| Preço unitário (PU) | T6 / I6 | T6 / I6 | T6 | T6 | T6 | T6 | T6 |
| Valor financeiro | T2 | T2 | T2 | T2 | T2 | T2 | T2 |
Na tabela, T significa truncado, A, arredondado, e I, informado.
Na NTN-B1, T6 descreve a função cotacao. A função
cotacao_curva_zero arredonda cada fluxo em A12, mas não trunca a soma final,
pois ela é usada como alvo da calibração da taxa equivalente.
Na metodologia da STN para os leilões primários, taxas, projeções, cupons e cotações são apresentados na escala percentual ou em base 100. A PYield recebe taxas e representa cotações como fatores decimais em base 1. Por isso, as regras correspondentes são deslocadas em duas casas: T6 para a taxa percentual torna-se T8 para a taxa decimal, T4 torna-se T6 para a cotação, A6 torna-se A8 e A10 torna-se A12.
Por exemplo, a cotação 99,3651 apresentada pela STN corresponde ao fator
0,993651 retornado pela PYield. As duas representações preservam o mesmo valor
e a mesma precisão normativa:
As regras usadas para LTN, NTN-F, NTN-B, NTN-C e LFT estão na metodologia da STN para os títulos ofertados em leilões primários.
Títulos Públicos Federais.
benchmarks(titulo=None, incluir_historico=False)
Busca benchmarks de títulos públicos brasileiros.
Fonte: API do Tesouro Nacional.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
titulo
|
str | None
|
Tipo do título a filtrar (ex.: |
None
|
incluir_historico
|
bool
|
Se |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com os benchmarks. Retorna DataFrame vazio se |
DataFrame
|
não houver dados. |
Output Columns
- titulo (String): tipo do título (ex.:
"LTN","LFT"). - data_vencimento (Date): data de vencimento do benchmark.
- benchmark (String): nome/identificador do benchmark.
- data_inicio (Date): data de início da vigência.
- data_fim (Date): data de término da vigência.
Notes
Documentação da API: https://portal-conhecimento.tesouro.gov.br/catalogo-componentes/api-leil%C3%B5es
Examples:
Source code in pyield/tpf/benchmark.py
curva_pre(data)
Constrói a curva PRE (taxas zero cupom prefixadas).
Combina taxas de LTN (já zero cupom) com taxas spot derivadas de NTN-F via bootstrap. O resultado é a curva de juros prefixada brasileira expressa em taxas zero cupom.
Fonte: ANBIMA (taxas indicativas de LTN e NTN-F).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame com a curva PRE para a data solicitada. Retorna DataFrame |
DataFrame
|
vazio se não houver dados de LTN disponíveis. |
Output Columns
- data_vencimento (Date): data de vencimento do vértice.
- dias_uteis (Int64): dias úteis entre a data de referência e o vencimento.
- taxa_zero (Float64): taxa zero cupom anualizada (base 252).
Raises:
| Type | Description |
|---|---|
ValueError
|
Se houver NTN-F sem dados de LTN para bootstrap. |
Examples:
>>> yd.tpf.curva_pre("18-06-2025")
shape: (17, 3)
┌─────────────────┬────────────┬───────────┐
│ data_vencimento ┆ dias_uteis ┆ taxa_zero │
│ --- ┆ --- ┆ --- │
│ date ┆ i64 ┆ f64 │
╞═════════════════╪════════════╪═══════════╡
│ 2025-07-01 ┆ 8 ┆ 0.14835 │
│ 2025-10-01 ┆ 74 ┆ 0.147463 │
│ 2026-01-01 ┆ 138 ┆ 0.147752 │
│ 2026-04-01 ┆ 199 ┆ 0.147947 │
│ 2026-07-01 ┆ 260 ┆ 0.147069 │
│ … ┆ … ┆ … │
│ 2030-01-01 ┆ 1135 ┆ 0.137279 │
│ 2031-01-01 ┆ 1387 ┆ 0.138154 │
│ 2032-01-01 ┆ 1639 ┆ 0.13876 │
│ 2033-01-01 ┆ 1891 ┆ 0.1393 │
│ 2035-01-01 ┆ 2390 ┆ 0.141068 │
└─────────────────┴────────────┴───────────┘
Source code in pyield/tpf/titulos/pre.py
estoque(data)
Busca dados de estoque de TPFs.
Fonte: IMA-Q da ANBIMA. Contém quantidade em mercado, valor de mercado e variação diária da quantidade dos títulos.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com dados de estoque. Retorna DataFrame vazio se a |
DataFrame
|
data for inválida ou não houver dados. |
Output Columns
- data_referencia (Date): data de referência dos dados.
- titulo (String): tipo do título público.
- data_vencimento (Date): data de vencimento do título.
- codigo_selic (Int64): código SELIC do título.
- isin (String): código ISIN.
- pu (Float64): preço unitário do título em reais.
- quantidade_mercado (Int64): quantidade em mercado.
- valor_mercado (Int64): valor de mercado em reais.
- variacao_quantidade (Int64): variação diária da quantidade.
- status_titulo (String): status do título.
Examples:
>>> import datetime as dt
>>> data = yd.du.deslocar(dt.date.today(), -2)
>>> df = yd.tpf.estoque(data)
>>> df.shape[0] > 0
True
Source code in pyield/anbima/imaq.py
premios_pre(data, pontos_base=False)
Calcula o prêmio dos títulos prefixados (LTN e NTN-F) sobre o DI.
Em linguagem de mercado, esse valor é chamado de prêmio. Em termos descritivos, trata-se do spread sobre o DI.
Definição do prêmio
premio = taxa indicativa do PRE - taxa de ajuste do DI
Quando pontos_base=False a coluna retorna essa diferença em formato
decimal (ex: 0.000439 ≈ 4.39 bps). Quando pontos_base=True o valor
é automaticamente multiplicado por 10_000 e exibido diretamente em
basis points.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data da consulta para buscar as taxas. |
required |
pontos_base
|
bool
|
Se True, retorna o prêmio já convertido em basis points. Padrão False. |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame com as colunas do prêmio. Retorna DataFrame vazio se |
DataFrame
|
não houver dados. |
Output Columns
- titulo (String): tipo do título.
- data_vencimento (Date): data de vencimento.
- premio (Float64): prêmio em decimal ou bps conforme parâmetro (spread sobre o DI).
Examples:
>>> yd.tpf.premios_pre("30-05-2025", pontos_base=True)
shape: (18, 3)
┌────────┬─────────────────┬────────┐
│ titulo ┆ data_vencimento ┆ premio │
│ --- ┆ --- ┆ --- │
│ str ┆ date ┆ f64 │
╞════════╪═════════════════╪════════╡
│ LTN ┆ 2025-07-01 ┆ 4.39 │
│ LTN ┆ 2025-10-01 ┆ -9.0 │
│ LTN ┆ 2026-01-01 ┆ -4.88 │
│ LTN ┆ 2026-04-01 ┆ -4.45 │
│ LTN ┆ 2026-07-01 ┆ 0.81 │
│ … ┆ … ┆ … │
│ NTN-F ┆ 2027-01-01 ┆ -3.31 │
│ NTN-F ┆ 2029-01-01 ┆ 14.21 │
│ NTN-F ┆ 2031-01-01 ┆ 21.61 │
│ NTN-F ┆ 2033-01-01 ┆ 11.51 │
│ NTN-F ┆ 2035-01-01 ┆ 22.0 │
└────────┴─────────────────┴────────┘
Source code in pyield/tpf/titulos/_utils.py
taxas(data, titulo=None)
Busca taxas e preços indicativos de TPFs.
Fonte: ANBIMA. Primeiro consulta o cache local de dados históricos; se a data não estiver no cache, busca diretamente na fonte da ANBIMA.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência. |
required |
titulo
|
TipoTPF | None
|
Tipo do título público federal. Aceita |
None
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com taxas e preços indicativos. Retorna DataFrame |
DataFrame
|
vazio se não houver dados para a data. |
Output Columns
- titulo (String): tipo do título público.
- data_referencia (Date): data de referência dos dados.
- codigo_selic (Int64): código do título no SELIC.
- data_base (Date): data base ou de emissão do título.
- data_vencimento (Date): data de vencimento do título.
- pu (Float64): preço unitário para liquidação em D0.
- taxa_compra (Float64): taxa de compra em D0.
- taxa_venda (Float64): taxa de venda em D0.
- taxa_indicativa (Float64): taxa indicativa em D0.
Examples:
Source code in pyield/tpf/_taxas.py
taxas_historicas(inicio=None, fim=None, titulo=None)
Consulta o histórico de taxas e preços indicativos de TPFs.
Fonte: ANBIMA, em painel histórico publicado pela PYield. Os filtros de período são inclusivos. Sem argumentos, retorna todo o histórico disponível.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
inicio
|
DateLike | None
|
Data inicial do período. Se omitida, não limita o início. |
None
|
fim
|
DateLike | None
|
Data final do período. Se omitida, não limita o fim. |
None
|
titulo
|
TipoTPF | None
|
Tipo do título público federal. Aceita |
None
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com o histórico de taxas e preços indicativos. Retorna |
DataFrame
|
DataFrame vazio se não houver dados para os filtros informados. |
Output Columns
- titulo (String): tipo do título público.
- data_referencia (Date): data de referência dos dados.
- codigo_selic (Int64): código do título no SELIC.
- data_base (Date): data base ou de emissão do título.
- data_vencimento (Date): data de vencimento do título.
- pu (Float64): preço unitário para liquidação em D0.
- taxa_compra (Float64): taxa de compra em D0.
- taxa_venda (Float64): taxa de venda em D0.
- taxa_indicativa (Float64): taxa indicativa em D0.
Raises:
| Type | Description |
|---|---|
ValueError
|
Se |
Examples:
Source code in pyield/tpf/_taxas.py
vencimentos(data, titulo)
Busca vencimentos de TPFs disponíveis nas taxas indicativas.
Fonte: ANBIMA, mesma base usada por yd.tpf.taxas.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência. |
required |
titulo
|
TipoTPF
|
Tipo do título público federal. Aceita |
required |
Returns:
| Type | Description |
|---|---|
Series
|
Series ordenada com os vencimentos disponíveis. |
Examples:
>>> yd.tpf.vencimentos(data="22-08-2025", titulo="PRE")
shape: (18,)
Series: 'data_vencimento' [date]
[
2025-10-01
2026-01-01
2026-04-01
2026-07-01
2026-10-01
…
2030-01-01
2031-01-01
2032-01-01
2033-01-01
2035-01-01
]
Source code in pyield/tpf/_taxas.py
Acesso técnico à fonte ANBIMA
O módulo pyield.anbima.taxas permite baixar ou ler o arquivo da ANBIMA com
todas as colunas processadas da fonte. Essa camada é indicada para integração
com a fonte; para análises de TPF, prefira a visão estável de yd.tpf.
Taxas de Títulos Públicos Federais (TPF) da ANBIMA.
Fonte
https://www.anbima.com.br/pt_br/informar/taxas-de-titulos-publicos.htm
Exemplo de URL
https://www.anbima.com.br/informacoes/merc-sec/arqs/ms240614.txt
Exemplo de dado bruto (CSV separado por @, encoding latin1): ANBIMA - Associação Brasileira das Entidades dos Mercados Financeiro e de Capitais
Titulo@Data Referencia@Codigo SELIC@Data Base/Emissao@Data Vencimento@Tx. Compra@Tx. Venda@Tx. Indicativas@PU@Desvio padrao@Interv. Ind. Inf. (D0)@Interv. Ind. Sup. (D0)@Interv. Ind. Inf. (D+1)@Interv. Ind. Sup. (D+1)@Criterio
LTN@20250924@100000@20230707@20251001@14,9483@14,9263@14,9375@997,241543@0,00433039162894@14,7341@15,2612@14,7316@15,2689@Calculado
LTN@20250924@100000@20200206@20260101@14,7741@14,7485@14,7616@963,001853@0,00729826731971@14,7008@14,9986@14,7021@14,9975@Calculado
baixar_arquivo(data)
Baixa o arquivo bruto de taxas de TPF publicado pela ANBIMA.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência do arquivo. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Bytes do arquivo publicado pela ANBIMA, sem decodificação ou parsing. |
Raises:
| Type | Description |
|---|---|
HTTPError
|
Se o arquivo não estiver disponível ou a resposta HTTP indicar erro. |
ValueError
|
Se |
Source code in pyield/anbima/taxas.py
buscar(data)
Busca e processa taxas de TPF diretamente na ANBIMA.
Fonte: arquivo de taxas de títulos públicos da ANBIMA.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência do arquivo. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame com todas as colunas processadas da fonte. Retorna DataFrame |
DataFrame
|
vazio para datas válidas sem dados disponíveis. |
Output Columns
- titulo (String): tipo do título público.
- data_referencia (Date): data de referência dos dados.
- codigo_selic (Int64): código do título no SELIC.
- data_base (Date): data base ou de emissão do título.
- data_vencimento (Date): data de vencimento do título.
- taxa_compra (Float64): taxa de compra em D0.
- taxa_venda (Float64): taxa de venda em D0.
- taxa_indicativa (Float64): taxa indicativa em D0.
- pu (Float64): preço unitário para liquidação em D0.
- desvio_padrao (Float64): desvio padrão das taxas observadas.
- taxa_intervalo_inf_d0 (Float64): limite inferior indicativo em D0.
- taxa_intervalo_sup_d0 (Float64): limite superior indicativo em D0.
- taxa_intervalo_inf_d1 (Float64): limite inferior indicativo em D+1.
- taxa_intervalo_sup_d1 (Float64): limite superior indicativo em D+1.
- criterio (String): critério usado pela ANBIMA para o título.
Raises:
| Type | Description |
|---|---|
ValueError
|
Se |
Source code in pyield/anbima/taxas.py
ler(fonte)
Lê taxas de TPF da ANBIMA a partir de bytes ou arquivo local.
Fonte: arquivo de taxas de títulos públicos da ANBIMA.
Arquivos atuais .txt são lidos diretamente. Arquivos históricos
.exe são tratados como ZIPs e o arquivo interno é lido.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fonte
|
bytes | _CaminhoArquivo
|
Bytes do arquivo bruto ou caminho do arquivo salvo localmente. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com todas as colunas processadas da fonte. |
Output Columns
- titulo (String): tipo do título público.
- data_referencia (Date): data de referência dos dados.
- codigo_selic (Int64): código do título no SELIC.
- data_base (Date): data base ou de emissão do título.
- data_vencimento (Date): data de vencimento do título.
- taxa_compra (Float64): taxa de compra em D0.
- taxa_venda (Float64): taxa de venda em D0.
- taxa_indicativa (Float64): taxa indicativa em D0.
- pu (Float64): preço unitário para liquidação em D0.
- desvio_padrao (Float64): desvio padrão das taxas observadas.
- taxa_intervalo_inf_d0 (Float64): limite inferior indicativo em D0.
- taxa_intervalo_sup_d0 (Float64): limite superior indicativo em D0.
- taxa_intervalo_inf_d1 (Float64): limite inferior indicativo em D+1.
- taxa_intervalo_sup_d1 (Float64): limite superior indicativo em D+1.
- criterio (String): critério usado pela ANBIMA para o título.
Source code in pyield/anbima/taxas.py
secundario
Negociações do mercado secundário de TPFs no sistema Selic do BCB.
baixar_zip(data, extragrupo=False)
Baixa o ZIP bruto mensal de negociações secundárias de TPFs.
Fonte: Banco Central do Brasil, sistema SELIC. A fonte publica um arquivo
por mês; por isso, apenas o ano e o mês de data são usados.
A função valida a estrutura mínima do ZIP antes de retornar os bytes, para evitar que pipelines de ingestão salvem bronze vazio, corrompido ou sem CSV plausível.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência. Apenas ano e mês definem o arquivo. |
required |
extragrupo
|
bool
|
Se verdadeiro, baixa o arquivo extragrupo. |
False
|
Returns:
| Type | Description |
|---|---|
bytes
|
Bytes validados do arquivo ZIP mensal publicado pelo BCB. |
Raises:
| Type | Description |
|---|---|
HTTPError
|
Se o arquivo não estiver disponível no BCB ou a resposta HTTP indicar erro. |
ValueError
|
Se o conteúdo baixado não for um ZIP bruto plausível. |
Examples:
Source code in pyield/tpf/secundario/_mensal.py
intradia()
Busca dados intradia do mercado secundário de TPFs.
Fonte: Banco Central do Brasil, sistema SELIC. Os dados ficam disponíveis apenas durante o horário do SELIC (09:00-22:00 BRT) em dias úteis.
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com negociações intradia do mercado secundário. |
DataFrame
|
Retorna DataFrame vazio fora do horário do SELIC. |
Output Columns
- data_hora_consulta (Datetime): data e hora da consulta.
- data_liquidacao (Date): data de liquidação à vista.
- titulo (String): sigla do título público.
- codigo_selic (Int64): código SELIC do título.
- data_vencimento (Date): data de vencimento do título.
- pu_minimo (Float64): menor preço negociado.
- pu_medio (Float64): preço médio negociado.
- pu_maximo (Float64): maior preço negociado.
- pu_ultimo (Float64): último preço negociado.
- taxa_minima (Float64): menor taxa negociada.
- taxa_media (Float64): taxa média negociada.
- taxa_maxima (Float64): maior taxa negociada.
- taxa_ultima (Float64): última taxa negociada.
- operacoes (Int64): total de operações liquidadas.
- quantidade (Int64): quantidade total de títulos negociados.
- financeiro (Float64): valor financeiro total negociado.
- operacoes_corretagem (Int64): operações via corretagem.
- quantidade_corretagem (Int64): títulos via corretagem.
- termo_pu_minimo (Float64): menor preço a termo negociado.
- termo_pu_medio (Float64): preço médio a termo negociado.
- termo_pu_ultimo (Float64): último preço a termo negociado.
- termo_pu_maximo (Float64): maior preço a termo negociado.
- termo_taxa_ultima (Float64): última taxa a termo negociada.
- termo_taxa_minima (Float64): menor taxa a termo negociada.
- termo_taxa_media (Float64): taxa média a termo negociada.
- termo_taxa_maxima (Float64): maior taxa a termo negociada.
- termo_operacoes (Int64): total de operações a termo.
- termo_quantidade (Int64): total de títulos a termo negociados.
- termo_financeiro (Float64): valor financeiro total a termo.
- termo_operacoes_corretagem (Int64): operações a termo via corretagem.
- termo_quantidade_corretagem (Int64): títulos a termo via corretagem.
Examples:
Source code in pyield/tpf/secundario/_intradia.py
ler_zip(caminho)
Lê um ZIP mensal local do secundário de TPFs e converte para silver.
Fonte: Banco Central do Brasil, sistema SELIC. Esta função é um atalho para
pipelines que salvam o bronze bruto e depois processam o arquivo local com o
mesmo schema de zip_para_silver.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
caminho
|
CaminhoArquivo
|
Caminho do arquivo ZIP bruto. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com dados mensais do mercado secundário. |
Examples:
Source code in pyield/tpf/secundario/_mensal.py
mensal(data, extragrupo=False)
Busca dados mensais do mercado secundário de TPFs.
Fonte: Banco Central do Brasil, sistema SELIC. Baixa o ZIP mensal de
negociações secundárias, valida o bronze bruto e retorna o DataFrame ouro.
Apenas o ano e o mês de data são usados para identificar o arquivo.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência. Apenas ano e mês definem o arquivo. |
required |
extragrupo
|
bool
|
Se verdadeiro, busca apenas negociações extragrupo. |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com dados mensais do mercado secundário. |
Output Columns
- data_liquidacao (Date): data de liquidação da negociação.
- titulo (String): sigla do título público.
- codigo_selic (Int64): código único no sistema SELIC.
- isin (String): código ISIN.
- data_emissao (Date): data de emissão do título.
- data_vencimento (Date): data de vencimento do título.
- operacoes (Int64): número total de operações.
- quantidade (Int64): quantidade total negociada.
- pu_minimo (Float64): preço unitário mínimo.
- pu_medio (Float64): preço unitário médio.
- pu_maximo (Float64): preço unitário máximo.
- pu_lastro (Float64): preço unitário de lastro.
- valor_par (Float64): valor par do título.
- taxa_minima (Float64): taxa mínima.
- taxa_media (Float64): taxa média.
- taxa_maxima (Float64): taxa máxima.
- operacoes_corretagem (Int64): operações com corretagem.
- quantidade_corretagem (Int64): quantidade com corretagem.
- financeiro (Float64): valor financeiro negociado.
Notes
Esta é a camada ouro mensal: retorna o schema de zip_para_silver
acrescido de financeiro = quantidade * pu_medio.
Examples:
Source code in pyield/tpf/secundario/_mensal.py
nome_arquivo_mensal(data, extragrupo=False)
Retorna o nome do arquivo ZIP mensal do secundário no BCB/SELIC.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data de referência. Apenas ano e mês definem o arquivo. |
required |
extragrupo
|
bool
|
Se verdadeiro, retorna o nome do arquivo extragrupo. |
False
|
Returns:
| Type | Description |
|---|---|
str
|
Nome do arquivo ZIP mensal publicado pelo BCB. |
Examples:
>>> yd.tpf.secundario.nome_arquivo_mensal("07-06-2026")
'NegT202606.ZIP'
>>> yd.tpf.secundario.nome_arquivo_mensal("07-01-2025", extragrupo=True)
'NegE202501.ZIP'
Source code in pyield/tpf/secundario/_mensal.py
zip_para_silver(conteudo_zip)
Converte o ZIP mensal bruto do secundário de TPFs em silver.
Fonte: Banco Central do Brasil, sistema SELIC. Esta função representa a etapa bronze -> silver: extrai o CSV interno, limpa os campos, converte tipos e retorna o schema Polars canônico usado pela PYield. Ela não faz enriquecimento para camada ouro.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
conteudo_zip
|
bytes
|
Bytes do arquivo ZIP bruto mensal. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com dados mensais do mercado secundário. |
Output Columns
- data_liquidacao (Date): data de liquidação da negociação.
- titulo (String): sigla do título público.
- codigo_selic (Int64): código único no sistema SELIC.
- isin (String): código ISIN.
- data_emissao (Date): data de emissão do título.
- data_vencimento (Date): data de vencimento do título.
- operacoes (Int64): número total de operações.
- quantidade (Int64): quantidade total negociada.
- pu_minimo (Float64): preço unitário mínimo.
- pu_medio (Float64): preço unitário médio.
- pu_maximo (Float64): preço unitário máximo.
- pu_lastro (Float64): preço unitário de lastro.
- valor_par (Float64): valor par do título.
- taxa_minima (Float64): taxa mínima.
- taxa_media (Float64): taxa média.
- taxa_maxima (Float64): taxa máxima.
- operacoes_corretagem (Int64): operações com corretagem.
- quantidade_corretagem (Int64): quantidade com corretagem.
Notes
O schema silver é estável para concatenação entre meses. Em layouts
antigos da fonte que não trazem corretagem, operacoes_corretagem e
quantidade_corretagem são retornadas como nulas.
Examples:
>>> conteudo = yd.tpf.secundario.baixar_zip("07-01-2025")
>>> df = yd.tpf.secundario.zip_para_silver(conteudo)
Source code in pyield/tpf/secundario/_mensal.py
leiloes
Busca resultados de leilões de TPFs.
Fonte: Tesouro Nacional. Dados disponíveis a partir de 04/01/2018. Retorna dados de quantidades, financeiros, taxas de colocação, duration e DV01 dos leilões no período informado.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike | DatesLike | None
|
Data ou sequência de datas do leilão. Padrão é |
None
|
inicio
|
DateLike | None
|
Data inicial da consulta. Padrão é |
None
|
fim
|
DateLike | None
|
Data final da consulta. Padrão é |
None
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com os dados processados dos leilões. Se |
DataFrame
|
uma sequência, concatena os resultados das datas informadas. Se |
DataFrame
|
|
DataFrame
|
nenhum filtro temporal for informado, retorna o histórico completo. |
DataFrame
|
Retorna DataFrame vazio se não houver dados para o período. |
Output Columns
- data_1v (Date): data de realização do leilão.
- data_liquidacao_1v (Date): data de liquidação financeira da 1ª volta.
- data_liquidacao_2v (Date): data de liquidação financeira da 2ª volta.
- numero_edital (Int64): número do edital do leilão.
- tipo_leilao (String): tipo da operação.
- tipo_ocorrencia (String): classificação da ocorrência do leilão.
- titulo (String): código do título público leiloado.
- benchmark (String): descrição de referência do título.
- data_vencimento (Date): data de vencimento do título.
- dias_uteis (Int32): dias úteis entre liquidação e vencimento.
- dias_corridos (Int32): dias corridos entre liquidação e vencimento.
- duration (Float64): duration de Macaulay em anos.
- prazo_medio (Float64): maturidade média em anos.
- quantidade_ofertada_1v (Int64): quantidade ofertada na 1ª volta.
- quantidade_ofertada_2v (Int64): quantidade ofertada na 2ª volta.
- quantidade_aceita_1v (Int64): quantidade aceita na 1ª volta.
- quantidade_aceita_2v (Int64): quantidade aceita na 2ª volta.
- quantidade_aceita_total (Int64): quantidade aceita total.
- quantidade_liquidada_1v (Int64): quantidade liquidada na 1ª volta.
- quantidade_liquidada_2v (Int64): quantidade liquidada na 2ª volta.
- financeiro_ofertado_1v (Float64): financeiro ofertado na 1ª volta.
- financeiro_ofertado_2v (Float64): financeiro ofertado na 2ª volta.
- financeiro_ofertado_total (Float64): financeiro ofertado total.
- financeiro_aceito_1v (Float64): financeiro aceito na 1ª volta.
- financeiro_aceito_2v (Float64): financeiro aceito na 2ª volta.
- financeiro_aceito_total (Float64): financeiro aceito total.
- quantidade_bcb (Int64): quantidade adquirida pelo Banco Central.
- financeiro_bcb (Int64): financeiro adquirido pelo Banco Central.
- colocacao_1v (Float64): taxa de colocação da 1ª volta.
- colocacao_2v (Float64): taxa de colocação da 2ª volta.
- colocacao_total (Float64): taxa de colocação total.
- dv01_1v (Float64): DV01 da 1ª volta em reais.
- dv01_2v (Float64): DV01 da 2ª volta em reais.
- dv01_total (Float64): DV01 total em reais.
- ptax (Float64): PTAX usada na conversão para dólar.
- dv01_1v_usd (Float64): DV01 da 1ª volta em dólar.
- dv01_2v_usd (Float64): DV01 da 2ª volta em dólar.
- dv01_total_usd (Float64): DV01 total em dólar.
- pu_minimo (Float64): preço unitário mínimo aceito.
- pu_medio (Float64): preço unitário médio ponderado aceito.
- tipo_pu_medio (String): origem do PU médio.
- taxa_media (Float64): taxa média aceita.
- taxa_maxima (Float64): taxa máxima aceita.
Notes
data não pode ser combinado com inicio ou fim. fim só
pode ser usado junto com inicio.
Source code in pyield/tpf/leiloes.py
352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 | |
dealers
Busca os dealers do Tesouro Nacional vigentes em uma data.
Dealers são instituições financeiras credenciadas pelo Tesouro Nacional para atuar nas emissões primárias e no mercado secundário de títulos públicos federais. A composição é revista periodicamente.
Fonte: API de Leilões da Dívida Pública do Tesouro Nacional.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike | None
|
Data de referência do credenciamento. Se |
None
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame Polars com as instituições cujo período de credenciamento |
DataFrame
|
contém a data informada. Retorna DataFrame vazio, com esquema estável, |
DataFrame
|
se a fonte não possuir registros para a data. |
Output Columns
- inicio_periodo (Date): início do período de credenciamento.
- fim_periodo (Date): fim do período de credenciamento.
- cnpj (String): CNPJ da instituição credenciada.
- instituicao (String): nome da instituição credenciada como dealer.
Notes
A função preserva os nomes e períodos publicados pela fonte. O endpoint não informa o tipo da instituição, o conglomerado financeiro nem os objetos de negociação escolhidos pelo dealer.
Examples:
>>> df = yd.tpf.dealers("15-03-2026")
>>> df.is_empty() or df["inicio_periodo"].unique().to_list()
[datetime.date(2026, 2, 10)]