b3fileparser
A função dessa biblioteca é fazer o parser do arquivo com cotações históricas da B3, disponíveis em https://www.b3.com.br/pt_br/market-data-e-indices/servicos-de-dados/market-data/historico/mercado-a-vista/cotacoes-historicas/
Instalação
Instalação pode ser feita via pip
pip install b3fileparser
Exemplo 1
from b3fileparser.b3parser import B3Parser
parser = B3Parser.create_parser(engine='pandas')
dados_b3 = parser.read_b3_file('COTAHIST_A2023.TXT')
dados_b3
dados_b3 é um DataFrame:
| TIPO_DE_REGISTRO | DATA_DO_PREGAO | CODIGO_BDI | CODIGO_DE_NEGOCIACAO | TIPO_DE_MERCADO | NOME_DA_EMPRESA | ESPECIFICACAO_DO_PAPEL | PRAZO_EM_DIAS_DO_MERCADO_A_TERMO | MOEDA_DE_REFERENCIA | PRECO_DE_ABERTURA | PRECO_MAXIMO | PRECO_MINIMO | PRECO_MEDIO | PRECO_ULTIMO_NEGOCIO | PRECO_MELHOR_OFERTA_DE_COMPRA | PRECO_MELHOR_OFERTA_DE_VENDAS | NUMERO_DE_NEGOCIOS | QUANTIDADE_NEGOCIADA | VOLUME_TOTAL_NEGOCIADO | PRECO_DE_EXERCICIO | INDICADOR_DE_CORRECAO_DE_PRECOS | DATA_DE_VENCIMENTO | FATOR_DE_COTACAO | PRECO_DE_EXERCICIO_EM_PONTOS | CODIGO_ISIN | NUMERO_DE_DISTRIBUICAO | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 2023-01-02 00:00:00 | 34 | MMMC34 | VISTA | 3M | DRN | -1 | R$ | 165.56 | 165.56 | 159.06 | 160.97 | 161.44 | 161.44 | 161.59 | 31 | 120 | 20443.2 | 0 | 0 | NaT | 1 | 0 | BRMMMCBDR000 | 143 |
| 2 | 1 | 2023-01-02 00:00:00 | LOTE_PADRAO | RRRP3 | VISTA | 3R PETROLEUM | ON NM | -1 | R$ | 37.24 | 37.93 | 35.97 | 36.64 | 36.41 | 36.4 | 36.41 | 13731 | 2.8788e+06 | 1.05483e+08 | 0 | 0 | NaT | 1 | 0 | BRRRRPACNOR5 | 100 |
| 3 | 1 | 2023-01-02 00:00:00 | MERCADO FRACIONARIO | RRRP3F | FRACIONARIO | 3R PETROLEUM | ON NM | -1 | R$ | 37.75 | 37.91 | 35.98 | 36.69 | 36.94 | 36.94 | 37 | 1309 | 24010 | 881003 | 0 | 0 | NaT | 1 | 0 | BRRRRPACNOR5 | 100 |
| 4 | 1 | 2023-01-02 00:00:00 | LOTE_PADRAO | TTEN3 | VISTA | 3TENTOS | ON NM | -1 | R$ | 9.65 | 9.65 | 9.07 | 9.23 | 9.36 | 9.35 | 9.36 | 3292 | 701700 | 6.48253e+06 | 0 | 0 | NaT | 1 | 0 | BRTTENACNOR0 | 101 |
| 5 | 1 | 2023-01-02 00:00:00 | MERCADO FRACIONARIO | TTEN3F | FRACIONARIO | 3TENTOS | ON NM | -1 | R$ | 9.34 | 9.44 | 9.08 | 9.26 | 9.2 | 9.2 | 9.65 | 238 | 4640 | 43069.7 | 0 | 0 | NaT | 1 | 0 | BRTTENACNOR0 | 101 |
Exemplo 2 - Listando Opções de Venda da Petrobras
from b3fileparser.b3parser import B3Parser
parser = B3Parser.create_parser()
dados = parser.read_b3_file('COTAHIST_A2023.TXT')
puts = dados[dados['TIPO_DE_MERCADO'] == 'OPCOES_DE_VENDA']
putspetro = puts[puts['CODIGO_DE_NEGOCIACAO'].str.startswith('PETR')]
putspetro.head()
| TIPO_DE_REGISTRO | DATA_DO_PREGAO | CODIGO_BDI | CODIGO_DE_NEGOCIACAO | TIPO_DE_MERCADO | NOME_DA_EMPRESA | ESPECIFICACAO_DO_PAPEL | PRAZO_EM_DIAS_DO_MERCADO_A_TERMO | MOEDA_DE_REFERENCIA | PRECO_DE_ABERTURA | PRECO_MAXIMO | PRECO_MINIMO | PRECO_MEDIO | PRECO_ULTIMO_NEGOCIO | PRECO_MELHOR_OFERTA_DE_COMPRA | PRECO_MELHOR_OFERTA_DE_VENDAS | NUMERO_DE_NEGOCIOS | QUANTIDADE_NEGOCIADA | VOLUME_TOTAL_NEGOCIADO | PRECO_DE_EXERCICIO | INDICADOR_DE_CORRECAO_DE_PRECOS | DATA_DE_VENCIMENTO | FATOR_DE_COTACAO | PRECO_DE_EXERCICIO_EM_PONTOS | CODIGO_ISIN | NUMERO_DE_DISTRIBUICAO | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 24653 | 1 | 2023-01-02 00:00:00 | OPCOES_DE_VENDA | PETRM318 | OPCOES_DE_VENDA | PETRE | ON N2 | 0 | R$ | 0.17 | 0.22 | 0.17 | 0.19 | 0.18 | 0 | 0 | 66 | 68100 | 13008 | 21.91 | 0 | 2023-01-20 00:00:00 | 1 | 0 | BRPETRACNOR9 | 196 |
| 24654 | 1 | 2023-01-02 00:00:00 | OPCOES_DE_VENDA | PETRM328 | OPCOES_DE_VENDA | PETRE | ON N2 | 0 | R$ | 0.16 | 0.3 | 0.16 | 0.21 | 0.29 | 0 | 0 | 52 | 47800 | 10127 | 22.91 | 0 | 2023-01-20 00:00:00 | 1 | 0 | BRPETRACNOR9 | 196 |
| 24655 | 1 | 2023-01-02 00:00:00 | OPCOES_DE_VENDA | PETRN282 | OPCOES_DE_VENDA | PETRE | ON N2 | 0 | R$ | 1.11 | 1.11 | 1.07 | 1.1 | 1.07 | 0 | 0 | 9 | 22000 | 24340 | 24.98 | 0 | 2023-02-17 00:00:00 | 1 | 0 | BRPETRACNOR9 | 197 |
| 24656 | 1 | 2023-01-02 00:00:00 | OPCOES_DE_VENDA | PETRM28 | OPCOES_DE_VENDA | PETRE | ON N2 | 0 | R$ | 0.69 | 1.03 | 0.69 | 0.97 | 1 | 0 | 1 | 26 | 69600 | 68155 | 25.66 | 0 | 2023-01-20 00:00:00 | 1 | 0 | BRPETRACNOR9 | 197 |
| 24657 | 1 | 2023-01-02 00:00:00 | OPCOES_DE_VENDA | PETRM294 | OPCOES_DE_VENDA | PETRE | ON N2 | 0 | R$ | 1.09 | 1.23 | 1.04 | 1.11 | 1.08 | 0 | 0 | 12 | 7700 | 8616 | 26.16 | 0 | 2023-01-20 00:00:00 | 1 | 0 | BRPETRACNOR9 | 197 |
Sobre os dados
O parse do arquivo é realizado de acordo com o Layout fornecido pela b3: https://www.b3.com.br/data/files/33/67/B9/50/D84057102C784E47AC094EA8/SeriesHistoricas_Layout.pdf
Colunas
| COLUNA | TAMANHO NO ARQUIVO TXT | |
|---|---|---|
| 0 | TIPO_DE_REGISTRO | 2 |
| 1 | DATA_DO_PREGAO | 8 |
| 2 | CODIGO_BDI | 2 |
| 3 | CODIGO_DE_NEGOCIACAO | 12 |
| 4 | TIPO_DE_MERCADO | 3 |
| 5 | NOME_DA_EMPRESA | 12 |
| 6 | ESPECIFICACAO_DO_PAPEL | 10 |
| 7 | PRAZO_EM_DIAS_DO_MERCADO_A_TERMO | 3 |
| 8 | MOEDA_DE_REFERENCIA | 4 |
| 9 | PRECO_DE_ABERTURA | 13 |
| 10 | PRECO_MAXIMO | 13 |
| 11 | PRECO_MINIMO | 13 |
| 12 | PRECO_MEDIO | 13 |
| 13 | PRECO_ULTIMO_NEGOCIO | 13 |
| 14 | PRECO_MELHOR_OFERTA_DE_COMPRA | 13 |
| 15 | PRECO_MELHOR_OFERTA_DE_VENDAS | 13 |
| 16 | NUMERO_DE_NEGOCIOS | 5 |
| 17 | QUANTIDADE_NEGOCIADA | 18 |
| 18 | VOLUME_TOTAL_NEGOCIADO | 18 |
| 19 | PRECO_DE_EXERCICIO | 13 |
| 20 | INDICADOR_DE_CORRECAO_DE_PRECOS | 1 |
| 21 | DATA_DE_VENCIMENTO | 8 |
| 22 | FATOR_DE_COTACAO | 7 |
| 23 | PRECO_DE_EXERCICIO_EM_PONTOS | 13 |
| 24 | CODIGO_ISIN | 12 |
| 25 | NUMERO_DE_DISTRIBUICAO | 3 |
Tipos de mercado
| TIPO DE MERCADO | |
|---|---|
| 10 | VISTA |
| 12 | EXERCICIO DE OPCOES DE COMPRA |
| 13 | EXERCÍCIO DE OPCOES DE VENDA |
| 17 | LEILAO |
| 20 | FRACIONARIO |
| 30 | TERMO |
| 50 | FUTURO_COM_RETENCAO_DE_GANHO |
| 60 | FUTURO_COM_MOVIMENTACAO_CONTINUA |
| 70 | OPCOES_DE_COMPRA |
| 80 | OPCOES_DE_VENDA |
Metadata
Release files for b3fileparser 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| b3fileparser-0.2.1.tar.gz | 8.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| b3fileparser-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.3 kB
Release files / b3fileparser-0.2.1.tar.gz
| Download URL | b3fileparser-0.2.1.tar.gz |
|---|---|
| Size | 8.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d26fb88c88cdeb97096968af81c247404d81e72b2ce0b86a86d4c64dbfae0425
|
|
BLAKE2b-256 checksum How to use checksums |
dc3f1410d99ea655e280d9682dd9be8ea84a949e31d726568273e1d073442a55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.3 Linux/5.15.146.1-microsoft-standard-WSL2
|
Release files / b3fileparser-0.2.1-py3-none-any.whl
| Download URL | b3fileparser-0.2.1-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
16d8d353b71ffe0182408ed21bbf06565aacde276e558db690d70f90787905e2
|
|
BLAKE2b-256 checksum How to use checksums |
976ca21880a94bc82e16e2aba0a2959a8d66817204d3dbf82a0b320ca321ef2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.3 Linux/5.15.146.1-microsoft-standard-WSL2
|
Security for b3fileparser 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.