LTN
dados(data)
Busca as taxas indicativas de LTN na ANBIMA 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 LTN. |
Output Columns
- data_referencia (Date): Data de referência dos dados.
- titulo (String): Tipo do título (ex.: "LTN").
- 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.
- premio (Float64): prêmio sobre o DI, isto é, o spread sobre a taxa DI.
- rentabilidade (Float64): Rentabilidade diária da LTN sobre o DI.
Examples:
Source code in pyield/ltn.py
dv01(data_liquidacao, data_vencimento, taxa)
Calcula o DV01 (Dollar Value of 01) da LTN em R$.
Representa a variação de preço 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 (YTM) do título. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
DV01, variação de preço para 1 bp. |
Examples:
Source code in pyield/ltn.py
premio(data, pontos_base=False)
Calcula o prêmio (spread) da LTN sobre o DI na data de referência.
Definição do prêmio (forma bruta): premio = taxa_indicativa - taxa de ajuste do DI
Quando pontos_base=False a coluna retorna essa diferença em formato decimal
(ex: 0.000439 ≈ 4.39 bps). Quando pontos_base=True o valor é automaticamente
multiplicado por 10_000 e exibido diretamente em basis points.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data da consulta para buscar as taxas. |
required |
pontos_base
|
bool
|
Se True, retorna o prêmio já convertido em basis points. Padrão False. |
False
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame com as colunas do prêmio. |
Output Columns
- titulo (String): Tipo do título.
- data_vencimento (Date): Data de vencimento.
- premio (Float64): prêmio em decimal ou bps conforme parâmetro, isto é, o spread sobre o DI.
Raises:
| Type | Description |
|---|---|
ValueError
|
Se os dados de DI não possuem 'taxa_ajuste' ou estão vazios. |
Examples:
>>> from pyield import ltn
>>> ltn.premio("30-05-2025", pontos_base=True)
shape: (13, 3)
┌────────┬─────────────────┬────────┐
│ titulo ┆ data_vencimento ┆ premio │
│ --- ┆ --- ┆ --- │
│ 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 │
│ … ┆ … ┆ … │
│ LTN ┆ 2028-01-01 ┆ 0.55 │
│ LTN ┆ 2028-07-01 ┆ 1.5 │
│ LTN ┆ 2029-01-01 ┆ 10.77 │
│ LTN ┆ 2030-01-01 ┆ 11.0 │
│ LTN ┆ 2032-01-01 ┆ 11.24 │
└────────┴─────────────────┴────────┘
Source code in pyield/ltn.py
pu(data_liquidacao, data_vencimento, taxa)
Calcula o PU (preço unitário) da LTN pelas regras da ANBIMA.
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 (YTM) do título. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
PU da LTN conforme ANBIMA. |
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/ltn.py
rentabilidade(taxa_ltn, taxa_di)
Calcula a rentabilidade da LTN sobre a taxa de DI Futuro.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
taxa_ltn
|
float
|
Taxa anualizada da LTN. |
required |
taxa_di
|
float
|
Taxa anualizada do DI Futuro. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Rentabilidade da LTN sobre o DI. |
Examples:
Reference date: 22-08-2024 LTN rate for 01-01-2030: 0.118746 DI (JAN30) Settlement rate: 0.11725
Source code in pyield/ltn.py
taxa(data_liquidacao, data_vencimento, preco_unitario)
Calcula a taxa implícita (YTM) de uma LTN a partir do preço (PU).
Inverte algebricamente a fórmula de pu():
taxa = (1000 / pu) ^ (252 / du) - 1
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação. |
required |
data_vencimento
|
DateLike
|
Data de vencimento. |
required |
preco_unitario
|
float
|
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 ltn
>>> ltn.taxa("05-07-2024", "01-01-2030", 535.279902)
0.12145
>>> ltn.taxa("13-03-2026", "01-01-2027", 895.563913)
0.148307
Source code in pyield/ltn.py
taxas_forward(data)
Calcula as taxas forward da LTN para uma data de referência.
As taxas indicativas da LTN já são spot (zero-coupon) por construção, pois o título não paga cupons. Portanto o cálculo de forward é direto usando a estrutura de vencimentos e suas taxas.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data das taxas indicativas. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame com as taxas forward. |
Output Columns
- data_vencimento (Date): Data de vencimento.
- dias_uteis (Int64): Dias úteis entre referência e vencimento.
- taxa_indicativa (Float64): Taxa spot (zero cupom).
- taxa_forward (Float64): Taxa forward.
Examples:
>>> from pyield import ltn
>>> ltn.taxas_forward("17-10-2025")
shape: (13, 4)
┌─────────────────┬────────────┬─────────────────┬──────────────┐
│ data_vencimento ┆ dias_uteis ┆ taxa_indicativa ┆ taxa_forward │
│ --- ┆ --- ┆ --- ┆ --- │
│ date ┆ i64 ┆ f64 ┆ f64 │
╞═════════════════╪════════════╪═════════════════╪══════════════╡
│ 2026-01-01 ┆ 52 ┆ 0.148307 ┆ 0.148307 │
│ 2026-04-01 ┆ 113 ┆ 0.147173 ┆ 0.146207 │
│ 2026-07-01 ┆ 174 ┆ 0.145206 ┆ 0.141571 │
│ 2026-10-01 ┆ 239 ┆ 0.142424 ┆ 0.13501 │
│ 2027-04-01 ┆ 361 ┆ 0.138155 ┆ 0.129838 │
│ … ┆ … ┆ … ┆ … │
│ 2028-07-01 ┆ 676 ┆ 0.133411 ┆ 0.131654 │
│ 2029-01-01 ┆ 800 ┆ 0.134254 ┆ 0.138861 │
│ 2029-07-01 ┆ 924 ┆ 0.135264 ┆ 0.141802 │
│ 2030-01-01 ┆ 1049 ┆ 0.135967 ┆ 0.141177 │
│ 2032-01-01 ┆ 1553 ┆ 0.13883 ┆ 0.144812 │
└─────────────────┴────────────┴─────────────────┴──────────────┘
Source code in pyield/ltn.py
vencimentos(data)
Busca os vencimentos 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 disponíveis. |
Examples:
>>> from pyield import ltn
>>> ltn.vencimentos("22-08-2024")
shape: (13,)
Series: 'data_vencimento' [date]
[
2024-10-01
2025-01-01
2025-04-01
2025-07-01
2025-10-01
…
2026-10-01
2027-07-01
2028-01-01
2028-07-01
2030-01-01
]