NTN-B
cotacao(data_liquidacao, data_vencimento, taxa)
Calcula a cotação da NTN-B em base 100 pelas regras da ANBIMA.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação da operação. |
required |
data_vencimento
|
DateLike
|
Data de vencimento da NTN-B. |
required |
taxa
|
float
|
Taxa de desconto (TIR) usada no valor presente. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Cotação da NTN-B truncada em 4 casas. Retorna NaN em erro. |
References
- https://www.anbima.com.br/data/files/A0/02/CC/70/8FEFC8104606BDC8B82BA2A8/Metodologias%20ANBIMA%20de%20Precificacao%20Titulos%20Publicos.pdf
- O cupom semestral é 2,956301, equivalente a 6% a.a. com capitalização semestral e arredondamento para 6 casas, conforme ANBIMA.
Examples:
>>> from pyield import ntnb
>>> ntnb.cotacao("31-05-2024", "15-05-2035", 0.061490)
99.3651
>>> ntnb.cotacao("31-05-2024", "15-08-2060", 0.061878)
99.5341
>>> ntnb.cotacao("15-08-2024", "15-08-2032", 0.05929)
100.6409
Source code in pyield/tpf/_titulos/ntnb.py
curva(data_liquidacao, vencimentos_tir, taxas_tir, vencimentos_nominais, taxas_nominais, *, extrapolar=False)
Calcula uma visão de curva da NTN-B com taxas reais, nominais e forwards.
A função usa os mesmos insumos de implicitas e adiciona taxas forward
reais, nominais e de inflação implícita. A curva nominal é a referência
informada pelo usuário.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação da operação. |
required |
vencimentos_tir
|
DatesLike
|
Vencimentos das NTN-B usadas como vértices da curva de TIR real. |
required |
taxas_tir
|
ArrayLike
|
TIRs reais observadas das NTN-B correspondentes aos vencimentos informados. A função calcula a curva zero real a partir dessas taxas. |
required |
vencimentos_nominais
|
DatesLike
|
Vencimentos da curva nominal de referência. |
required |
taxas_nominais
|
ArrayLike
|
Taxas da curva nominal de referência. Pode representar DI Futuro, curva soberana prefixada ou outra curva nominal escolhida pelo usuário. |
required |
extrapolar
|
bool
|
Se |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame com a curva calculada. |
Output Columns
- data_vencimento (Date): Data de vencimento.
- dias_uteis (Int64): Dias úteis entre liquidação e vencimento.
- taxa_tir_real (Float64): TIR real da NTN-B recebida na entrada.
- taxa_zero_real (Float64): Taxa real zero via bootstrap.
- taxa_forward_real (Float64): Taxa forward real via taxas zero reais.
- taxa_nominal (Float64): Taxa nominal de referência interpolada.
- taxa_forward_nominal (Float64): Taxa forward da curva nominal de referência.
- inflacao_implicita (Float64): Inflação implícita (breakeven).
- inflacao_forward (Float64): Inflação implícita forward.
Notes
A curva nominal de referência define a leitura econômica da inflação implícita. Quando a referência for DI Futuro, as colunas nominais e de inflação representam a leitura contra DI.
Examples:
>>> df = yd.ntnb.curva(
... data_liquidacao="02-01-2024",
... vencimentos_tir=["15-05-2025", "15-08-2026", "15-05-2027"],
... taxas_tir=[0.055, 0.057, 0.059],
... vencimentos_nominais=["02-01-2025", "02-01-2026", "02-01-2028"],
... taxas_nominais=[0.10, 0.105, 0.11],
... )
>>> df.select("taxa_zero_real", "taxa_forward_real").head(2)
shape: (2, 2)
┌────────────────┬───────────────────┐
│ taxa_zero_real ┆ taxa_forward_real │
│ --- ┆ --- │
│ f64 ┆ f64 │
╞════════════════╪═══════════════════╡
│ 0.055 ┆ 0.055 │
│ 0.057081 ┆ 0.059337 │
└────────────────┴───────────────────┘
Source code in pyield/tpf/_titulos/ntnb.py
710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 | |
dados(data)
Busca as taxas indicativas de NTN-B para a data de referência.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data da consulta. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame Polars com os dados de NTN-B. |
Output Columns
- data_referencia (Date): Data de referência dos dados.
- titulo (String): Tipo do título (ex.: "NTN-B").
- codigo_selic (Int64): Código do título no SELIC.
- data_base (Date): Data base de emissão do título.
- data_vencimento (Date): Data de vencimento do título.
- dias_uteis (Int64): Dias úteis entre referência e vencimento.
- duration (Float64): Macaulay Duration do título (anos).
- prazo_medio (Float64): Prazo médio do título (anos).
- dv01 (Float64): Variação no preço para 1bp de taxa.
- pu (Float64): Preço unitário (PU).
- taxa_compra (Float64): Taxa de compra (decimal).
- taxa_venda (Float64): Taxa de venda (decimal).
- taxa_indicativa (Float64): Taxa indicativa (decimal).
- taxa_di (Float64): Taxa de ajuste do DI Futuro interpolada pelo método flat forward.
- taxa_zero (Float64): Taxa zero real (via bootstrap das taxas indicativas).
- taxa_forward (Float64): Taxa forward real (a partir das taxas zero).
- inflacao_implicita (Float64): Inflação implícita (breakeven) calculada a partir de taxas nominais do DI Futuro e taxas zero das NTN-B.
Examples:
Source code in pyield/tpf/_titulos/ntnb.py
datas_pagamento(data_liquidacao, data_vencimento)
Gera todas as datas de cupom entre liquidação e vencimento (inclusivas).
Os cupons são pagos em 15/02, 15/05, 15/08 e 15/11. A NTN-B é definida pela data de vencimento.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação (exclusiva). |
required |
data_vencimento
|
DateLike
|
Data de vencimento. |
required |
Returns:
| Type | Description |
|---|---|
Series
|
pl.Series: Série de datas de cupom no intervalo. Retorna série vazia se vencimento for menor ou igual à liquidação. |
Examples:
>>> from pyield import ntnb
>>> ntnb.datas_pagamento("10-05-2024", "15-05-2025")
shape: (3,)
Series: 'datas_pagamento' [date]
[
2024-05-15
2024-11-15
2025-05-15
]
Source code in pyield/tpf/_titulos/ntnb.py
duration(data_liquidacao, data_vencimento, taxa)
Calcula a Macaulay duration da NTN-B em anos úteis.
Fórmula
Sum( t * CFₜ / (1 + y)ᵗ )
MacD = ---------------------------------
Current Bond Price
Onde
t = tempo (anos) até o pagamento CFₜ = fluxo no tempo t y = TIR (periódica) Price = Soma( CFₜ / (1 + y)ᵗ )
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação. |
required |
data_vencimento
|
DateLike
|
Data de vencimento. |
required |
taxa
|
float
|
Taxa de desconto usada no cálculo. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Macaulay duration em anos úteis. |
Examples:
>>> from pyield import ntnb
>>> ntnb.duration("23-08-2024", "15-08-2060", 0.061005)
15.08305431313046
Source code in pyield/tpf/_titulos/ntnb.py
duration_expr(data_liquidacao, data_vencimento, taxa)
Cria expressão Polars para a duration da NTN-B.
O cálculo é aplicado linha a linha porque a duration depende dos fluxos de caixa do título.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
Expr | str
|
Nome de coluna ou expressão Polars com a data de liquidação. |
required |
data_vencimento
|
Expr | str
|
Nome de coluna ou expressão Polars com a data de vencimento. |
required |
taxa
|
Expr | str
|
Nome de coluna ou expressão Polars com a taxa em formato decimal. |
required |
Returns:
| Type | Description |
|---|---|
Expr
|
pl.Expr: Expressão sem alias com a Macaulay duration em anos úteis. |
Source code in pyield/tpf/_titulos/ntnb.py
dv01(data_liquidacao, data_vencimento, taxa, pu)
Calcula o DV01 (Dollar Value of 01) da NTN-B em R$.
Representa a variação do PU informado para um aumento de 1 bp (0,01%) na taxa.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação. |
required |
data_vencimento
|
DateLike
|
Data de vencimento. |
required |
taxa
|
float
|
Taxa de desconto (TIR) da NTN-B. |
required |
pu
|
float
|
PU usado como base para o cálculo. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
DV01, variação de preço para 1 bp. |
Examples:
>>> from pyield import ntnb
>>> cot = ntnb.cotacao("26-03-2025", "15-08-2060", 0.074358)
>>> pu = ntnb.pu(4470.979474, cot)
>>> ntnb.dv01("26-03-2025", "15-08-2060", 0.074358, pu)
4.640876692898066
Source code in pyield/tpf/_titulos/ntnb.py
dv01_expr(data_liquidacao, data_vencimento, taxa, pu)
Cria expressão Polars para o DV01 da NTN-B.
O cálculo é aplicado linha a linha e reprifica o PU informado para um aumento de 1 bp na taxa.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
Expr | str
|
Nome de coluna ou expressão Polars com a data de liquidação. |
required |
data_vencimento
|
Expr | str
|
Nome de coluna ou expressão Polars com a data de vencimento. |
required |
taxa
|
Expr | str
|
Nome de coluna ou expressão Polars com a taxa em formato decimal. |
required |
pu
|
Expr | str
|
Nome de coluna ou expressão Polars com o PU usado como base. |
required |
Returns:
| Type | Description |
|---|---|
Expr
|
pl.Expr: Expressão sem alias com o DV01. |
Source code in pyield/tpf/_titulos/ntnb.py
fluxos_caixa(data_liquidacao, data_vencimento)
Gera os fluxos de caixa da NTN-B entre liquidação e vencimento.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação (exclusiva). |
required |
data_vencimento
|
DateLike
|
Data de vencimento. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame com as colunas de fluxo. |
Output Columns
- data_pagamento (Date): Data de pagamento.
- valor_pagamento (Float64): Valor do pagamento.
Examples:
>>> from pyield import ntnb
>>> ntnb.fluxos_caixa("10-05-2024", "15-05-2025")
shape: (3, 2)
┌────────────────┬─────────────────┐
│ data_pagamento ┆ valor_pagamento │
│ --- ┆ --- │
│ date ┆ f64 │
╞════════════════╪═════════════════╡
│ 2024-05-15 ┆ 2.956301 │
│ 2024-11-15 ┆ 2.956301 │
│ 2025-05-15 ┆ 102.956301 │
└────────────────┴─────────────────┘
Source code in pyield/tpf/_titulos/ntnb.py
implicitas(data_liquidacao, vencimentos_tir, taxas_tir, vencimentos_nominais, taxas_nominais, *, extrapolar=False)
Calcula a inflação implícita para NTN-B contra uma curva nominal de referência.
A inflação implícita (breakeven) é a que iguala yields reais e nominais, baseada nas taxas zero das NTN-B e na curva nominal informada.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação da operação. |
required |
vencimentos_tir
|
DatesLike
|
Vencimentos das NTN-B usadas como vértices da curva de TIR real. |
required |
taxas_tir
|
ArrayLike
|
TIRs reais observadas das NTN-B correspondentes aos vencimentos informados. A função calcula a curva zero real a partir dessas taxas. |
required |
vencimentos_nominais
|
DatesLike
|
Vencimentos da curva nominal de referência. |
required |
taxas_nominais
|
ArrayLike
|
Taxas da curva nominal de referência. Pode representar DI Futuro, curva soberana prefixada ou outra curva nominal escolhida pelo usuário. |
required |
extrapolar
|
bool
|
Se |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame com as taxas calculadas. |
Output Columns
- data_vencimento (Date): Data de vencimento.
- dias_uteis (Int64): Dias úteis entre liquidação e vencimento.
- taxa_tir_real (Float64): TIR real da NTN-B recebida na entrada.
- taxa_zero_real (Float64): Taxa real zero via bootstrap.
- taxa_nominal (Float64): Taxa nominal interpolada.
- inflacao_implicita (Float64): Inflação implícita (breakeven).
Notes
A inflação implícita é calculada contra a curva nominal informada. Se essa curva for DI Futuro, o resultado representa a implícita contra DI, não uma inflação soberana prefixada pura.
Examples:
Busca as taxas de NTN-B para uma data de referência. Estas são TIRs e as taxas zero são calculadas a partir delas.
Busca as taxas de ajuste do DI Futuro para a mesma data de referência:
Calcula a inflação implícita na data de referência:
>>> yd.ntnb.implicitas(
... data_liquidacao="19-06-2026",
... vencimentos_tir=df_ntnb["data_vencimento"],
... taxas_tir=df_ntnb["taxa_indicativa"],
... vencimentos_nominais=df_di["data_vencimento"],
... taxas_nominais=df_di["taxa_ajuste"],
... )
shape: (15, 6)
┌─────────────────┬────────────┬───────────────┬────────────────┬──────────────┬────────────────────┐
│ data_vencimento ┆ dias_uteis ┆ taxa_tir_real ┆ taxa_zero_real ┆ taxa_nominal ┆ inflacao_implicita │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ date ┆ i64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │
╞═════════════════╪════════════╪═══════════════╪════════════════╪══════════════╪════════════════════╡
│ 2026-08-15 ┆ 41 ┆ 0.1115 ┆ 0.1115 ┆ 0.141339 ┆ 0.026846 │
│ 2027-05-15 ┆ 226 ┆ 0.085733 ┆ 0.085642 ┆ 0.145795 ┆ 0.055407 │
│ 2028-08-15 ┆ 541 ┆ 0.089683 ┆ 0.08971 ┆ 0.149149 ┆ 0.054545 │
│ 2029-05-15 ┆ 725 ┆ 0.088171 ┆ 0.088129 ┆ 0.149535 ┆ 0.056432 │
│ 2030-08-15 ┆ 1039 ┆ 0.088766 ┆ 0.088759 ┆ 0.149166 ┆ 0.055482 │
│ … ┆ … ┆ … ┆ … ┆ … ┆ … │
│ 2040-08-15 ┆ 3548 ┆ 0.078262 ┆ 0.076087 ┆ 0.14591 ┆ 0.064886 │
│ 2045-05-15 ┆ 4735 ┆ 0.076656 ┆ 0.073931 ┆ null ┆ null │
│ 2050-08-15 ┆ 6050 ┆ 0.075659 ┆ 0.072435 ┆ null ┆ null │
│ 2055-05-15 ┆ 7239 ┆ 0.074658 ┆ 0.07049 ┆ null ┆ null │
│ 2060-08-15 ┆ 8556 ┆ 0.07464 ┆ 0.070832 ┆ null ┆ null │
└─────────────────┴────────────┴───────────────┴────────────────┴──────────────┴────────────────────┘
Source code in pyield/tpf/_titulos/ntnb.py
587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 | |
pu(vna, cotacao)
Calcula o preço (PU) da NTN-B pelas regras da ANBIMA.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vna
|
float
|
Valor nominal atualizado (VNA). |
required |
cotacao
|
float
|
Cotação da NTN-B em base 100. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Preço da NTN-B truncado em 6 casas decimais. |
References
- https://www.anbima.com.br/data/files/A0/02/CC/70/8FEFC8104606BDC8B82BA2A8/Metodologias%20ANBIMA%20de%20Precificacao%20Titulos%20Publicos.pdf
Examples:
>>> from pyield import ntnb
>>> ntnb.pu(4299.160173, 99.3651)
4271.864805
>>> ntnb.pu(4315.498383, 100.6409)
4343.156412
Source code in pyield/tpf/_titulos/ntnb.py
taxa(data_liquidacao, data_vencimento, vna, pu)
Calcula a TIR implícita de uma NTN-B a partir do preço (PU).
A função inverte numericamente a cadeia pu(vna, cotacao(...)),
encontrando a taxa que zera a diferença entre o preço calculado e o
informado.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação. |
required |
data_vencimento
|
DateLike
|
Data de vencimento. |
required |
vna
|
float
|
Valor nominal atualizado (VNA). |
required |
pu
|
float
|
Preço unitário (PU) do título. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
TIR implícita em formato decimal. Retorna NaN em caso de erro. |
Examples:
>>> from pyield import ntnb
>>> ntnb.taxa("31-05-2024", "15-05-2035", 4299.160173, 4271.864805)
0.06149
>>> ntnb.taxa("15-08-2024", "15-08-2032", 4315.498383, 4343.156412)
0.05929
Source code in pyield/tpf/_titulos/ntnb.py
taxas_zero(data_liquidacao, vencimentos, taxas, incluir_cupons=False)
Calcula as taxas zero da NTN-B usando bootstrap.
O bootstrap determina as taxas zero a partir dos yields dos títulos, resolvendo iterativamente as taxas que descontam os fluxos ao preço.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação. |
required |
vencimentos
|
DatesLike
|
Datas de vencimento dos títulos. |
required |
taxas
|
ArrayLike
|
TIRs correspondentes. |
required |
incluir_cupons
|
bool
|
Se True, inclui datas intermediárias de cupom. Padrão False. |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame com as taxas zero. |
Output Columns
- data_vencimento (Date): Data de vencimento.
- dias_uteis (Int64): Dias úteis entre liquidação e vencimento.
- taxa_zero (Float64): Taxa zero (real).
Examples:
>>> from pyield import ntnb
>>> # Busca as taxas de NTN-B para uma data de referência
>>> df = ntnb.dados("16-08-2024")
>>> # Calcula as taxas zero considerando a liquidação na data de referência
>>> ntnb.taxas_zero(
... data_liquidacao="16-08-2024",
... vencimentos=df["data_vencimento"],
... taxas=df["taxa_indicativa"],
... )
shape: (14, 3)
┌─────────────────┬────────────┬───────────┐
│ data_vencimento ┆ dias_uteis ┆ taxa_zero │
│ --- ┆ --- ┆ --- │
│ date ┆ i64 ┆ f64 │
╞═════════════════╪════════════╪═══════════╡
│ 2025-05-15 ┆ 185 ┆ 0.063893 │
│ 2026-08-15 ┆ 502 ┆ 0.066141 │
│ 2027-05-15 ┆ 687 ┆ 0.064087 │
│ 2028-08-15 ┆ 1002 ┆ 0.063057 │
│ 2029-05-15 ┆ 1186 ┆ 0.061458 │
│ … ┆ … ┆ … │
│ 2040-08-15 ┆ 4009 ┆ 0.058326 │
│ 2045-05-15 ┆ 5196 ┆ 0.060371 │
│ 2050-08-15 ┆ 6511 ┆ 0.060772 │
│ 2055-05-15 ┆ 7700 ┆ 0.059909 │
│ 2060-08-15 ┆ 9017 ┆ 0.060652 │
└─────────────────┴────────────┴───────────┘
Caso a liquidação ocorra logo após uma data de cupom, o valor presente dos cupons anteriores pode ser zero:
>>> df = ntnb.dados("15-05-2026")
>>> ntnb.taxas_zero(
... data_liquidacao="18-05-2026",
... vencimentos=df["data_vencimento"],
... taxas=df["taxa_indicativa"],
... incluir_cupons=True,
... )
shape: (137, 3)
┌─────────────────┬────────────┬───────────┐
│ data_vencimento ┆ dias_uteis ┆ taxa_zero │
│ --- ┆ --- ┆ --- │
│ date ┆ i64 ┆ f64 │
╞═════════════════╪════════════╪═══════════╡
│ 2026-08-15 ┆ 64 ┆ 0.102013 │
│ 2026-11-15 ┆ 126 ┆ 0.088186 │
│ 2027-02-15 ┆ 186 ┆ 0.083431 │
│ 2027-05-15 ┆ 249 ┆ 0.081096 │
│ 2027-08-15 ┆ 313 ┆ 0.081005 │
│ … ┆ … ┆ … │
│ 2059-08-15 ┆ 8326 ┆ 0.070508 │
│ 2059-11-15 ┆ 8392 ┆ 0.070524 │
│ 2060-02-15 ┆ 8454 ┆ 0.07053 │
│ 2060-05-15 ┆ 8515 ┆ 0.070547 │
│ 2060-08-15 ┆ 8579 ┆ 0.070553 │
└─────────────────┴────────────┴───────────┘
Notes
O cálculo considera: - Mapear todas as datas de pagamento até o último vencimento. - Interpolar as TIRs nas datas intermediárias. - Calcular a cotação da NTN-B para cada vencimento. - Calcular as taxas zero reais.
Source code in pyield/tpf/_titulos/ntnb.py
460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 | |
vencimentos(data)
Busca os vencimentos de NTN-B disponíveis para a data de referência.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data da consulta. |
required |
Returns:
| Type | Description |
|---|---|
Series
|
pl.Series: Série de datas de vencimento de NTN-B. |
Examples:
>>> from pyield import ntnb
>>> ntnb.vencimentos("16-08-2024")
shape: (14,)
Series: 'data_vencimento' [date]
[
2025-05-15
2026-08-15
2027-05-15
2028-08-15
2029-05-15
…
2040-08-15
2045-05-15
2050-08-15
2055-05-15
2060-08-15
]