API B3 - Referência Técnica¶
Documentação técnica detalhada da API B3.
HistoricalQuotesB3¶
Classe Principal¶
class HistoricalQuotesB3:
"""Interface de alto nível para cotações B3."""
Métodos¶
extract()¶
def extract(
self,
path_of_docs: str,
assets_list: List[str],
initial_year: Optional[int] = None,
last_year: Optional[int] = None,
destination_path: Optional[str] = None,
output_filename: str = "cotahist_extracted",
processing_mode: str = "fast",
) -> Dict[str, Any]
Descrição: Extrai cotações históricas de arquivos COTAHIST.
Parâmetros:
| Nome | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
path_of_docs |
str |
Sim | - | Diretório com ZIPs COTAHIST |
assets_list |
List[str] |
Sim | - | Classes de ativos |
initial_year |
Optional[int] |
Não | 1986 |
Ano inicial |
last_year |
Optional[int] |
Não | Ano atual | Ano final |
destination_path |
Optional[str] |
Não | path_of_docs |
Diretório de saída |
output_filename |
str |
Não | "cotahist_extracted" |
Nome do arquivo |
processing_mode |
str |
Não | "fast" |
Modo: “fast” ou “slow” |
Retorno: Dicionário com chaves:
success(bool): Sucesso da operaçãomessage(str): Mensagem resumidatotal_files(int): Total de arquivos processadossuccess_count(int): Arquivos com sucessoerror_count(int): Arquivos com errototal_records(int): Total de registros extraídosoutput_file(str): Caminho do arquivo Parqueterrors(List[str]): Lista de erros (se houver)
Exceções:
EmptyAssetListError: Lista de ativos vaziaInvalidAssetsName: Ativo inválidoInvalidFirstYear: Ano inicial inválidoInvalidLastYear: Ano final inválidoEmptyDirectoryError: Diretório vazioExtractionError: Erro na extração
Exemplo:
b3 = HistoricalQuotesB3()
result = b3.extract(
path_of_docs="/data/cotahist",
assets_list=["ações", "etf"],
initial_year=2022,
last_year=2023,
processing_mode="fast"
)
print(f"Extraídos {result['total_records']:,} registros")
get_available_assets()¶
def get_available_assets(self) -> List[str]
Descrição: Retorna lista de classes de ativos disponíveis.
Retorno: Lista de strings
Exemplo:
assets = b3.get_available_assets()
# ['ações', 'etf', 'opções', ...]
get_available_years()¶
def get_available_years(self) -> Dict[str, int]
Descrição: Retorna intervalo de anos disponível.
Retorno: Dicionário com chaves:
"minimal_year": 1986"current_year": Ano atual
Exemplo:
years = b3.get_available_years()
# {'minimal_year': 1986, 'current_year': ano atual}
Classes de Ativos¶
| Código | Descrição | Mercados |
|---|---|---|
| ações | Ações | 010 (à vista), 012 (fracionário) |
| etf | ETFs | Exchange Traded Funds |
| opções | Opções | 070 (call), 080 (put) |
| termo | Mercado a Termo | Contratos a termo |
| exercicio_opcoes | Exercício de Opções | Exercício de opções |
| forward | Mercado Forward | Contratos forward |
| leilao | Leilão | Mercado de leilão |
Modos de Processamento¶
| Modo | Performance | CPU | RAM | Uso |
|---|---|---|---|---|
| fast | Alta | Alto | ~2GB | Padrão, máquinas com bons recursos |
| slow | Moderada | Baixo | ~500MB | Recursos limitados |
Veja também: