NTN-B1
CommercialName
Bases: Enum
Enum do nome comercial usado para identificar o tipo de NTN-B1 (Renda+ ou Educa+).
cash_flows(settlement, maturity, commercial_name)
Gera os fluxos de caixa da NTN-B1 entre liquidação e vencimento.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settlement
|
DateLike
|
Data de liquidação (exclusiva). |
required |
maturity
|
DateLike
|
Data de vencimento. |
required |
commercial_name
|
CommercialName
|
Nome comercial (Renda+ ou Educa+). |
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 ntnb1
>>> r_mais = ntnb1.CommercialName.RENDA_MAIS
>>> ntnb1.cash_flows("10-05-2024", "15-12-2060", r_mais)
shape: (240, 2)
┌────────────────┬─────────────────┐
│ data_pagamento ┆ valor_pagamento │
│ --- ┆ --- │
│ date ┆ f64 │
╞════════════════╪═════════════════╡
│ 2041-01-15 ┆ 0.004167 │
│ 2041-02-15 ┆ 0.004167 │
│ 2041-03-15 ┆ 0.004167 │
│ 2041-04-15 ┆ 0.004167 │
│ 2041-05-15 ┆ 0.004167 │
│ … ┆ … │
│ 2060-08-15 ┆ 0.004167 │
│ 2060-09-15 ┆ 0.004167 │
│ 2060-10-15 ┆ 0.004167 │
│ 2060-11-15 ┆ 0.004167 │
│ 2060-12-15 ┆ 0.004167 │
└────────────────┴─────────────────┘
Source code in pyield/tn/ntnb1.py
duration(settlement, maturity, rate, commercial_name)
Calcula a Macaulay duration da NTN-B1 em anos úteis.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settlement
|
DateLike
|
Data de liquidação da operação. |
required |
maturity
|
DateLike
|
Data de vencimento. |
required |
rate
|
float
|
Taxa de desconto usada no cálculo. |
required |
commercial_name
|
CommercialName
|
Nome comercial (Renda+ ou Educa+). |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Macaulay duration em anos úteis. |
Examples:
>>> from pyield import ntnb1
>>> r_mais = ntnb1.CommercialName.RENDA_MAIS
>>> ntnb1.duration("23-06-2025", "15-12-2084", 0.0686, r_mais)
47.10493458167134
Source code in pyield/tn/ntnb1.py
dv01(settlement, maturity, rate, vna, commercial_name=CommercialName.RENDA_MAIS)
Calcula o DV01 (Dollar Value of 01) da NTN-B1 em R$.
Representa a variação de preço para um aumento de 1 bp (0,01%) na taxa.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settlement
|
DateLike
|
Data de liquidação. |
required |
maturity
|
DateLike
|
Data de vencimento. |
required |
rate
|
float
|
Taxa de desconto (YTM) da NTN-B1. |
required |
vna
|
float
|
Valor nominal atualizado (VNA). |
required |
commercial_name
|
CommercialName
|
Nome comercial (Renda+ ou Educa+). |
RENDA_MAIS
|
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
DV01, variação de preço para 1 bp. |
Examples:
>>> from pyield import ntnb1
>>> r_mais = ntnb1.CommercialName.RENDA_MAIS
>>> ntnb1.dv01("23-06-2025", "15-12-2084", 0.0686, 4299.160173, r_mais)
0.7738490000000127
Source code in pyield/tn/ntnb1.py
payment_dates(settlement, maturity, commercial_name)
Gera todas as datas de amortização entre liquidação e vencimento.
As datas são inclusivas. Os pagamentos ocorrem de 15/01 do ano de conversão até 15/12 do ano de vencimento.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settlement
|
DateLike
|
Data de liquidação (exclusiva). |
required |
maturity
|
DateLike
|
Data de vencimento. |
required |
commercial_name
|
CommercialName
|
Nome comercial (Renda+ ou Educa+). |
required |
Returns:
| Type | Description |
|---|---|
Series
|
pl.Series: Série de datas de amortização no intervalo. |
Examples:
>>> from pyield import ntnb1
>>> r_mais = ntnb1.CommercialName.RENDA_MAIS
>>> ntnb1.payment_dates("10-05-2024", "15-12-2050", r_mais)
shape: (240,)
Series: 'datas_pagamento' [date]
[
2031-01-15
2031-02-15
2031-03-15
2031-04-15
2031-05-15
…
2050-08-15
2050-09-15
2050-10-15
2050-11-15
2050-12-15
]
Source code in pyield/tn/ntnb1.py
price(vna, quotation)
Calcula o preço (PU) da NTN-B1 pelas regras do Tesouro Nacional.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vna
|
float
|
Valor nominal atualizado (VNA). |
required |
quotation
|
float
|
Cotação da NTN-B1 em base 100. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Preço da NTN-B1 truncado em 6 casas decimais. |
References
- SEI Proccess 17944.005214/2024-09
Examples:
>>> from pyield import ntnb1
>>> ntnb1.price(4299.160173, 99.3651 / 100)
4271.864805
>>> ntnb1.price(4315.498383, 100.6409 / 100)
4343.156412
Source code in pyield/tn/ntnb1.py
quotation(settlement, maturity, rate, commercial_name)
Calcula a cotação da NTN-B1 em base 100 pelas regras da ANBIMA.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settlement
|
DateLike
|
Data de liquidação da operação. |
required |
maturity
|
DateLike
|
Data de vencimento da NTN-B1. |
required |
rate
|
float
|
Taxa de desconto (YTM) usada no valor presente. |
required |
commercial_name
|
CommercialName
|
Nome comercial (Renda+ ou Educa+). |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Cotação da NTN-B1 truncada 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 ntnb1
>>> r_mais = ntnb1.CommercialName.RENDA_MAIS
>>> ntnb1.quotation("18-06-2025", "15-12-2084", 0.07010, r_mais)
0.038332