Visão Geral
auction(auction_date)
Consulta e processa os resultados de leilões de títulos do Tesouro Nacional.
Busca os dados da API do Tesouro para a(s) data(s) informada(s) e retorna um DataFrame estruturado com quantidades, financeiros, taxas de colocação, duration e DV01.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
auction_date
|
DateLike | Sequence[DateLike]
|
Data ou sequência de datas do leilão em qualquer formato aceito por DateLike (ex: "DD-MM-YYYY", datetime.date, ou lista desses formatos). |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame com os dados processados do leilão. Em caso de erro na |
DataFrame
|
requisição, no processamento ou se não houver dados para a data |
DataFrame
|
especificada, retorna DataFrame vazio. |
Output Columns
- data_1v (Date): data de realização do leilão (1ª volta).
- data_liquidacao_1v (Date): data de liquidação financeira da 1ª volta.
- data_liquidacao_2v (Date): data de liquidação financeira da 2ª volta (se houver).
- numero_edital (Int64): número do edital que rege o leilão.
- tipo_leilao (String): tipo da operação (ex: "Venda", "Compra").
- titulo (String): código do título público leiloado (ex: "NTN-B", "LFT").
- benchmark (String): descrição de referência do título (ex: "NTN-B 3 anos").
- data_vencimento (Date): data de vencimento do título.
- dias_uteis (Int32): dias úteis entre a liquidação (1v) e o vencimento.
- dias_corridos (Int32): prazo em dias corridos entre liquidação e vencimento.
- duration (Float64): Duração de Macaulay em anos, calculada entre a liquidação da 1ª volta e o vencimento.
- prazo_medio (Float64): maturidade média em anos, conforme metodologia do Tesouro Nacional.
- quantidade_ofertada_1v (Int64): quantidade de títulos ofertados na 1ª volta.
- quantidade_ofertada_2v (Int64): quantidade de títulos ofertados na 2ª volta.
- quantidade_aceita_1v (Int64): quantidade de propostas aceitas na 1ª volta.
- quantidade_aceita_2v (Int64): quantidade de títulos aceitos na 2ª volta.
- quantidade_aceita_total (Int64): soma das quantidades aceitas nas duas voltas.
- financeiro_ofertado_1v (Float64): financeiro ofertado na 1ª volta (BRL).
- financeiro_ofertado_2v (Float64): financeiro ofertado na 2ª volta (BRL).
- financeiro_ofertado_total (Float64): financeiro total ofertado (BRL).
- financeiro_aceito_1v (Float64): financeiro aceito na 1ª volta (BRL).
- financeiro_aceito_2v (Float64): financeiro aceito na 2ª volta (BRL).
- financeiro_aceito_total (Float64): soma do financeiro aceito nas duas voltas (BRL).
- quantidade_bcb (Int64): quantidade de títulos adquirida pelo Banco Central.
- financeiro_bcb (Int64): financeiro adquirido pelo Banco Central.
- colocacao_1v (Float64): taxa de colocação da 1ª volta (aceita / ofertada).
- colocacao_2v (Float64): taxa de colocação da 2ª volta (aceita / ofertada).
- colocacao_total (Float64): taxa de colocação total (aceita / ofertada).
- dv01_1v (Float64): DV01 da 1ª volta em BRL.
- dv01_2v (Float64): DV01 da 2ª volta em BRL.
- dv01_total (Float64): DV01 total do leilão em BRL.
- ptax (Float64): taxa PTAX (venda) utilizada na conversão do DV01 para USD.
- dv01_1v_usd (Float64): DV01 da 1ª volta em USD (PTAX do dia).
- dv01_2v_usd (Float64): DV01 da 2ª volta em USD (PTAX do dia).
- dv01_total_usd (Float64): DV01 total em USD (PTAX do dia).
- pu_minimo (Float64): preço unitário mínimo aceito no leilão.
- pu_medio (Float64): preço unitário médio ponderado das propostas aceitas.
- tipo_pu_medio (String): indica se o PU médio é "original" (da API) ou "calculado" (recalculado pela função).
- taxa_media (Float64): taxa de juros média aceita (em formato decimal).
- taxa_maxima (Float64): taxa de juros máxima aceita, taxa de corte (decimal).
Source code in pyield/tn/auctions.py
benchmarks(bond_type=None, include_history=False)
Busca benchmarks de títulos públicos brasileiros na API do TN.
Recupera dados atuais ou históricos de benchmarks para títulos do Tesouro Nacional (ex.: LTN, LFT, NTN-B).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
bond_type
|
str | None
|
Tipo do título a filtrar (ex.: "LFT"). |
None
|
include_history
|
bool
|
Se |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame com os benchmarks, ou DataFrame vazio. |
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
Dados obtidos da API oficial do Tesouro Nacional. Documentação da API: https://portal-conhecimento.tesouro.gov.br/catalogo-componentes/api-leil%C3%B5es
Examples:
>>> from pyield import tn
>>> df_current = tn.benchmarks()
>>> # Benchmarks históricos
>>> tn.benchmarks(bond_type="LFT", include_history=True).head()
shape: (5, 5)
┌────────┬─────────────────┬────────────┬─────────────┬────────────┐
│ titulo ┆ data_vencimento ┆ benchmark ┆ data_inicio ┆ data_fim │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ date ┆ str ┆ date ┆ date │
╞════════╪═════════════════╪════════════╪═════════════╪════════════╡
│ LFT ┆ 2020-03-01 ┆ LFT 6 anos ┆ 2014-01-01 ┆ 2014-06-30 │
│ LFT ┆ 2020-09-01 ┆ LFT 6 anos ┆ 2014-07-01 ┆ 2014-12-31 │
│ LFT ┆ 2021-03-01 ┆ LFT 6 anos ┆ 2015-01-01 ┆ 2015-04-30 │
│ LFT ┆ 2021-09-01 ┆ LFT 6 anos ┆ 2015-05-01 ┆ 2015-12-31 │
│ LFT ┆ 2022-03-01 ┆ LFT 6 anos ┆ 2016-01-01 ┆ 2016-06-30 │
└────────┴─────────────────┴────────────┴─────────────┴────────────┘
Source code in pyield/tn/benchmark.py
di_spreads(date, bps=False)
Calcula o DI Spread para títulos prefixados (LTN e NTN-F) em uma data de referência.
spread = taxa indicativa do PRE - taxa de ajuste do DI
Quando bps=False a coluna retorna essa diferença em formato decimal
(ex: 0.000439 ≈ 4.39 bps). Quando bps=True o valor é automaticamente
multiplicado por 10_000 e exibido diretamente em basis points.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
date
|
DateLike
|
Data de referência para buscar as taxas. |
required |
bps
|
bool
|
Se True, retorna spread_di já convertido em basis points. Padrão False. |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame com as colunas do spread. |
Output Columns
- titulo (String): Tipo do título.
- data_vencimento (Date): Data de vencimento.
- spread_di (Float64): Spread em decimal ou bps conforme parâmetro (também conhecido como prêmio).
Examples:
>>> from pyield import pre
>>> pre.di_spreads("30-05-2025", bps=True)
shape: (18, 3)
┌────────┬─────────────────┬───────────┐
│ titulo ┆ data_vencimento ┆ spread_di │
│ --- ┆ --- ┆ --- │
│ 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 │
└────────┴─────────────────┴───────────┘