pyield 0.48.1__tar.gz → 0.48.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyield-0.48.1 → pyield-0.48.2}/PKG-INFO +4 -5
- {pyield-0.48.1 → pyield-0.48.2}/README.md +3 -4
- pyield-0.48.2/pyield/__about__.py +1 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/__init__.py +13 -4
- {pyield-0.48.1 → pyield-0.48.2}/pyield/fwd.py +1 -1
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/__init__.py +2 -1
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/lft.py +6 -6
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/ltn.py +8 -8
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/ntnb.py +11 -11
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/ntnb1.py +6 -6
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/ntnbprinc.py +2 -2
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/ntnc.py +7 -7
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/ntnf.py +10 -10
- pyield-0.48.1/pyield/__about__.py +0 -1
- {pyield-0.48.1 → pyield-0.48.2}/.gitignore +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/LICENSE +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/_internal/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/_internal/br_numbers.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/_internal/cache.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/_internal/converters.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/_internal/data_cache.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/_internal/retry.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/_internal/types.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/anbima/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/anbima/ettj_intradia.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/anbima/ettj_ultima.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/anbima/ima_ultimo.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/anbima/imaq.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/anbima/tpf.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/_contratos.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/_validar_pregao.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/boletim.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/derivativos_intradia.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/di1.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/di_over.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/futuro/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/futuro/contratos.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/futuro/historico.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/b3/futuro/intradia.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/compromissada.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/copom.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/leiloes.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/ptax.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/taxas.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/tpf_intradia.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/tpf_mensal.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/bc/vna.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/dus/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/dus/core.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/dus/feriados/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/dus/feriados/feriados_antigos_br.txt +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/dus/feriados/feriados_br.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/dus/feriados/feriados_novos_br.txt +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/interpolador.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/ipca/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/ipca/historico.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/ipca/projetado.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/py.typed +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/relogio.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/selic/__init__.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/selic/cpm.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/selic/probabilities.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/benchmark.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/leiloes.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/pre.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/rmd.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyield/tn/utils.py +0 -0
- {pyield-0.48.1 → pyield-0.48.2}/pyproject.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyield
|
|
3
|
-
Version: 0.48.
|
|
3
|
+
Version: 0.48.2
|
|
4
4
|
Summary: A Python library for analysis of fixed income instruments in Brazil
|
|
5
5
|
Project-URL: Homepage, https://github.com/crdcj/PYield
|
|
6
6
|
Project-URL: Documentation, https://crdcj.github.io/PYield
|
|
@@ -45,6 +45,7 @@ Description-Content-Type: text/markdown
|
|
|
45
45
|
[](https://pypi.python.org/pypi/pyield)
|
|
46
46
|
[](https://python.org "Go to Python homepage")
|
|
47
47
|
[](https://github.com/crdcj/PYield/blob/main/LICENSE)
|
|
48
|
+
[](https://crdcj.github.io/PYield/)
|
|
48
49
|
|
|
49
50
|
# PYield: Toolkit de Renda Fixa Brasileira
|
|
50
51
|
|
|
@@ -63,8 +64,7 @@ pip install pyield
|
|
|
63
64
|
## Início Rápido
|
|
64
65
|
|
|
65
66
|
```python
|
|
66
|
-
from pyield import dus, b3, bc, Interpolador
|
|
67
|
-
from pyield.tn import ntnb
|
|
67
|
+
from pyield import dus, b3, bc, ntnb, Interpolador
|
|
68
68
|
|
|
69
69
|
# Dias úteis (base de todos os cálculos)
|
|
70
70
|
dus.contar("02-01-2025", "15-01-2025") # -> 9
|
|
@@ -241,8 +241,7 @@ Tratamento de nulos: funções escalares retornam `float('nan')` para entradas a
|
|
|
241
241
|
(propaga nos cálculos). Funções vetorizadas propagam `null` elemento a elemento.
|
|
242
242
|
|
|
243
243
|
```python
|
|
244
|
-
from pyield
|
|
245
|
-
from pyield import dus
|
|
244
|
+
from pyield import ntnb, dus
|
|
246
245
|
|
|
247
246
|
ntnb.cotacao(None, "15-05-2035", 0.06149) # -> nan
|
|
248
247
|
dus.contar(["01-01-2024", None], "01-02-2024") # -> Series: [22, null]
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
[](https://pypi.python.org/pypi/pyield)
|
|
2
2
|
[](https://python.org "Go to Python homepage")
|
|
3
3
|
[](https://github.com/crdcj/PYield/blob/main/LICENSE)
|
|
4
|
+
[](https://crdcj.github.io/PYield/)
|
|
4
5
|
|
|
5
6
|
# PYield: Toolkit de Renda Fixa Brasileira
|
|
6
7
|
|
|
@@ -19,8 +20,7 @@ pip install pyield
|
|
|
19
20
|
## Início Rápido
|
|
20
21
|
|
|
21
22
|
```python
|
|
22
|
-
from pyield import dus, b3, bc, Interpolador
|
|
23
|
-
from pyield.tn import ntnb
|
|
23
|
+
from pyield import dus, b3, bc, ntnb, Interpolador
|
|
24
24
|
|
|
25
25
|
# Dias úteis (base de todos os cálculos)
|
|
26
26
|
dus.contar("02-01-2025", "15-01-2025") # -> 9
|
|
@@ -197,8 +197,7 @@ Tratamento de nulos: funções escalares retornam `float('nan')` para entradas a
|
|
|
197
197
|
(propaga nos cálculos). Funções vetorizadas propagam `null` elemento a elemento.
|
|
198
198
|
|
|
199
199
|
```python
|
|
200
|
-
from pyield
|
|
201
|
-
from pyield import dus
|
|
200
|
+
from pyield import ntnb, dus
|
|
202
201
|
|
|
203
202
|
ntnb.cotacao(None, "15-05-2035", 0.06149) # -> nan
|
|
204
203
|
dus.contar(["01-01-2024", None], "01-02-2024") # -> Series: [22, null]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.48.2"
|
|
@@ -1,28 +1,37 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
|
|
3
|
-
from pyield import anbima, b3, bc, dus, ipca,
|
|
3
|
+
from pyield import anbima, b3, bc, dus, ipca, selic, tn
|
|
4
4
|
from pyield.__about__ import __version__
|
|
5
|
+
from pyield.b3 import di1
|
|
5
6
|
from pyield.fwd import forward, forwards
|
|
6
7
|
from pyield.interpolador import Interpolador
|
|
7
8
|
from pyield.relogio import agora, hoje
|
|
8
9
|
from pyield.selic.cpm import data as copom_options
|
|
10
|
+
from pyield.tn import lft, ltn, ntnb, ntnb1, ntnbprinc, ntnc, ntnf
|
|
9
11
|
|
|
10
12
|
__all__ = [
|
|
11
13
|
"Interpolador",
|
|
12
14
|
"__version__",
|
|
15
|
+
"agora",
|
|
13
16
|
"anbima",
|
|
14
17
|
"b3",
|
|
15
18
|
"bc",
|
|
16
19
|
"copom_options",
|
|
20
|
+
"di1",
|
|
17
21
|
"dus",
|
|
18
22
|
"forward",
|
|
19
23
|
"forwards",
|
|
20
|
-
"
|
|
24
|
+
"hoje",
|
|
21
25
|
"ipca",
|
|
22
|
-
"
|
|
26
|
+
"lft",
|
|
27
|
+
"ltn",
|
|
28
|
+
"ntnb",
|
|
29
|
+
"ntnb1",
|
|
30
|
+
"ntnbprinc",
|
|
31
|
+
"ntnc",
|
|
32
|
+
"ntnf",
|
|
23
33
|
"selic",
|
|
24
34
|
"tn",
|
|
25
|
-
"hoje",
|
|
26
35
|
]
|
|
27
36
|
|
|
28
37
|
# Configura o logger do pacote principal com um NullHandler
|
|
@@ -102,7 +102,7 @@ def forwards(
|
|
|
102
102
|
]
|
|
103
103
|
|
|
104
104
|
>>> # Exemplo com taxas indicativas de NTN-B em 16-09-2025
|
|
105
|
-
>>> from pyield
|
|
105
|
+
>>> from pyield import ntnb
|
|
106
106
|
>>> df = ntnb.dados("16-09-2025")
|
|
107
107
|
>>> yd.forwards(df["dias_uteis"], df["taxa_indicativa"])
|
|
108
108
|
shape: (13,)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
from pyield.tn import pre
|
|
1
2
|
from pyield.tn.benchmark import benchmarks
|
|
2
3
|
from pyield.tn.leiloes import leilao
|
|
3
4
|
from pyield.tn.rmd import rmd
|
|
4
5
|
from pyield.tn.utils import premio_pre
|
|
5
6
|
|
|
6
|
-
__all__ = ["benchmarks", "leilao", "premio_pre", "rmd"]
|
|
7
|
+
__all__ = ["benchmarks", "leilao", "pre", "premio_pre", "rmd"]
|
|
@@ -33,7 +33,7 @@ def dados(data: DateLike) -> pl.DataFrame:
|
|
|
33
33
|
- rentabilidade (Float64): Rentabilidade da LFT sobre o DI.
|
|
34
34
|
|
|
35
35
|
Examples:
|
|
36
|
-
>>> from pyield
|
|
36
|
+
>>> from pyield import lft
|
|
37
37
|
>>> df_lft = lft.dados("23-08-2024") # doctest: +SKIP
|
|
38
38
|
"""
|
|
39
39
|
df = utils.obter_tpf(data, "LFT")
|
|
@@ -86,7 +86,7 @@ def vencimentos(data: DateLike) -> pl.Series:
|
|
|
86
86
|
pl.Series: Série de datas de vencimento disponíveis.
|
|
87
87
|
|
|
88
88
|
Examples:
|
|
89
|
-
>>> from pyield
|
|
89
|
+
>>> from pyield import lft
|
|
90
90
|
>>> lft.vencimentos("22-08-2024")
|
|
91
91
|
shape: (14,)
|
|
92
92
|
Series: 'data_vencimento' [date]
|
|
@@ -125,7 +125,7 @@ def cotacao(
|
|
|
125
125
|
|
|
126
126
|
Examples:
|
|
127
127
|
Calcula a cotação de uma LFT com taxa de 0,02:
|
|
128
|
-
>>> from pyield
|
|
128
|
+
>>> from pyield import lft
|
|
129
129
|
>>> lft.cotacao(
|
|
130
130
|
... data_liquidacao="24-07-2024",
|
|
131
131
|
... data_vencimento="01-09-2030",
|
|
@@ -176,7 +176,7 @@ def taxa(
|
|
|
176
176
|
caso de erro.
|
|
177
177
|
|
|
178
178
|
Examples:
|
|
179
|
-
>>> from pyield
|
|
179
|
+
>>> from pyield import lft
|
|
180
180
|
>>> lft.taxa("24-07-2024", "01-09-2030", 15785.324502, 15621.867466)
|
|
181
181
|
0.001717
|
|
182
182
|
>>> lft.taxa("24-07-2024", "01-03-2025", 15785.324502, 15774.132706)
|
|
@@ -209,7 +209,7 @@ def rentabilidade(taxa_lft: float, taxa_di: float) -> float:
|
|
|
209
209
|
|
|
210
210
|
Examples:
|
|
211
211
|
Calcula a rentabilidade de uma LFT em 28/04/2025:
|
|
212
|
-
>>> from pyield
|
|
212
|
+
>>> from pyield import lft
|
|
213
213
|
>>> taxa_lft = 0.001124 # 0.1124%
|
|
214
214
|
>>> taxa_di = 0.13967670224373396 # 13.967670224373396%
|
|
215
215
|
>>> lft.rentabilidade(taxa_lft, taxa_di)
|
|
@@ -250,7 +250,7 @@ def pu(
|
|
|
250
250
|
- SEI Proccess 17944.005214/2024-09
|
|
251
251
|
|
|
252
252
|
Examples:
|
|
253
|
-
>>> from pyield
|
|
253
|
+
>>> from pyield import lft
|
|
254
254
|
>>> lft.pu(15785.324502, 99.9291)
|
|
255
255
|
15774.132706
|
|
256
256
|
"""
|
|
@@ -40,7 +40,7 @@ def dados(data: DateLike) -> pl.DataFrame:
|
|
|
40
40
|
- rentabilidade (Float64): Rentabilidade diária da LTN sobre o DI.
|
|
41
41
|
|
|
42
42
|
Examples:
|
|
43
|
-
>>> from pyield
|
|
43
|
+
>>> from pyield import ltn
|
|
44
44
|
>>> df_ltn = ltn.dados("23-08-2024") # doctest: +SKIP
|
|
45
45
|
"""
|
|
46
46
|
df = utils.obter_tpf(data, "LTN")
|
|
@@ -99,7 +99,7 @@ def vencimentos(data: DateLike) -> pl.Series:
|
|
|
99
99
|
pl.Series: Série de datas de vencimento disponíveis.
|
|
100
100
|
|
|
101
101
|
Examples:
|
|
102
|
-
>>> from pyield
|
|
102
|
+
>>> from pyield import ltn
|
|
103
103
|
>>> ltn.vencimentos("22-08-2024")
|
|
104
104
|
shape: (13,)
|
|
105
105
|
Series: 'data_vencimento' [date]
|
|
@@ -140,7 +140,7 @@ def pu(
|
|
|
140
140
|
- https://www.anbima.com.br/data/files/A0/02/CC/70/8FEFC8104606BDC8B82BA2A8/Metodologias%20ANBIMA%20de%20Precificacao%20Titulos%20Publicos.pdf
|
|
141
141
|
|
|
142
142
|
Examples:
|
|
143
|
-
>>> from pyield
|
|
143
|
+
>>> from pyield import ltn
|
|
144
144
|
>>> ltn.pu("05-07-2024", "01-01-2030", 0.12145)
|
|
145
145
|
535.279902
|
|
146
146
|
"""
|
|
@@ -180,7 +180,7 @@ def taxa(
|
|
|
180
180
|
caso de erro.
|
|
181
181
|
|
|
182
182
|
Examples:
|
|
183
|
-
>>> from pyield
|
|
183
|
+
>>> from pyield import ltn
|
|
184
184
|
>>> ltn.taxa("05-07-2024", "01-01-2030", 535.279902)
|
|
185
185
|
0.12145
|
|
186
186
|
>>> ltn.taxa("13-03-2026", "01-01-2027", 895.563913)
|
|
@@ -213,7 +213,7 @@ def rentabilidade(taxa_ltn: float, taxa_di: float) -> float:
|
|
|
213
213
|
Reference date: 22-08-2024
|
|
214
214
|
LTN rate for 01-01-2030: 0.118746
|
|
215
215
|
DI (JAN30) Settlement rate: 0.11725
|
|
216
|
-
>>> from pyield
|
|
216
|
+
>>> from pyield import ltn
|
|
217
217
|
>>> ltn.rentabilidade(0.118746, 0.11725)
|
|
218
218
|
1.0120718007994287
|
|
219
219
|
"""
|
|
@@ -246,7 +246,7 @@ def dv01(
|
|
|
246
246
|
float: DV01, variação de preço para 1 bp.
|
|
247
247
|
|
|
248
248
|
Examples:
|
|
249
|
-
>>> from pyield
|
|
249
|
+
>>> from pyield import ltn
|
|
250
250
|
>>> ltn.dv01("26-03-2025", "01-01-2032", 0.150970)
|
|
251
251
|
0.2269059999999854
|
|
252
252
|
"""
|
|
@@ -290,7 +290,7 @@ def premio(
|
|
|
290
290
|
ValueError: Se os dados de DI não possuem 'taxa_ajuste' ou estão vazios.
|
|
291
291
|
|
|
292
292
|
Examples:
|
|
293
|
-
>>> from pyield
|
|
293
|
+
>>> from pyield import ltn
|
|
294
294
|
>>> ltn.premio("30-05-2025", pontos_base=True)
|
|
295
295
|
shape: (13, 3)
|
|
296
296
|
┌────────┬─────────────────┬────────┐
|
|
@@ -336,7 +336,7 @@ def taxas_forward(data: DateLike) -> pl.DataFrame:
|
|
|
336
336
|
- taxa_forward (Float64): Taxa forward.
|
|
337
337
|
|
|
338
338
|
Examples:
|
|
339
|
-
>>> from pyield
|
|
339
|
+
>>> from pyield import ltn
|
|
340
340
|
>>> ltn.taxas_forward("17-10-2025")
|
|
341
341
|
shape: (13, 4)
|
|
342
342
|
┌─────────────────┬────────────┬─────────────────┬──────────────┐
|
|
@@ -55,7 +55,7 @@ def dados(data: DateLike) -> pl.DataFrame:
|
|
|
55
55
|
a partir de taxas nominais do DI Futuro e taxas zero das NTN-B.
|
|
56
56
|
|
|
57
57
|
Examples:
|
|
58
|
-
>>> from pyield
|
|
58
|
+
>>> from pyield import ntnb
|
|
59
59
|
>>> df_ntnb = ntnb.dados("23-08-2024") # doctest: +SKIP
|
|
60
60
|
"""
|
|
61
61
|
from pyield.b3 import di1 # noqa: PLC0415
|
|
@@ -129,7 +129,7 @@ def vencimentos(data: DateLike) -> pl.Series:
|
|
|
129
129
|
pl.Series: Série de datas de vencimento de NTN-B.
|
|
130
130
|
|
|
131
131
|
Examples:
|
|
132
|
-
>>> from pyield
|
|
132
|
+
>>> from pyield import ntnb
|
|
133
133
|
>>> ntnb.vencimentos("16-08-2024")
|
|
134
134
|
shape: (14,)
|
|
135
135
|
Series: 'data_vencimento' [date]
|
|
@@ -198,7 +198,7 @@ def datas_pagamento(
|
|
|
198
198
|
vencimento for menor ou igual à liquidação.
|
|
199
199
|
|
|
200
200
|
Examples:
|
|
201
|
-
>>> from pyield
|
|
201
|
+
>>> from pyield import ntnb
|
|
202
202
|
>>> ntnb.datas_pagamento("10-05-2024", "15-05-2025")
|
|
203
203
|
shape: (3,)
|
|
204
204
|
Series: 'datas_pagamento' [date]
|
|
@@ -246,7 +246,7 @@ def fluxos_caixa(
|
|
|
246
246
|
- valor_pagamento (Float64): Valor do pagamento.
|
|
247
247
|
|
|
248
248
|
Examples:
|
|
249
|
-
>>> from pyield
|
|
249
|
+
>>> from pyield import ntnb
|
|
250
250
|
>>> ntnb.fluxos_caixa("10-05-2024", "15-05-2025")
|
|
251
251
|
shape: (3, 2)
|
|
252
252
|
┌────────────────┬─────────────────┐
|
|
@@ -309,7 +309,7 @@ def cotacao(
|
|
|
309
309
|
semestral e arredondamento para 6 casas, conforme ANBIMA.
|
|
310
310
|
|
|
311
311
|
Examples:
|
|
312
|
-
>>> from pyield
|
|
312
|
+
>>> from pyield import ntnb
|
|
313
313
|
>>> ntnb.cotacao("31-05-2024", "15-05-2035", 0.061490)
|
|
314
314
|
99.3651
|
|
315
315
|
>>> ntnb.cotacao("31-05-2024", "15-08-2060", 0.061878)
|
|
@@ -361,7 +361,7 @@ def pu(
|
|
|
361
361
|
- https://www.anbima.com.br/data/files/A0/02/CC/70/8FEFC8104606BDC8B82BA2A8/Metodologias%20ANBIMA%20de%20Precificacao%20Titulos%20Publicos.pdf
|
|
362
362
|
|
|
363
363
|
Examples:
|
|
364
|
-
>>> from pyield
|
|
364
|
+
>>> from pyield import ntnb
|
|
365
365
|
>>> ntnb.pu(4299.160173, 99.3651)
|
|
366
366
|
4271.864805
|
|
367
367
|
>>> ntnb.pu(4315.498383, 100.6409)
|
|
@@ -497,7 +497,7 @@ def taxas_zero(
|
|
|
497
497
|
- taxa_zero (Float64): Taxa zero (real).
|
|
498
498
|
|
|
499
499
|
Examples:
|
|
500
|
-
>>> from pyield
|
|
500
|
+
>>> from pyield import ntnb
|
|
501
501
|
>>> # Busca as taxas de NTN-B para uma data de referência
|
|
502
502
|
>>> df = ntnb.dados("16-08-2024")
|
|
503
503
|
>>> # Calcula as taxas zero considerando a liquidação na data de referência
|
|
@@ -707,7 +707,7 @@ def duration(
|
|
|
707
707
|
float: Macaulay duration em anos úteis.
|
|
708
708
|
|
|
709
709
|
Examples:
|
|
710
|
-
>>> from pyield
|
|
710
|
+
>>> from pyield import ntnb
|
|
711
711
|
>>> ntnb.duration("23-08-2024", "15-08-2060", 0.061005)
|
|
712
712
|
15.08305431313046
|
|
713
713
|
"""
|
|
@@ -745,7 +745,7 @@ def dv01(
|
|
|
745
745
|
float: DV01, variação de preço para 1 bp.
|
|
746
746
|
|
|
747
747
|
Examples:
|
|
748
|
-
>>> from pyield
|
|
748
|
+
>>> from pyield import ntnb
|
|
749
749
|
>>> ntnb.dv01("26-03-2025", "15-08-2060", 0.074358, 4470.979474)
|
|
750
750
|
4.640875999999935
|
|
751
751
|
"""
|
|
@@ -783,7 +783,7 @@ def taxa(
|
|
|
783
783
|
caso de erro.
|
|
784
784
|
|
|
785
785
|
Examples:
|
|
786
|
-
>>> from pyield
|
|
786
|
+
>>> from pyield import ntnb
|
|
787
787
|
>>> ntnb.taxa("31-05-2024", "15-05-2035", 4299.160173, 4271.864805)
|
|
788
788
|
0.06149
|
|
789
789
|
>>> ntnb.taxa("15-08-2024", "15-08-2032", 4315.498383, 4343.156412)
|
|
@@ -825,7 +825,7 @@ def forward(
|
|
|
825
825
|
- taxa_forward (Float64): Taxa forward calculada.
|
|
826
826
|
|
|
827
827
|
Examples:
|
|
828
|
-
>>> from pyield
|
|
828
|
+
>>> from pyield import ntnb
|
|
829
829
|
>>> ntnb.forward("17-10-2025", usar_taxa_zero=True)
|
|
830
830
|
shape: (13, 4)
|
|
831
831
|
┌─────────────────┬────────────┬─────────────────┬──────────────┐
|
|
@@ -70,7 +70,7 @@ def datas_pagamento(
|
|
|
70
70
|
pl.Series: Série de datas de amortização no intervalo.
|
|
71
71
|
|
|
72
72
|
Examples:
|
|
73
|
-
>>> from pyield
|
|
73
|
+
>>> from pyield import ntnb1
|
|
74
74
|
>>> r_mais = ntnb1.NomeComercial.RENDA_MAIS
|
|
75
75
|
>>> ntnb1.datas_pagamento("10-05-2024", "15-12-2050", r_mais)
|
|
76
76
|
shape: (240,)
|
|
@@ -139,7 +139,7 @@ def fluxos_caixa(
|
|
|
139
139
|
- valor_pagamento (Float64): Valor do pagamento.
|
|
140
140
|
|
|
141
141
|
Examples:
|
|
142
|
-
>>> from pyield
|
|
142
|
+
>>> from pyield import ntnb1
|
|
143
143
|
>>> r_mais = ntnb1.NomeComercial.RENDA_MAIS
|
|
144
144
|
>>> ntnb1.fluxos_caixa("10-05-2024", "15-12-2060", r_mais)
|
|
145
145
|
shape: (240, 2)
|
|
@@ -210,7 +210,7 @@ def cotacao(
|
|
|
210
210
|
- https://www.anbima.com.br/data/files/A0/02/CC/70/8FEFC8104606BDC8B82BA2A8/Metodologias%20ANBIMA%20de%20Precificacao%20Titulos%20Publicos.pdf
|
|
211
211
|
|
|
212
212
|
Examples:
|
|
213
|
-
>>> from pyield
|
|
213
|
+
>>> from pyield import ntnb1
|
|
214
214
|
>>> r_mais = ntnb1.NomeComercial.RENDA_MAIS
|
|
215
215
|
>>> ntnb1.cotacao("18-06-2025", "15-12-2084", 0.07010, r_mais)
|
|
216
216
|
0.038332
|
|
@@ -247,7 +247,7 @@ def pu(
|
|
|
247
247
|
- SEI Proccess 17944.005214/2024-09
|
|
248
248
|
|
|
249
249
|
Examples:
|
|
250
|
-
>>> from pyield
|
|
250
|
+
>>> from pyield import ntnb1
|
|
251
251
|
>>> ntnb1.pu(4299.160173, 99.3651 / 100)
|
|
252
252
|
4271.864805
|
|
253
253
|
>>> ntnb1.pu(4315.498383, 100.6409 / 100)
|
|
@@ -277,7 +277,7 @@ def duration(
|
|
|
277
277
|
float: Macaulay duration em anos úteis.
|
|
278
278
|
|
|
279
279
|
Examples:
|
|
280
|
-
>>> from pyield
|
|
280
|
+
>>> from pyield import ntnb1
|
|
281
281
|
>>> r_mais = ntnb1.NomeComercial.RENDA_MAIS
|
|
282
282
|
>>> ntnb1.duration("23-06-2025", "15-12-2084", 0.0686, r_mais)
|
|
283
283
|
47.10493458167134
|
|
@@ -318,7 +318,7 @@ def dv01(
|
|
|
318
318
|
float: DV01, variação de preço para 1 bp.
|
|
319
319
|
|
|
320
320
|
Examples:
|
|
321
|
-
>>> from pyield
|
|
321
|
+
>>> from pyield import ntnb1
|
|
322
322
|
>>> r_mais = ntnb1.NomeComercial.RENDA_MAIS
|
|
323
323
|
>>> ntnb1.dv01("23-06-2025", "15-12-2084", 0.0686, 4299.160173, r_mais)
|
|
324
324
|
0.7738490000000127
|
|
@@ -25,7 +25,7 @@ def pu(
|
|
|
25
25
|
- https://www.anbima.com.br/data/files/A0/02/CC/70/8FEFC8104606BDC8B82BA2A8/Metodologias%20ANBIMA%20de%20Precificacao%20Titulos%20Publicos.pdf
|
|
26
26
|
|
|
27
27
|
Examples:
|
|
28
|
-
>>> from pyield
|
|
28
|
+
>>> from pyield import ntnbprinc
|
|
29
29
|
>>> ntnbprinc.pu("02-12-2025", "15-05-2029", 0.0777, 4567.033825)
|
|
30
30
|
3537.763157
|
|
31
31
|
"""
|
|
@@ -65,7 +65,7 @@ def dv01(
|
|
|
65
65
|
float: DV01 (Dollar Value of 01), variação de preço para 1 bp.
|
|
66
66
|
|
|
67
67
|
Examples:
|
|
68
|
-
>>> from pyield
|
|
68
|
+
>>> from pyield import ntnbprinc as bp
|
|
69
69
|
>>> bp.dv01("02-12-2025", "15-05-2029", 0.0777, 4567.033825)
|
|
70
70
|
1.1200559999997495
|
|
71
71
|
"""
|
|
@@ -68,7 +68,7 @@ def dados(data: DateLike) -> pl.DataFrame:
|
|
|
68
68
|
método flat forward.
|
|
69
69
|
|
|
70
70
|
Examples:
|
|
71
|
-
>>> from pyield
|
|
71
|
+
>>> from pyield import ntnc
|
|
72
72
|
>>> ntnc.dados("23-08-2024") # doctest: +SKIP
|
|
73
73
|
"""
|
|
74
74
|
df = utils.obter_tpf(data, "NTN-C")
|
|
@@ -123,7 +123,7 @@ def datas_pagamento(
|
|
|
123
123
|
vencimento for menor que a liquidação.
|
|
124
124
|
|
|
125
125
|
Examples:
|
|
126
|
-
>>> from pyield
|
|
126
|
+
>>> from pyield import ntnc
|
|
127
127
|
>>> ntnc.datas_pagamento("21-03-2025", "01-01-2031")
|
|
128
128
|
shape: (12,)
|
|
129
129
|
Series: 'datas_pagamento' [date]
|
|
@@ -184,7 +184,7 @@ def fluxos_caixa(
|
|
|
184
184
|
- valor_pagamento (Float64): Valor do pagamento.
|
|
185
185
|
|
|
186
186
|
Examples:
|
|
187
|
-
>>> from pyield
|
|
187
|
+
>>> from pyield import ntnc
|
|
188
188
|
>>> ntnc.fluxos_caixa("21-03-2025", "01-01-2031")
|
|
189
189
|
shape: (12, 2)
|
|
190
190
|
┌────────────────┬─────────────────┐
|
|
@@ -259,7 +259,7 @@ def cotacao(
|
|
|
259
259
|
semestral e arredondamento para 6 casas, conforme ANBIMA.
|
|
260
260
|
|
|
261
261
|
Examples:
|
|
262
|
-
>>> from pyield
|
|
262
|
+
>>> from pyield import ntnc
|
|
263
263
|
>>> ntnc.cotacao("21-03-2025", "01-01-2031", 0.067626)
|
|
264
264
|
126.4958
|
|
265
265
|
"""
|
|
@@ -310,7 +310,7 @@ def pu(
|
|
|
310
310
|
- https://www.anbima.com.br/data/files/A0/02/CC/70/8FEFC8104606BDC8B82BA2A8/Metodologias%20ANBIMA%20de%20Precificacao%20Titulos%20Publicos.pdf
|
|
311
311
|
|
|
312
312
|
Examples:
|
|
313
|
-
>>> from pyield
|
|
313
|
+
>>> from pyield import ntnc
|
|
314
314
|
>>> ntnc.pu(6598.913723, 126.4958)
|
|
315
315
|
8347.348705
|
|
316
316
|
"""
|
|
@@ -341,7 +341,7 @@ def taxa(
|
|
|
341
341
|
caso de erro.
|
|
342
342
|
|
|
343
343
|
Examples:
|
|
344
|
-
>>> from pyield
|
|
344
|
+
>>> from pyield import ntnc
|
|
345
345
|
>>> ntnc.taxa("21-03-2025", "01-01-2031", 6598.913723, 8347.348705)
|
|
346
346
|
0.067626
|
|
347
347
|
"""
|
|
@@ -376,7 +376,7 @@ def duracao(
|
|
|
376
376
|
float: Macaulay duration em anos úteis.
|
|
377
377
|
|
|
378
378
|
Examples:
|
|
379
|
-
>>> from pyield
|
|
379
|
+
>>> from pyield import ntnc
|
|
380
380
|
>>> ntnc.duracao("21-03-2025", "01-01-2031", 0.067626)
|
|
381
381
|
4.405363320448
|
|
382
382
|
"""
|
|
@@ -61,7 +61,7 @@ def dados(data: DateLike) -> pl.DataFrame:
|
|
|
61
61
|
- rentabilidade (Float64): Rentabilidade da NTN-F sobre a curva DI.
|
|
62
62
|
|
|
63
63
|
Examples:
|
|
64
|
-
>>> from pyield
|
|
64
|
+
>>> from pyield import ntnf
|
|
65
65
|
>>> df_ntnf = ntnf.dados("23-08-2024") # doctest: +SKIP
|
|
66
66
|
"""
|
|
67
67
|
df = utils.obter_tpf(data, "NTN-F")
|
|
@@ -153,7 +153,7 @@ def vencimentos(data: DateLike) -> pl.Series:
|
|
|
153
153
|
pl.Series: Série de datas de vencimento de NTN-F.
|
|
154
154
|
|
|
155
155
|
Examples:
|
|
156
|
-
>>> from pyield
|
|
156
|
+
>>> from pyield import ntnf
|
|
157
157
|
>>> ntnf.vencimentos("23-08-2024")
|
|
158
158
|
shape: (6,)
|
|
159
159
|
Series: 'data_vencimento' [date]
|
|
@@ -190,7 +190,7 @@ def datas_pagamento(
|
|
|
190
190
|
for menor ou igual à liquidação.
|
|
191
191
|
|
|
192
192
|
Examples:
|
|
193
|
-
>>> from pyield
|
|
193
|
+
>>> from pyield import ntnf
|
|
194
194
|
>>> ntnf.datas_pagamento("15-05-2024", "01-01-2027")
|
|
195
195
|
shape: (6,)
|
|
196
196
|
Series: 'datas_pagamento' [date]
|
|
@@ -250,7 +250,7 @@ def fluxos_caixa(
|
|
|
250
250
|
- valor_pagamento (Float64): Valor do pagamento.
|
|
251
251
|
|
|
252
252
|
Examples:
|
|
253
|
-
>>> from pyield
|
|
253
|
+
>>> from pyield import ntnf
|
|
254
254
|
>>> ntnf.fluxos_caixa("15-05-2024", "01-01-2027")
|
|
255
255
|
shape: (6, 2)
|
|
256
256
|
┌────────────────┬─────────────────┐
|
|
@@ -339,7 +339,7 @@ def pu(
|
|
|
339
339
|
semestral e arredondamento para 5 casas, conforme ANBIMA.
|
|
340
340
|
|
|
341
341
|
Examples:
|
|
342
|
-
>>> from pyield
|
|
342
|
+
>>> from pyield import ntnf
|
|
343
343
|
>>> ntnf.pu("05-07-2024", "01-01-2035", 0.11921)
|
|
344
344
|
895.359254
|
|
345
345
|
"""
|
|
@@ -382,7 +382,7 @@ def taxas_zero( # noqa
|
|
|
382
382
|
- taxa_zero (Float64): Taxa zero (zero cupom).
|
|
383
383
|
|
|
384
384
|
Examples:
|
|
385
|
-
>>> from pyield
|
|
385
|
+
>>> from pyield import ntnf, ltn
|
|
386
386
|
>>> df_ltn = ltn.dados("03-09-2024")
|
|
387
387
|
>>> df_ntnf = ntnf.dados("03-09-2024")
|
|
388
388
|
>>> ntnf.taxas_zero(
|
|
@@ -658,7 +658,7 @@ def premio(data: DateLike, pontos_base: bool = False) -> pl.DataFrame:
|
|
|
658
658
|
ValueError: Se os dados de DI não possuem 'taxa_ajuste' ou estão vazios.
|
|
659
659
|
|
|
660
660
|
Examples:
|
|
661
|
-
>>> from pyield
|
|
661
|
+
>>> from pyield import ntnf
|
|
662
662
|
>>> ntnf.premio("30-05-2025", pontos_base=True)
|
|
663
663
|
shape: (5, 3)
|
|
664
664
|
┌────────┬─────────────────┬────────┐
|
|
@@ -779,7 +779,7 @@ def duration(
|
|
|
779
779
|
float: Macaulay duration em anos úteis. Retorna NaN se inválido.
|
|
780
780
|
|
|
781
781
|
Examples:
|
|
782
|
-
>>> from pyield
|
|
782
|
+
>>> from pyield import ntnf
|
|
783
783
|
>>> ntnf.duration("02-09-2024", "01-01-2035", 0.121785)
|
|
784
784
|
6.32854218039796
|
|
785
785
|
"""
|
|
@@ -815,7 +815,7 @@ def dv01(
|
|
|
815
815
|
float: DV01, variação de preço para 1 bp.
|
|
816
816
|
|
|
817
817
|
Examples:
|
|
818
|
-
>>> from pyield
|
|
818
|
+
>>> from pyield import ntnf
|
|
819
819
|
>>> ntnf.dv01("26-03-2025", "01-01-2035", 0.151375)
|
|
820
820
|
0.39025200000003224
|
|
821
821
|
"""
|
|
@@ -847,7 +847,7 @@ def taxa(
|
|
|
847
847
|
float: TIR implícita em formato decimal. Retorna NaN em caso de erro.
|
|
848
848
|
|
|
849
849
|
Examples:
|
|
850
|
-
>>> from pyield
|
|
850
|
+
>>> from pyield import ntnf
|
|
851
851
|
>>> pu = ntnf.pu("05-07-2024", "01-01-2035", 0.11921)
|
|
852
852
|
>>> ntnf.taxa("13-03-2026", "01-01-2035", 820.995125)
|
|
853
853
|
0.142743
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.48.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|