PYield: Toolkit de Renda Fixa Brasileira
Português | English
PYield é uma biblioteca Python voltada para análise de títulos públicos
brasileiros. Ela busca e processa dados da ANBIMA, BCB, IBGE, B3 e Tesouro
Nacional, retornando tipos nativos do Python, polars.Series ou
polars.DataFrame, conforme a operação.
Embora inclua dados e ferramentas de outros mercados, como DI1, DAP e PTAX, esses recursos apoiam o objetivo central da biblioteca: análise, precificação e acompanhamento de títulos públicos brasileiros.
Instalação
Com pip:
pip install pyield
Em um projeto gerenciado pelo uv:
uv add pyield
Próximos passos
- Quickstart: primeiros usos da biblioteca.
- Documentação completa: conceitos e referência por módulo.
- Mapa da API: namespaces e funções públicas.
- Desenvolvimento e publicação: ambiente, verificações, build e PyPI.
- Notebook no Colab: exploração interativa.
- Pacote no PyPI.
Mapa da API
| Componente | Tipo | Finalidade | Funções públicas |
|---|---|---|---|
yd.du |
módulo | Dias úteis e calendário brasileiro | contar, deslocar, eh_dia_util, gerar, ultimo_dia_util, contar_expr, deslocar_expr, eh_dia_util_expr |
yd.Interpolador |
classe | Interpolação escalar e em pipelines Polars | interpolar, interpolar_expr, linear, flat_forward |
yd.interpolar(...) |
função | Interpolação vetorizada flat-forward, curva única ou multi-curva | |
yd.forward(...) |
função | Taxa a termo entre dois vértices | |
yd.forwards(...) |
função | Curva de taxas a termo | |
yd.futuro |
módulo | Contratos futuros da B3 | di1, historico, intradia, datas_disponiveis, vencimento, enriquecer, vencimento_expr |
yd.di1 |
módulo | Curva DI1 e interpolação | dados, interpolar_taxas, interpolar_taxa, datas_disponiveis |
yd.tpf |
módulo | Títulos públicos federais | taxas, taxas_historicas, vencimentos, estoque, leiloes, benchmarks, curva_pre, premios_pre, secundario |
yd.rmd(aba) |
função | Relatório Mensal da Dívida do Tesouro Nacional | |
yd.lft |
módulo | LFT | dados, vencimentos, cotacao, pu, taxa, rentabilidade, rentabilidade_expr |
yd.ltn |
módulo | LTN | dados, vencimentos, pu, taxa, duration_expr, dv01, dv01_expr, rentabilidade, rentabilidade_expr, taxas_forward |
yd.ntnb |
módulo | NTN-B | dados, vencimentos, datas_pagamento, fluxos_caixa, cotacao, pu, taxa, taxas_zero, duration, dv01, dv01_expr, implicitas, curva |
yd.ntnb1 |
módulo | NTN-B1 (Educa+ e Renda+) | NomeComercial, datas_pagamento, fluxos_caixa, cotacao, cotacao_curva_zero, taxa_curva_zero, pu, duration, dv01 |
yd.ntnbp |
módulo | NTN-B Principal | cotacao, taxa, pu, dv01 |
yd.ntnc |
módulo | NTN-C | dados, datas_pagamento, fluxos_caixa, cotacao, pu, taxa, duration, duration_expr, dv01, dv01_expr |
yd.ntnf |
módulo | NTN-F | dados, vencimentos, datas_pagamento, fluxos_caixa, pu, taxa, taxas_zero, taxas_zero_forwards, premio, premio_limpo, premio_limpo_expr, rentabilidade, rentabilidade_expr, duration, duration_expr, dv01, dv01_expr |
yd.vna |
módulo | Valores nominais atualizados dos títulos públicos | valor, historico, projetado, vigencia |
yd.copom |
módulo | Calendário automático do Copom | calendario, proxima_reuniao |
yd.compromissadas(...) |
função | Leilões de operações compromissadas do BCB | inicio, fim |
yd.selic |
módulo | Selic e política monetária | over, over_serie, meta, meta_serie |
yd.cpm |
módulo | Opções digitais do COPOM e análises derivadas | data, probabilidades |
yd.ipca |
módulo | IPCA histórico e projetado | indice, indices, indices_ultimos, taxa, taxas, taxas_ultimas, taxa_projetada |
yd.ptax(data) |
função | PTAX para uma data | |
yd.ptax_serie(inicio, fim) |
função | Série histórica da PTAX | |
yd.di_over(data) |
função | Taxa DI Over | |
yd.hoje() |
função | Data atual no Brasil | |
yd.agora() |
função | Data e hora atual no Brasil |
O mapa completo da API inclui a documentação detalhada e as assinaturas públicas.
Compatibilidade da API
Cotações em base 100 — 0.58.0
As funções escalares de cálculo dos títulos também aceitam taxas percentuais
explícitas, como "5.75%" ou "5,75%", equivalentes a 0.0575.
Números continuam em formato decimal; strings sem % são rejeitadas.
As funções cotacao de yd.lft, yd.ntnb, yd.ntnc, yd.ntnbp e
yd.ntnb1 passam a retornar base 100 com quatro casas decimais:
0.993651 passa a ser 99.3651. As funções pu desses títulos recebem a
cotação nessa mesma base e aplicam VNA * cotacao / 100.
A coluna valor_pagamento de fluxos_caixa de NTN-B, NTN-C e NTN-B1 e o
retorno de ntnb1.cotacao_curva_zero também passam para base 100. Esta última
mantém a soma sem truncamento para calibrar a TIR equivalente.
Para migrar, multiplique cotações e fluxos antigos armazenados por 100, remova
multiplicações por 100 usadas apenas para exibir cotações e ajuste cálculos
manuais de PU para dividir por 100. A composição pu(vna, cotacao(...))
preserva a unidade e as regras de precisão do preço. Taxas continuam em formato
decimal, e VNA e PU continuam em reais.
As funções yd.ltn.dv01 e yd.ntnf.dv01 não recebem mais um PU de referência:
calculam a redução do PU teórico para um aumento de 1 ponto-base na taxa.
Demais alterações
Este resumo parte da API da 0.56.0. Mudanças que já faziam parte dessa versão
ou de versões anteriores estão no histórico das
releases do GitHub.
| Antes | Agora |
|---|---|
ntnbp.taxas_zero(...) |
ntnb.taxas_zero(...), sem incluir_vertices |
ntnb.taxas_zero(..., incluir_cupons=...) |
ntnb.taxas_zero(...), sem incluir_cupons |
ntnb.taxas_zero(..., percentual=...) |
ntnb.taxas_zero(...), com taxas em formato decimal |
yd.tpf.ntnb |
yd.ntnb ou from pyield import ntnb |
yd.tpf.rmd(aba) |
yd.rmd(aba) ou from pyield import rmd |
pyield.tpf.vna.calcular_vna(...) |
yd.vna.calcular_vna(...) |
yd.ntnb.vna(data) |
yd.vna.valor("NTN-B", data) |
yd.ntnb.vnas() |
yd.vna.historico("NTN-B") |
vna_projetado(...) nos módulos de títulos |
yd.vna.projetado(titulo, data, vna_base, inflacao); para LFT, use selic= |
vigencia(data) nos módulos de títulos |
yd.vna.vigencia(titulo, data) |
O namespace público segue a autonomia semântica do conceito que o usuário
precisa conhecer, e não apenas a fonte dos dados ou sua relação temática com
outro domínio. Por isso, conceitos como yd.ltn, yd.ntnb, yd.vna e yd.rmd
ficam na raiz, enquanto as implementações podem continuar agrupadas
internamente por domínio para manter o código coeso.
Consulte as releases para o
histórico completo.
Projeto
Metadata
Release files for pyield 0.58.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyield-0.58.1.tar.gz | 136.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyield-0.58.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 326.0 kB
Release files / pyield-0.58.1.tar.gz
| Download URL | pyield-0.58.1.tar.gz |
|---|---|
| Size | 136.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7fb704f6eac0f67b66ace502fc819c195a034baf2b43684e58893e98585219bf
|
|
BLAKE2b-256 checksum How to use checksums |
37a587ebc485e83588e2113b3e9b80551dcfea271d77c62c5fcd6e7f91bbde19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pyield-0.58.1-py3-none-any.whl
| Download URL | pyield-0.58.1-py3-none-any.whl |
|---|---|
| Size | 189.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9a1b41b062c6510ecfcd8b172e3bc18bb7566f276f8e98e641d3f56512a774cb
|
|
BLAKE2b-256 checksum How to use checksums |
7c0b0251f56a03097c619047c3e297e927fc82c8ace86cce45bc1dd4e1f3b348
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|