NTN-C
cash_flows(settlement, maturity)
Gera os fluxos de caixa da NTN-C entre liquidação e vencimento.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settlement
|
DateLike
|
Data de liquidação (exclusiva). |
required |
maturity
|
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 ntnc
>>> ntnc.cash_flows("21-03-2025", "01-01-2031")
shape: (12, 2)
┌────────────────┬─────────────────┐
│ data_pagamento ┆ valor_pagamento │
│ --- ┆ --- │
│ date ┆ f64 │
╞════════════════╪═════════════════╡
│ 2025-07-01 ┆ 5.830052 │
│ 2026-01-01 ┆ 5.830052 │
│ 2026-07-01 ┆ 5.830052 │
│ 2027-01-01 ┆ 5.830052 │
│ 2027-07-01 ┆ 5.830052 │
│ … ┆ … │
│ 2029-01-01 ┆ 5.830052 │
│ 2029-07-01 ┆ 5.830052 │
│ 2030-01-01 ┆ 5.830052 │
│ 2030-07-01 ┆ 5.830052 │
│ 2031-01-01 ┆ 105.830052 │
└────────────────┴─────────────────┘
Source code in pyield/tn/ntnc.py
data(date)
Busca as taxas indicativas de NTN-C para a data de referência.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
date
|
DateLike
|
Data de referência para a consulta. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame Polars com os dados de NTN-C. |
Output Columns
- data_referencia (Date): Data de referência dos dados.
- titulo (String): Tipo do título (ex.: "NTN-C").
- 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.
- dv01_usd (Float64): DV01 convertido para USD pela PTAX do dia.
- 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.
Examples:
Source code in pyield/tn/ntnc.py
duration(settlement, maturity, rate)
Calcula a Macaulay duration da NTN-C 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 |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Macaulay duration em anos úteis. |
Examples:
Source code in pyield/tn/ntnc.py
payment_dates(settlement, maturity)
Gera todas as datas de cupom entre liquidação e vencimento (inclusivas). A NTN-C é definida pela data de vencimento.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settlement
|
DateLike
|
Data de liquidação (exclusiva). |
required |
maturity
|
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 que a liquidação. |
Examples:
>>> from pyield import ntnc
>>> ntnc.payment_dates("21-03-2025", "01-01-2031")
shape: (12,)
Series: 'datas_pagamento' [date]
[
2025-07-01
2026-01-01
2026-07-01
2027-01-01
2027-07-01
…
2029-01-01
2029-07-01
2030-01-01
2030-07-01
2031-01-01
]
Source code in pyield/tn/ntnc.py
price(vna, quotation)
Calcula o preço (PU) da NTN-C pelas regras da ANBIMA.
price = VNA * quotation / 100
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vna
|
float
|
Valor nominal atualizado (VNA). |
required |
quotation
|
float
|
Cotação da NTN-C em base 100. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Preço da NTN-C 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:
Source code in pyield/tn/ntnc.py
quotation(settlement, maturity, rate)
Calcula a cotação da NTN-C 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-C. |
required |
rate
|
float
|
Taxa de desconto (YTM) usada no valor presente. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Cotação da NTN-C truncada em 4 casas decimais. |
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:
Source code in pyield/tn/ntnc.py
rate(settlement, maturity, vna, price_value)
Calcula a taxa implícita (YTM) de uma NTN-C a partir do preço (PU).
A função inverte numericamente a cadeia price(vna, quotation(...)),
encontrando a taxa que zera a diferença entre o preço calculado e o
informado.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settlement
|
DateLike
|
Data de liquidação. |
required |
maturity
|
DateLike
|
Data de vencimento. |
required |
vna
|
float
|
Valor nominal atualizado (VNA). |
required |
price_value
|
float
|
Preço unitário (PU) do título. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Taxa implícita (YTM) em formato decimal. Retorna NaN em caso de erro. |
Examples:
>>> from pyield import ntnc
>>> ntnc.rate("21-03-2025", "01-01-2031", 6598.913723, 8347.348705)
0.067626