Projeto para usar a formula criada por Joel Greenblat no livro "The little book that beats the market" para analisar as acoes da Bovespa, que fique claro que de forma alguma é uma recomendação de compra ou de venda, apenas um projeto pra auxiliar a analise.
A ideia desse projeto é usar a formula do Joel Greenblat somado com algumas ideias propostas pelo Ramiro (Clube do Valor) para gerar uma planilha com as informações das ações mais baratas do indice IBRX100, outro proposito desse projeto é servir como um projeto para o meu portifolio como programador
$ magic_formula -V
MagicFormula v1.0.1
Para executar esse programa os seguintes requerimentos devem ser atendidos: Versão do Python
$ Python 3.6.5
As seguintes libs são utilizadas:
pandas==1.2.4
openpyxl==3.0.7
yahooquery
bs4==0.0.1
requests==2.25.1
numpy==1.20.2
pytest==6.2.4
pytest-cov==2.11.1
As libs estão todas listadas no requirements.txt e pode ser instalado usando o pip conforme abaixo:
Devem ser instaladas as dependencias usando os seguintes comandos abaixo:
Windows:
# criando o ambiente virtual
$ python -m venv venv
# Iniciando o ambiente virtual
$ .\venv\Scripts\activate.bat
# Instalando as dependencias
$ python -m pip install -r requirements.txt
Linux/Macos
# criando o ambiente virtual
$ python3 -m venv .venv
# Iniciando o ambiente virtual
$ source .venv/bin/activate
# Instalando as dependencias
$ python3 -m pip install -r requirements.txt
Usando o arquivo docker-compose.yml pode ser criada a imagem com o comando abaixo:
docker-compose build
Tambem pode ser instalado via pip com o seguinte comando abaixo:
python3 -m pip install git+https://github.com/marinellirubens/magic_formula#egg=magic_formula==1.0.1
Ou usando o setup.py
python3 setup.py install
Podem ser verificados os comandos de usando o argumento -h:
$ magic_formula -h
usage: magic_formula [-h] [-V] [-t THREADS] [-o OUTPUT_FOLDER] [-i INDEX [INDEX ...]] [-ll LOG_LEVEL] [-e EBIT] [-m MARKET_CAP] [-q QTY] [-d DATABASE]
Parses command.
optional arguments:
-h, --help show this help message and exit
-V, --version Show program version
-t THREADS, --threads THREADS
Max Number of threads
-o OUTPUT_FOLDER, --output_folder OUTPUT_FOLDER
Path for output folder
-i INDEX [INDEX ...], --index INDEX [INDEX ...]
Bovespa index (BRX100, IBOV, SMALL, IDIV)
-ll LOG_LEVEL, --log_level LOG_LEVEL
Log level
-e EBIT, --ebit EBIT Minimun ebit to be considered
-m MARKET_CAP, --market_cap MARKET_CAP
Minimun market cap
-q QTY, --qty QTY Quantity of stocks to be exported.
-d DATABASE, --database DATABASE
Send information to a database[POSTGRESQL].
O programa pode ser executado usando o seguinte comando
$ python3 magic_formula/magic_formula_main.py
Ou diretamente caso esteja instalado:
$ magic_formula
Ou pode ser executado com o Docker usando o comando abaixo:
$ docker-compose up -d
Esse comando ja esta contido nos arquivos run.sh(Linux e Macos) e run.cmd(Windows), pode ser observado abaixo o output do programa abaixo:
Como o objetivo desse programa é listar as ações por ordem de qual esta mais barata, um excel é exportado na pasta xlsx_files com o seguinte padrão de nome:
stocks_magic_formula_{yyyymmdd}.xlsx
Exemplo de arquivo: