PYield 0.46.0__tar.gz → 0.46.1__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.
Files changed (70) hide show
  1. {pyield-0.46.0 → pyield-0.46.1}/PKG-INFO +1 -1
  2. pyield-0.46.1/pyield/__about__.py +1 -0
  3. {pyield-0.46.0 → pyield-0.46.1}/pyield/anbima/difusao.py +2 -2
  4. {pyield-0.46.0 → pyield-0.46.1}/pyield/anbima/ima.py +2 -2
  5. {pyield-0.46.0 → pyield-0.46.1}/pyield/anbima/imaq.py +2 -2
  6. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/auction.py +52 -84
  7. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/ptax_api.py +20 -2
  8. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/trades_intraday.py +2 -2
  9. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/trades_monthly.py +4 -4
  10. pyield-0.46.0/pyield/__about__.py +0 -1
  11. {pyield-0.46.0 → pyield-0.46.1}/.gitignore +0 -0
  12. {pyield-0.46.0 → pyield-0.46.1}/LICENSE +0 -0
  13. {pyield-0.46.0 → pyield-0.46.1}/README.md +0 -0
  14. {pyield-0.46.0 → pyield-0.46.1}/pyield/__init__.py +0 -0
  15. {pyield-0.46.0 → pyield-0.46.1}/pyield/_internal/__init__.py +0 -0
  16. {pyield-0.46.0 → pyield-0.46.1}/pyield/_internal/br_numbers.py +0 -0
  17. {pyield-0.46.0 → pyield-0.46.1}/pyield/_internal/cache.py +0 -0
  18. {pyield-0.46.0 → pyield-0.46.1}/pyield/_internal/converters.py +0 -0
  19. {pyield-0.46.0 → pyield-0.46.1}/pyield/_internal/data_cache.py +0 -0
  20. {pyield-0.46.0 → pyield-0.46.1}/pyield/_internal/retry.py +0 -0
  21. {pyield-0.46.0 → pyield-0.46.1}/pyield/_internal/types.py +0 -0
  22. {pyield-0.46.0 → pyield-0.46.1}/pyield/anbima/__init__.py +0 -0
  23. {pyield-0.46.0 → pyield-0.46.1}/pyield/anbima/ettj_intraday.py +0 -0
  24. {pyield-0.46.0 → pyield-0.46.1}/pyield/anbima/ettj_last.py +0 -0
  25. {pyield-0.46.0 → pyield-0.46.1}/pyield/anbima/tpf.py +0 -0
  26. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/__init__.py +0 -0
  27. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/_contracts.py +0 -0
  28. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/_validar_pregao.py +0 -0
  29. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/di1.py +0 -0
  30. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/di_over.py +0 -0
  31. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/futures/__init__.py +0 -0
  32. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/futures/common.py +0 -0
  33. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/futures/historical.py +0 -0
  34. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/futures/intraday.py +0 -0
  35. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/intraday_derivatives.py +0 -0
  36. {pyield-0.46.0 → pyield-0.46.1}/pyield/b3/price_report.py +0 -0
  37. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/__init__.py +0 -0
  38. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/copom.py +0 -0
  39. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/rates.py +0 -0
  40. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/repo.py +0 -0
  41. {pyield-0.46.0 → pyield-0.46.1}/pyield/bc/vna.py +0 -0
  42. {pyield-0.46.0 → pyield-0.46.1}/pyield/bday/__init__.py +0 -0
  43. {pyield-0.46.0 → pyield-0.46.1}/pyield/bday/core.py +0 -0
  44. {pyield-0.46.0 → pyield-0.46.1}/pyield/bday/holidays/br_holidays_new.txt +0 -0
  45. {pyield-0.46.0 → pyield-0.46.1}/pyield/bday/holidays/br_holidays_old.txt +0 -0
  46. {pyield-0.46.0 → pyield-0.46.1}/pyield/bday/holidays/brholidays.py +0 -0
  47. {pyield-0.46.0 → pyield-0.46.1}/pyield/clock.py +0 -0
  48. {pyield-0.46.0 → pyield-0.46.1}/pyield/fwd.py +0 -0
  49. {pyield-0.46.0 → pyield-0.46.1}/pyield/interpolator.py +0 -0
  50. {pyield-0.46.0 → pyield-0.46.1}/pyield/ipca/__init__.py +0 -0
  51. {pyield-0.46.0 → pyield-0.46.1}/pyield/ipca/historical.py +0 -0
  52. {pyield-0.46.0 → pyield-0.46.1}/pyield/ipca/projected.py +0 -0
  53. {pyield-0.46.0 → pyield-0.46.1}/pyield/py.typed +0 -0
  54. {pyield-0.46.0 → pyield-0.46.1}/pyield/rmd.py +0 -0
  55. {pyield-0.46.0 → pyield-0.46.1}/pyield/selic/__init__.py +0 -0
  56. {pyield-0.46.0 → pyield-0.46.1}/pyield/selic/cpm.py +0 -0
  57. {pyield-0.46.0 → pyield-0.46.1}/pyield/selic/probabilities.py +0 -0
  58. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/__init__.py +0 -0
  59. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/auctions.py +0 -0
  60. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/benchmark.py +0 -0
  61. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/lft.py +0 -0
  62. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/ltn.py +0 -0
  63. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/ntnb.py +0 -0
  64. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/ntnb1.py +0 -0
  65. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/ntnbprinc.py +0 -0
  66. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/ntnc.py +0 -0
  67. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/ntnf.py +0 -0
  68. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/pre.py +0 -0
  69. {pyield-0.46.0 → pyield-0.46.1}/pyield/tn/utils.py +0 -0
  70. {pyield-0.46.0 → pyield-0.46.1}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyield
3
- Version: 0.46.0
3
+ Version: 0.46.1
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
@@ -0,0 +1 @@
1
+ __version__ = "0.46.1"
@@ -109,7 +109,7 @@ def _processar_csv(data_ref: dt.date, df: pl.DataFrame) -> pl.DataFrame:
109
109
  provedor=pl.col("Provedor"),
110
110
  titulo=pl.col("Título"),
111
111
  data_vencimento=pl.col("data_vencimento"),
112
- codigo_isin=pl.col("Código ISIN"),
112
+ isin=pl.col("Código ISIN"),
113
113
  dias_uteis=bday.count_expr(data_ref, "data_vencimento"),
114
114
  taxa_indicativa_anterior=taxa_br("Fech D-1"),
115
115
  taxa_indicativa_superior=taxa_br("Indicativo Superior"),
@@ -142,7 +142,7 @@ def tpf_difusao(data_referencia: DateLike) -> pl.DataFrame:
142
142
  - provedor (string): Provedor dos dados.
143
143
  - titulo (string): Nome do título (ex: LFT, LTN).
144
144
  - data_vencimento (date): Data de vencimento do título.
145
- - codigo_isin (string): Código ISIN do título.
145
+ - isin (string): código ISIN do título.
146
146
  - dias_uteis (int): Dias úteis entre a data de referência e o vencimento.
147
147
  - taxa_indicativa_anterior (float): Taxa indicativa de fechamento D-1 (decimal).
148
148
  - taxa_indicativa_superior (float): Limite superior da banda indicativa (decimal).
@@ -59,7 +59,7 @@ def _processar_df(df: pl.DataFrame) -> pl.DataFrame:
59
59
  titulo=pl.col("Títulos"),
60
60
  data_vencimento=pl.col("Data de Vencimento").str.to_date("%d/%m/%Y"),
61
61
  codigo_selic=pl.col("Código SELIC").cast(pl.Int64),
62
- codigo_isin=pl.col("Código ISIN"),
62
+ isin=pl.col("Código ISIN"),
63
63
  dias_uteis=pl.col("Prazo (d.u.)").cast(pl.Int64),
64
64
  duration=pl.col("duration"),
65
65
  taxa_indicativa=pl.col("taxa_indicativa"),
@@ -100,7 +100,7 @@ def last_ima(ima_type: TiposIMA | None = None) -> pl.DataFrame:
100
100
  - titulo (String): título (ex: 'LTN', 'NTN-B').
101
101
  - data_vencimento (Date): data de vencimento do título.
102
102
  - codigo_selic (Int64): código do título no sistema SELIC.
103
- - codigo_isin (String): código ISIN.
103
+ - isin (String): código ISIN.
104
104
  - dias_uteis (Int64): dias úteis até o vencimento.
105
105
  - duration (Float64): duration do título em anos úteis (252 d.u./ano).
106
106
  - taxa_indicativa (Float64): taxa indicativa em decimal (ex: 0.10 para 10%).
@@ -102,7 +102,7 @@ def _processar_df(df: pl.DataFrame, data_referencia: dt.date) -> pl.DataFrame:
102
102
  titulo=pl.col("Título"),
103
103
  data_vencimento=pl.col("Data de Vencimento").str.to_date(format="%d/%m/%Y"),
104
104
  codigo_selic=pl.col("Codigo Selic").cast(pl.Int64),
105
- codigo_isin=pl.col("Código ISIN"),
105
+ isin=pl.col("Código ISIN"),
106
106
  pu=float_br("PU (R$)"),
107
107
  quantidade_mercado=inteiro_m("Quantidade em Mercado (1.000 Títulos)"),
108
108
  valor_mercado=inteiro_m("Valor de Mercado (R$ Mil)"),
@@ -129,7 +129,7 @@ def imaq(date: DateLike) -> pl.DataFrame:
129
129
  - titulo (String): tipo do título (LTN, NTN-B, NTN-F, LFT, …).
130
130
  - data_vencimento (Date): data de vencimento do título.
131
131
  - codigo_selic (Int64): código SELIC do título.
132
- - codigo_isin (String): código ISIN (International Securities Id Number).
132
+ - isin (String): código ISIN.
133
133
  - pu (Float64): PU do título em R$.
134
134
  - quantidade_mercado (Int64): quantidade em mercado (unidades).
135
135
  - valor_mercado (Int64): valor de mercado em R$.
@@ -280,54 +280,62 @@ def auctions(
280
280
  end: DateLike | None = None,
281
281
  auction_type: Literal["sell", "buy"] | None = None,
282
282
  ) -> pl.DataFrame:
283
- """
284
- Recupera dados de leilões para um determinado período e tipo de leilão da API do BC.
285
-
286
- **Consultas de período:**
287
- - Para consultar dados de um intervalo, forneça as datas de `start` e `end`.
288
- Exemplo: `auctions(start='2024-10-20', end='2024-10-27')`
289
- - Se apenas `start` for fornecido, a API do BC retornará dados de leilão a partir
290
- da data de `start` **até a data mais recente disponível**.
291
- Exemplo: `auctions(start='2024-10-20')`
292
- - Se apenas `end` for fornecido, a API do BC retornará dados de leilão **desde a
293
- data mais antiga disponível até a data de `end`**.
294
- Exemplo: `auctions(end='2024-10-27')`
295
-
296
- **Série histórica completa:**
297
- - Para recuperar a série histórica completa de leilões (desde 12/11/2012 até o
298
- último dia útil), chame a função sem fornecer os parâmetros `start` e `end`.
299
- Exemplo: `auctions()`
300
-
301
- Busca dados de leilões da API do BC para as datas de início e fim especificadas,
302
- filtrando os resultados diretamente na API pelo tipo de leilão, se especificado.
303
- O comportamento da função em relação aos parâmetros `start` e `end` segue o padrão
304
- da API do Banco Central:
305
- - Se `start` for fornecido e `end` não, a função retorna dados de `start` até o fim.
306
- - Se `end` for fornecido e `start` não, a API retorna dados do início até `end`.
307
- - Se ambos `start` e `end` forem omitidos, a API retorna a série histórica completa.
308
-
309
- Os dados podem ser filtrados pelo tipo de leilão especificado ("Sell" ou "Buy").
310
- Leilões de "Sell" são aqueles em que o Tesouro Nacional vende títulos ao mercado.
311
- Leilões de "Buy" são aqueles em que o Tesouro Nacional compra títulos do mercado.
283
+ """Dados de leilões de títulos públicos federais do BCB.
284
+
285
+ Fonte: Banco Central do Brasil. Disponível desde 12/11/2012.
286
+
287
+ Se ambos `start` e `end` forem omitidos, retorna a série
288
+ histórica completa. Se apenas um for informado, a API do BCB
289
+ usa o início ou fim do histórico como limite.
312
290
 
313
291
  Args:
314
- start (DateLike, opcional): A data de início para a consulta dos leilões.
315
- Se `start` for fornecido e `end` for `None`, a API retornará dados de
316
- leilão a partir de `start` até a data mais recente disponível.
317
- Se `start` e `end` forem `None`, a série histórica completa será retornada.
318
- Padrão é `None`.
319
- end (DateLike, opcional): A data de fim para a consulta de dados de leilão.
320
- Se `end` for fornecido e `start` for `None`, a API retornará dados de
321
- leilão desde a data mais antiga disponível até a data de `end`.
322
- Se `start` e `end` forem `None`, a série histórica completa será retornada.
323
- Padrão é `None`.
324
- auction_type (Literal["sell", "buy"], opcional): O tipo de leilão para filtrar
325
- diretamente na API. Padrão é `None` (retorna todos os tipos de leilão).
292
+ start: Data de início. Padrão é ``None``.
293
+ end: Data de fim. Padrão é ``None``.
294
+ auction_type: Tipo de leilão (``"sell"`` = venda,
295
+ ``"buy"`` = compra). Padrão é ``None`` (todos).
326
296
 
327
297
  Returns:
328
- pl.DataFrame: Um DataFrame contendo dados de leilões para o período e tipo
329
- especificados. Em caso de erro ao buscar os dados, um DataFrame vazio
330
- é retornado e uma mensagem de erro é registrada no log.
298
+ DataFrame com dados de leilões, ou DataFrame vazio
299
+ se não houver dados.
300
+
301
+ Output Columns:
302
+ * data_leilao (Date): data do leilão.
303
+ * data_liquidacao (Date): data de liquidação.
304
+ * tipo_leilao (String): "Venda" ou "Compra".
305
+ * numero_edital (Int64): edital normativo.
306
+ * tipo_publico (String): categoria do comprador.
307
+ * titulo (String): sigla do título (LTN, LFT, NTN-B, NTN-F).
308
+ * codigo_selic (Int64): código no sistema Selic.
309
+ * data_vencimento (Date): data de vencimento.
310
+ * dias_uteis (Int32): dias úteis até o vencimento.
311
+ * duration (Float64): duração de Macaulay em anos.
312
+ * prazo_medio (Float64): prazo médio em anos.
313
+ * pu_medio (Float64): PU médio no leilão.
314
+ * pu_corte (Float64): PU de corte.
315
+ * taxa_media (Float64): taxa média (decimal).
316
+ * taxa_corte (Float64): taxa de corte (decimal).
317
+ * dv01_1v (Float64): DV01 da 1ª volta em R$.
318
+ * dv01_2v (Float64): DV01 da 2ª volta em R$.
319
+ * dv01_total (Float64): DV01 total em R$.
320
+ * ptax (Float64): PTAX (venda) para conversão USD.
321
+ * dv01_1v_usd (Float64): DV01 da 1ª volta em USD.
322
+ * dv01_2v_usd (Float64): DV01 da 2ª volta em USD.
323
+ * dv01_total_usd (Float64): DV01 total em USD.
324
+ * quantidade_liquidada_1v (Int64): qtd liquidada 1ª volta.
325
+ * quantidade_liquidada_2v (Int64): qtd liquidada 2ª volta.
326
+ * quantidade_liquidada_total (Int64): qtd total liquidada.
327
+ * quantidade_ofertada_1v (Int64): qtd ofertada 1ª volta.
328
+ * quantidade_ofertada_2v (Int64): qtd ofertada 2ª volta.
329
+ * quantidade_ofertada_total (Int64): qtd total ofertada.
330
+ * quantidade_aceita_1v (Int64): qtd aceita 1ª volta.
331
+ * quantidade_aceita_2v (Int64): qtd aceita 2ª volta.
332
+ * quantidade_aceita_total (Int64): qtd total aceita.
333
+ * financeiro_1v (Int64): financeiro 1ª volta em R$.
334
+ * financeiro_2v (Int64): financeiro 2ª volta em R$.
335
+ * financeiro_total (Int64): financeiro total em R$.
336
+
337
+ Notes:
338
+ 1v = primeira volta (rodada), 2v = segunda volta.
331
339
 
332
340
  Examples:
333
341
  >>> from pyield import bc
@@ -344,46 +352,6 @@ def auctions(
344
352
  │ 2025-08-19 ┆ 2025-08-20 ┆ Venda ┆ 194 ┆ … ┆ 500542 ┆ 2071654327 ┆ 2245673 ┆ 2073900000 │
345
353
  │ 2025-08-19 ┆ 2025-08-20 ┆ Venda ┆ 194 ┆ … ┆ 500000 ┆ 2010700000 ┆ 0 ┆ 2010700000 │
346
354
  └─────────────┴─────────────────┴─────────────┴───────────────┴───┴─────────────────────────┴───────────────┴───────────────┴──────────────────┘
347
-
348
- Notes:
349
- 1v = Primeira Volta (Rodada)
350
- 2v = Segunda Volta (Rodada)
351
-
352
- Colunas do DataFrame:
353
- - data_leilao (Date): data do leilão.
354
- - data_liquidacao (Date): data de liquidação do leilão.
355
- - tipo_leilao (String): tipo de leilão (ex: "Venda" ou "Compra").
356
- - numero_edital (Int64): edital normativo associado ao leilão.
357
- - tipo_publico (String): categoria do comprador.
358
- - titulo (String): tipo do título (ex: "LTN", "LFT", "NTN-B", "NTN-F").
359
- - codigo_selic (Int64): código do título no sistema Selic.
360
- - data_vencimento (Date): data de vencimento do título.
361
- - dias_uteis (Int32): dias úteis entre a liquidação e o vencimento.
362
- - duration (Float64): duração de Macaulay em anos.
363
- - prazo_medio (Float64): prazo médio do título em anos.
364
- - pu_medio (Float64): preço unitário médio no leilão.
365
- - pu_corte (Float64): preço unitário de corte.
366
- - taxa_media (Float64): taxa de juros média (formato decimal).
367
- - taxa_corte (Float64): taxa de corte (formato decimal).
368
- - dv01_1v (Float64): DV01 da 1ª volta em R$.
369
- - dv01_2v (Float64): DV01 da 2ª volta em R$.
370
- - dv01_total (Float64): DV01 total do leilão em R$.
371
- - ptax (Float64): taxa PTAX utilizada na conversão para USD.
372
- - dv01_1v_usd (Float64): DV01 da 1ª volta em USD.
373
- - dv01_2v_usd (Float64): DV01 da 2ª volta em USD.
374
- - dv01_total_usd (Float64): DV01 total em USD.
375
- - quantidade_liquidada_1v (Int64): quantidade liquidada na 1ª volta.
376
- - quantidade_liquidada_2v (Int64): quantidade liquidada na 2ª volta.
377
- - quantidade_liquidada_total (Int64): quantidade total liquidada.
378
- - quantidade_ofertada_1v (Int64): quantidade ofertada na 1ª volta.
379
- - quantidade_ofertada_2v (Int64): quantidade ofertada na 2ª volta.
380
- - quantidade_ofertada_total (Int64): quantidade total ofertada.
381
- - quantidade_aceita_1v (Int64): quantidade aceita na 1ª volta.
382
- - quantidade_aceita_2v (Int64): quantidade aceita na 2ª volta.
383
- - quantidade_aceita_total (Int64): quantidade total aceita.
384
- - financeiro_1v (Int64): valor financeiro da 1ª volta em R$.
385
- - financeiro_2v (Int64): valor financeiro da 2ª volta em R$.
386
- - financeiro_total (Int64): valor financeiro total em R$.
387
355
  """
388
356
  url = _montar_url(inicio=start, fim=end, tipo_leilao=auction_type)
389
357
  dados = _buscar_csv(url)
@@ -9,10 +9,14 @@ cotacaoCompra, cotacaoVenda, dataHoraCotacao
9
9
  2814 , 2828 , 1984-12-03 11:29:00.0
10
10
  2814 , 2828 , 1984-12-03 16:38:00.0
11
11
  2867 , 2881 , 1984-12-04 11:17:00.0
12
+ "0,843" , "0,845" , 1995-01-02 18:20:00.0
12
13
  ...
13
14
  "5,4272" , "5,4278" , 2025-09-08 13:09:40.608
14
15
  "5,4272" , "5,4278" , 2025-09-09 13:07:27.786
15
16
  "5,4117" , "5,4123" , 2025-09-10 13:06:29.196
17
+
18
+ ATENÇÃO: a fração de segundo varia entre .0 (datas antigas) e .608
19
+ (datas recentes). Usar %.f (variável) no parsing, nunca %.3f (fixo).
16
20
  """
17
21
 
18
22
  import datetime as dt
@@ -60,7 +64,7 @@ def _processar_df(df: pl.DataFrame) -> pl.DataFrame:
60
64
  cotacao_compra=float_br("cotacaoCompra"),
61
65
  cotacao_venda=float_br("cotacaoVenda"),
62
66
  data_hora=pl.col("dataHoraCotacao").str.to_datetime(
63
- format="%Y-%m-%d %H:%M:%S%.3f", strict=False
67
+ format="%Y-%m-%d %H:%M:%S%.f", strict=False
64
68
  ),
65
69
  )
66
70
  .with_columns(
@@ -121,13 +125,27 @@ def ptax_series(
121
125
  ┌────────────┬─────────────────────────┬────────────────┬───────────────┬───────────────┐
122
126
  │ data ┆ data_hora ┆ cotacao_compra ┆ cotacao_venda ┆ cotacao_media │
123
127
  │ --- ┆ --- ┆ --- ┆ --- ┆ --- │
124
- │ date ┆ datetime[ms] ┆ f64 ┆ f64 ┆ f64 │
128
+ │ date ┆ datetime[μs] ┆ f64 ┆ f64 ┆ f64 │
125
129
  ╞════════════╪═════════════════════════╪════════════════╪═══════════════╪═══════════════╡
126
130
  │ 2025-04-22 ┆ 2025-04-22 13:09:35.629 ┆ 5.749 ┆ 5.7496 ┆ 5.7493 │
127
131
  │ 2025-04-23 ┆ 2025-04-23 13:06:30.443 ┆ 5.6874 ┆ 5.688 ┆ 5.6877 │
128
132
  │ 2025-04-24 ┆ 2025-04-24 13:04:29.639 ┆ 5.6732 ┆ 5.6738 ┆ 5.6735 │
129
133
  │ 2025-04-25 ┆ 2025-04-25 13:09:26.592 ┆ 5.684 ┆ 5.6846 ┆ 5.6843 │
130
134
  └────────────┴─────────────────────────┴────────────────┴───────────────┴───────────────┘
135
+
136
+ >>> bc.ptax_series(start="02-01-1995", end="06-01-1995")
137
+ shape: (5, 5)
138
+ ┌────────────┬─────────────────────┬────────────────┬───────────────┬───────────────┐
139
+ │ data ┆ data_hora ┆ cotacao_compra ┆ cotacao_venda ┆ cotacao_media │
140
+ │ --- ┆ --- ┆ --- ┆ --- ┆ --- │
141
+ │ date ┆ datetime[μs] ┆ f64 ┆ f64 ┆ f64 │
142
+ ╞════════════╪═════════════════════╪════════════════╪═══════════════╪═══════════════╡
143
+ │ 1995-01-02 ┆ 1995-01-02 18:20:00 ┆ 0.843 ┆ 0.845 ┆ 0.844 │
144
+ │ 1995-01-03 ┆ 1995-01-03 18:25:00 ┆ 0.844 ┆ 0.846 ┆ 0.845 │
145
+ │ 1995-01-04 ┆ 1995-01-04 18:12:00 ┆ 0.844 ┆ 0.846 ┆ 0.845 │
146
+ │ 1995-01-05 ┆ 1995-01-05 18:07:00 ┆ 0.842 ┆ 0.844 ┆ 0.843 │
147
+ │ 1995-01-06 ┆ 1995-01-06 18:12:00 ┆ 0.839 ┆ 0.841 ┆ 0.84 │
148
+ └────────────┴─────────────────────┴────────────────┴───────────────┴───────────────┘
131
149
  """
132
150
  if start:
133
151
  start = cv.converter_datas(start)
@@ -49,7 +49,7 @@ def _processar_df(df: pl.DataFrame) -> pl.DataFrame:
49
49
  """Filtra registros, converte tipos e reordena colunas."""
50
50
  agora = clock.now()
51
51
  return df.filter(pl.col("//1") == "1").select(
52
- coletado_em=agora,
52
+ data_hora_consulta=agora,
53
53
  data_liquidacao=agora.date(),
54
54
  titulo=pl.col("sigla").str.strip_chars(),
55
55
  codigo_selic=inteiro_br("código título"),
@@ -106,7 +106,7 @@ def tpf_intraday_trades() -> pl.DataFrame:
106
106
  estiver fechado ou ocorrer erro.
107
107
 
108
108
  Output Columns:
109
- - coletado_em (Datetime): timestamp da coleta (BRT).
109
+ - data_hora_consulta (Datetime): data e hora da consulta (BRT).
110
110
  - data_liquidacao (Date): data de liquidação à vista.
111
111
  - titulo (String): sigla do título (ex.: LFT, LTN, NTN-B).
112
112
  - codigo_selic (Int64): código SELIC do título.
@@ -72,7 +72,7 @@ def _processar_df(df: pl.DataFrame) -> pl.DataFrame:
72
72
  data_liquidacao=pl.col("DATA MOV").str.to_date("%d/%m/%Y", strict=False),
73
73
  titulo=pl.col("SIGLA"),
74
74
  codigo_selic=pl.col("CODIGO").cast(pl.Int64),
75
- codigo_isin=pl.col("CODIGO ISIN"),
75
+ isin=pl.col("CODIGO ISIN"),
76
76
  data_emissao=pl.col("EMISSAO").str.to_date("%d/%m/%Y", strict=False),
77
77
  data_vencimento=pl.col("VENCIMENTO").str.to_date("%d/%m/%Y", strict=False),
78
78
  operacoes=pl.col("NUM DE OPER").cast(pl.Int64),
@@ -120,7 +120,7 @@ def tpf_monthly_trades(target_date: DateLike, extragroup: bool = False) -> pl.Da
120
120
  - data_liquidacao (Date): data de liquidação da negociação.
121
121
  - titulo (str): sigla do título (ex: LFT, LTN, NTN-B, NTN-F).
122
122
  - codigo_selic (Int64): código único no sistema Selic.
123
- - codigo_isin (str): código ISIN (International Securities Id Number).
123
+ - isin (str): código ISIN.
124
124
  - data_emissao (Date): data de emissão do título.
125
125
  - data_vencimento (Date): data de vencimento do título.
126
126
  - operacoes (Int64): número total de operações realizadas.
@@ -130,11 +130,11 @@ def tpf_monthly_trades(target_date: DateLike, extragroup: bool = False) -> pl.Da
130
130
  - pu_medio (Float64): preço unitário médio.
131
131
  - pu_maximo (Float64): preço unitário máximo.
132
132
  - pu_lastro (Float64): PU lastro.
133
- - valor_par (Float64): valor nominal atualizado (VNA) do título.
133
+ - valor_par (Float64): valor par do título.
134
134
  - taxa_minima (Float64): taxa mínima.
135
135
  - taxa_media (Float64): taxa média.
136
136
  - taxa_maxima (Float64): taxa máxima.
137
- - operacoes_corretagem (Int64): subconjunto de operacoes com corretagem.
137
+ - operacoes_corretagem (Int64): subconjunto de operações com corretagem.
138
138
  - quantidade_corretagem (Int64): subconjunto de quantidade com corretagem.
139
139
 
140
140
  Notes:
@@ -1 +0,0 @@
1
- __version__ = "0.46.0"
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