LFT
cotacao(data_liquidacao, data_vencimento, taxa)
Calcula a cotação de uma LFT pela metodologia da STN para leilões primários.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_liquidacao
|
DateLike
|
Data de liquidação do título. |
required |
data_vencimento
|
DateLike
|
Data de vencimento do título. |
required |
taxa
|
float | Decimal
|
Taxa anualizada do título em formato decimal. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Decimal |
Decimal
|
Fator de cotação em base 1, truncado em 6 casas decimais. |
Notes
A STN apresenta a cotação na escala percentual (base 100). Esta função retorna o fator equivalente em base 1, usado diretamente no cálculo do PU. O truncamento de 4 casas na escala STN equivale ao truncamento de 6 casas nesta representação.
Examples:
Calcula a cotação de uma LFT com taxa de 0,1717%:
>>> from pyield import lft
>>> lft.cotacao(
... data_liquidacao="24-07-2024",
... data_vencimento="01-09-2030",
... taxa=0.001717, # 0.1717%
... )
Decimal('0.989645')
>>> lft.cotacao("21-05-2008", "07-03-2014", -0.000200009)
Decimal('1.001158')
Entradas nulas retornam Decimal('NaN'):
>>> lft.cotacao(
... data_liquidacao=None, data_vencimento="01-09-2030", taxa=0.001717
... )
Decimal('NaN')
Source code in pyield/tpf/titulos/lft.py
dados(data)
Busca as taxas indicativas de LFT para a data de referência na ANBIMA.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DateLike
|
Data da consulta. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
pl.DataFrame: DataFrame Polars com os dados de LFT. |
Output Columns
- data_referencia (Date): Data de referência dos dados.
- titulo (String): Tipo do título (ex.: "LFT").
- 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.
- prazo_medio (Float64): Prazo médio do título em anos.
- 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.
- rentabilidade (Float64): Rentabilidade da LFT sobre o DI.
Examples:
Source code in pyield/tpf/titulos/lft.py
pu(vna, cotacao)
Calcula o PU da LFT pela metodologia da STN para leilões primários.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vna
|
float | Decimal
|
Valor nominal atualizado (VNA). |
required |
cotacao
|
float | Decimal
|
Fator de cotação da LFT em base 1. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Decimal |
Decimal
|
Preço da LFT truncado em 6 casas decimais. |
References
- Secretaria do Tesouro Nacional. Metodologia de Cálculo dos Títulos Públicos Federais Ofertados nos Leilões Primários. https://crdcj.github.io/PYield/referencias/metodologia-calculo-tpf-stn/
Examples:
>>> from pyield import lft
>>> lft.pu(15785.324502, 0.999291)
Decimal('15774.132706')
>>> lft.pu(3451.2153459, 1.0011589)
Decimal('3455.211852')
Source code in pyield/tpf/titulos/lft.py
rentabilidade(taxa_lft, taxa_di)
Calcula a rentabilidade da LFT sobre a taxa de DI Futuro.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
taxa_lft
|
float
|
Taxa anualizada da LFT sobre a Selic. |
required |
taxa_di
|
float
|
Taxa DI Futuro anualizada (interpolada para o mesmo vencimento da LFT). |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Rentabilidade da LFT sobre o DI. |
Examples:
Calcula a rentabilidade de uma LFT em 28/04/2025:
>>> from pyield import lft
>>> taxa_lft = 0.001124 # 0.1124%
>>> taxa_di = 0.13967670224373396 # 13.967670224373396%
>>> lft.rentabilidade(taxa_lft, taxa_di)
1.008594331960501
Source code in pyield/tpf/titulos/lft.py
rentabilidade_expr(taxa_lft, taxa_di)
Cria expressão Polars para a rentabilidade da LFT sobre o DI.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
taxa_lft
|
Expr | str
|
Nome de coluna ou expressão Polars com a taxa anualizada da LFT sobre a Selic. |
required |
taxa_di
|
Expr | str
|
Nome de coluna ou expressão Polars com a taxa DI Futuro anualizada (interpolada para o mesmo vencimento da LFT). |
required |
Returns:
| Type | Description |
|---|---|
Expr
|
pl.Expr: Expressão sem alias com a rentabilidade da LFT sobre o DI. |
Source code in pyield/tpf/titulos/lft.py
taxa(data_liquidacao, data_vencimento, vna, pu)
Calcula a taxa implícita de uma LFT 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 | Decimal
|
Valor nominal atualizado (VNA). |
required |
pu
|
float | Decimal
|
Preço unitário (PU) do título. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
Taxa implícita em formato decimal, truncada em oito casas decimais (seis casas em termos percentuais). Retorna NaN em caso de erro. |
Examples:
>>> from pyield import lft
>>> lft.taxa("24-07-2024", "01-09-2030", 15785.324502, 15621.867466)
0.00171691
>>> lft.taxa("24-07-2024", "01-03-2025", 15785.324502, 15774.132706)
0.00115966
>>> lft.taxa("21-05-2008", "07-03-2014", 3451.215345, 3426.649594)
0.00123443
Source code in pyield/tpf/titulos/lft.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 lft
>>> lft.vencimentos("22-08-2024")
shape: (14,)
Series: 'data_vencimento' [date]
[
2024-09-01
2025-03-01
2025-09-01
2026-03-01
2026-09-01
…
2029-03-01
2029-09-01
2030-03-01
2030-06-01
2030-09-01
]