Download e processamento de dados1 financeiros de empresas brasileiras diretamente da CVM.
Este programa baixa e processa os arquivos CSV do site da CVM e os armazena em um banco de dados local (sqlite), onde são extraídos os dados consolidados do balanço patrimonial, fluxo de caixa, DRE (demonstração de resultado), DVA (demonstração de valor adicionado).
São coletados vários arquivos CSV desde 2010. Cada um destes arquivos contém informações do ano corrente e também do ano anterior, dessa forma foi possível extrair também os dados de 2009.
Com base nestes dados, são criados os relatórios por empresa, com um comparativo de outras empresas do mesmo setor. A classificação dos setores é baixada do site da Bovespa e armazenada no arquivo setores.yml (no formato YAML), que pode ser editado para se adequar aos seus critérios, caso necessário.
A partir do release v0.11.0, passou-se a usar os dados trimestrais para compor os valores do ano corrente, usando-se para isso os últimos 4 trimestre (TTM), ou seja, a soma dos dados trimestrais do ano corrente com alguns do ano anterior, mantendo-se assim uma mesma base de comparação com os anos anteriores.
Não é necessário instalar, basta baixar o executável da página de release.
Abra o terminal (CMD no Windows) e rode os comandos listados abaixo.
Na primeira vez, rodar o seguinte comando para baixar e processar os arquivos do site da CVM:
./rapina get
Depois, para obter o relatório de uma determinada empresa, com o resumo das empresas do mesmo setor:
./rapina report <empresa>
Eventualmente, as empresas corrigem algum dado e enviam um novo arquivo à CVM, então é recomendável rodar o rapina get
periodicamente.
Download e armazenamento de dados financeiros no banco de dados local.
./rapina get [-s]
Baixa todos os arquivos disponíveis no servidor da CVM, processa o conteúdo e o armazena num banco de dados sqlite em .data/rapina.db
.
Este comando deve ser executado pelo menos uma vez antes dos outros comandos.
-s, --sectors Baixa a classificação setorial das empresas e fundos negociados na B3
Usado para obter apenas o resumo dos indicadores das empresas do mesmo setor.
Listagens
./rapina list
-e, --empresas Lista todas as empresas disponíveis
-s, --setor string Lista todas as empresas do mesmo setor
Por exemplo, para listar todas as empras do mesmo setor do Itaú: ./rapina lista -s itau
O resultado mostra a lista das empresas do mesmo setor contidos no banco de dados e no arquivo setores.yml, que você pode editar caso queira realocar os setores das empresas.
-l, --lucroLiquido número Lista empresas com lucros lucros positivos e com a taxa de crescimento definida
Lista as empresas com lucros líquidos positivos e com uma taxa de crescimento definida em relação ao mês anterior. Por exemplo:
- Para listar as empresas com crescimento mínimo de 10% em relação ao ano anterior:
./rapina list -l 0.1
- Para listar as empresas com variação no lucro de pelo menos -5% em relação ao ano anterior:
./rapina list -l -0.05
Cria uma planilha com os dados financeiros de uma empresa.
./rapina report [opções] empresa
Será criada uma planilha com os dados financeiros (BP, DRE, DFC) e, em outra aba, o resumo de todas as empresas do mesmo setor.
A lista setorial é obtida da B3 e salva no arquivo setor.yml
(via comando get -s
). Caso deseje alterar o agrupamento setorial, basta editar este arquivo. Mas lembre-se que ao rodar o get -s
o arquivo será sobrescrito.
-d, --outputDir string Diretório onde a planilha será salva
[default: ./reports]
-s, --scriptMode Não lista as empresas; usa a com nome mais próximo
No Linux ou macOS, use as setas para navegar na lista das empresas. No Windows, use j e k.
./rapina report WEG
A planilha será salva em ./reports
./rapina report "TEC TOY" -s -d /tmp/output
A planilha será salva em /tmp/output
Se quiser compilar seu próprio executável, primeiro baixe e instale o compilador Go (v1.13 ou maior). Depois execute estes passos:
git clone github.com/dude333/rapina
- Change to the cli directory (
cd rapina/cli
) - Compile using the Makefile (
make
). To cross compile for Windows on Linux, usemake win
.
- Faça um fork deste projeto no github.com
git clone https://github.com/
your_username/rapina && cd rapina
git checkout -b
my-new-feature- Faça as modificações
git add .
git commit -m 'Add some feature'
git push origin my-new-feature
- Crie um pull request
Para o cálculo do TTM (Twelve Trailling Months) foi usado o seguinte método, considerando que os dados apresentados no DRE trimestral (ITR) é cumulativo (os dados do trimestre apresentado contém os resultados desde o início do ano):
Trimestre | Valor | TTM | TTM equiv. |
---|---|---|---|
1T | A | ||
2T | A+B | ||
3T | A+B+C | ||
4T | A+B+C+D | ||
1T' | A' | A'+(A+B+C+D)-A = A'+B+C+D | 1T'+4T-1T |
2T' | A'+B' | (A'+B')+(A+B+C+D)-(A+B) = A'+B'+C+D | 2T'+4T-2T |
3T' | A'+B'+C' | (A'+B'+C')+(A+B+C+D)-(A+B+C) = A'+B'+C'+D | 3T'+4T-3T |
MIT
---
1: Os dados são fornecidos "no estado em que se encontram" e somente para fins informativos, não para fins comerciais ou de consultoria.