rapina

package module
v0.10.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 25, 2020 License: MIT Imports: 17 Imported by: 0

README

𝚛𝚊𝚙𝚒𝚗𝚊

Download e processamento de dados1 financeiros de empresas brasileiras diretamente da CVM.

GitHub release Travis License

1. Instalação

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.

2. Uso

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.

3. Detalhe dos Comandos

3.1. get

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.

3.1.1 Opção
  -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.

3.2. list

Listagens

./rapina list
3.2.1 Lista todas as empresas disponíveis
  -e, --empresas               Lista todas as empresas disponíveis
3.2.2 Lista as empresas do mesmo setor
  -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.

3.2.3 Lista todas as empresas disponíveis
  -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

3.3. report

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.

3.3.1. Opções
  -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.

3.3.2. Exemplos
./rapina report WEG

A planilha será salva em ./reports

./rapina report "TEC TOY" -s -d /tmp/output

A planilha será salva em /tmp/output

4. Como compilar

Se quiser compilar seu próprio executável, primeiro baixe e instale o compilador Go (v1.13 ou maior). Depois execute estes passos:

  1. git clone github.com/dude333/rapina
  2. Change to the cli directory (cd rapina/cli)
  3. Compile using the Makefile (make). To cross compile for Windows on Linux, use make win.

5. Contribua

  1. Faça um fork deste projeto no github.com
  2. git clone https://github.com/your_username/rapina && cd rapina
  3. git checkout -b my-new-feature
  4. Faça as modificações
  5. git add .
  6. git commit -m 'Add some feature'
  7. git push origin my-new-feature
  8. Crie um pull request

6. Screenshot

WEG

7. Screencasts

7.1 rapina get

asciicast

7.2 rapina list

asciicast

7.3 rapina report

asciicast

8. License

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.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrFileNotFound error
	ErrFileNotFound = errors.New("file not found")
	// ErrItemNotFound for string not found on []string
	ErrItemNotFound = errors.New("item not found")
)

Functions

func FetchCVM

func FetchCVM() (err error)

FetchCVM fetches all statements from a range of years

func FetchSectors added in v0.8.1

func FetchSectors(yamlFile string) (err error)

FetchSectors checks if the configuration file is already populated. If 'force' is set or if the config is empty, it retrieves data from B3, unzip and extract a spreadsheet containing a list of companies divided by sector, subsector, and segment; then this info is set into the config file.

func ListCompanies

func ListCompanies() (err error)

ListCompanies a company from DB to Excel

func ListCompaniesProfits added in v0.9.0

func ListCompaniesProfits(rate float32) (err error)

ListCompaniesProfits lists companies profits

func ListSector added in v0.8.1

func ListSector(company, yamlFile string) (err error)

ListSector shows all companies from the same sector as 'company'

func Report

func Report(company string, path, yamlFile string) (err error)

Report a company from DB to Excel

func SelectCompany

func SelectCompany(company string, scriptMode bool) string

SelectCompany returns the company name compared to the names stored in the DB

func Unzip

func Unzip(src string, dest string) ([]string, error)

Unzip will decompress a zip archive, moving all files and folders within the zip file (parameter 1) to an output directory (parameter 2). Source: https://golangcode.com/unzip-files-in-go/

Types

This section is empty.

Directories

Path Synopsis
cli
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL