Bem-vindo ao Analises-B3, um projeto em Python para análise técnica e predição de preços de ações da B3 (Bolsa de Valores do Brasil) e criptomoedas. Este projeto é ideal para desenvolvedores iniciantes, como Douglas, que desejam aprender sobre análise de dados financeiros, machine learning e visualização de dados, utilizando ferramentas gratuitas. Ele pode ser usado em cenários de freelancing, como relatórios financeiros para clientes ou ferramentas de suporte à decisão para investidores.
O Analises-B3 tem como objetivo fornecer uma ferramenta para:
- Coletar Dados: Obter dados históricos de ações e criptomoedas usando APIs públicas (
yfinanceecryptocompare). - Análise Técnica: Calcular indicadores como Média Móvel Simples (SMA) e Índice de Força Relativa (RSI).
- Previsão de Preços: Utilizar modelos de machine learning (Regressão Linear e LSTM) para prever preços futuros.
- Gerenciamento de Risco: Gerar hipóteses de compra/venda com stop loss e take profit.
- Visualização: Plotar gráficos com preços e indicadores para análise visual.
Este projeto é educativo e prático, ideal para desenvolver habilidades em Python, análise de dados e machine learning, além de criar um portfólio atrativo para freelancing.
- Coleta de Dados: Obtém dados de ações (ex.: PETR4.SA, VALE3.SA) e criptomoedas (ex.: BTC, ETH).
- Análise Técnica: Calcula indicadores como SMA50 e RSI para avaliar tendências.
- Modelos de Previsão:
- Regressão Linear para prever preços com base em indicadores técnicos.
- Redes Neurais LSTM para previsão de séries temporais.
- Gerenciamento de Risco: Sugere ações de compra, venda ou manutenção com stop loss e take profit.
- Visualização: Gera gráficos com preços, indicadores e previsões.
- Integração com Google Drive: Armazena dados no Google Colab (pode ser adaptado para outras plataformas).
- Python: Linguagem principal.
- yfinance: Biblioteca para coleta de dados de ações.
- cryptocompare: API para dados de criptomoedas.
- ta: Biblioteca para análise técnica.
- pandas: Manipulação de dados.
- matplotlib: Visualização de gráficos.
- scikit-learn: Modelos de machine learning (Regressão Linear).
- keras: Redes neurais LSTM.
- numpy: Operações numéricas.
- Google Colab: Ambiente gratuito para execução do código (pode ser adaptado para VS Code ou WebStorm).
- Python 3.8+ (python.org).
- Conta no Google Colab (para executar no ambiente atual).
- Bibliotecas Python:
pip install yfinance cryptocompare ta pandas matplotlib scikit-learn numpy keras
- Git para versionamento.
- Conta no GitHub para hospedar o repositório.
-
Clone o Repositório:
git clone https://github.com/dev-queiroz/analises-b3.git cd analises-b3 -
Crie um Ambiente Virtual (recomendado):
python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
-
Instale as Dependências:
pip install -r requirements.txt
-
Execute o Projeto:
- No Google Colab, faça upload do arquivo
analises_b3.pye execute as células. - Localmente, rode:
python analises_b3.py
- No Google Colab, faça upload do arquivo
-
Coletar Dados:
- Edite a lista de
tickers_acoesetickers_criptosno arquivoanalises_b3.pypara incluir os ativos desejados. - Exemplo:
tickers_acoes = ['PETR4.SA', 'VALE3.SA'] tickers_criptos = ['BTC', 'ETH']
- Edite a lista de
-
Executar Análise Técnica:
- A função
analise_tecnicaadiciona indicadores SMA50 e RSI aos dados. - Exemplo de uso:
dados_acoes = coletar_dados_acoes(tickers_acoes) dados_acoes = analise_tecnica(dados_acoes)
- A função
-
Treinar e Prever com Modelos:
- Use
treinar_modelopara treinar modelos de Regressão Linear. - Use
treinar_modelo_lstmpara treinar modelos LSTM. - Exemplo de previsão com LSTM:
modelo_lstm, scaler = treinar_modelo_lstm(dados_acoes['PETR4.SA'], look_back=10) previsoes = prever_precos_lstm(modelo_lstm, scaler, dados_acoes['PETR4.SA'], look_back=10)
- Use
-
Gerar Hipóteses:
- A função
gerar_hipotesessugere ações de compra/venda com base em previsões e indicadores. - Exemplo de saída:
PETR4.SA: {'Ação': 'Comprar', 'Stop Loss': 35.50, 'Take Profit': 37.80}
- A função
-
Visualizar Resultados:
- A função
comparar_analisesplota gráficos com preços, SMA50 e linhas de tendência. - Gráficos LSTM são gerados automaticamente no final do script.
- A função
Abaixo está um exemplo de como usar o projeto para analisar a ação PETR4.SA:
from analises_b3 import coletar_dados_acoes, analise_tecnica, treinar_modelo, comparar_analises, gerar_hipoteses
# Coletar dados
tickers = ['PETR4.SA']
dados = coletar_dados_acoes(tickers)
# Aplicar análise técnica
dados = analise_tecnica(dados)
# Treinar modelo
modelos = treinar_modelo(dados)
# Gerar hipóteses
hipoteses = gerar_hipoteses(dados, modelos)
print(hipoteses)
# Visualizar resultados
comparar_analises(dados, modelos)Saída Esperada (exemplo):
PETR4.SA: {'Ação': 'Comprar', 'Stop Loss': 35.50, 'Take Profit': 37.80}
Gráficos com preços, SMA50 e linhas de tendência serão exibidos.
analises-b3/
├── analises_b3.py # Script principal com toda a lógica
├── requirements.txt # Lista de dependências
├── README.md # Este arquivo
└── data/ # (Opcional) Pasta para salvar dados exportados
Exemplo de como documentar uma função no analises_b3.py:
def coletar_dados_acoes(tickers):
"""
Coleta dados históricos de ações usando yfinance.
Args:
tickers (list): Lista de tickers das ações (ex.: ['PETR4.SA']).
Returns:
dict: Dicionário com DataFrames contendo dados das ações.
"""
dados_acoes = {}
for ticker in tickers:
dados = yf.download(ticker, period='6mo', interval='1d')
dados_acoes[ticker] = dados
return dados_acoesCrie um arquivo docs/guia_usuario.md para clientes não técnicos, explicando como interpretar os gráficos e hipóteses de investimento.
- yfinance: Documentação – Guia para coleta de dados financeiros.
- cryptocompare: API Docs – API gratuita para criptomoedas.
- FreeCodeCamp: Tutorial de Machine Learning – Introdução a ML em finanças.
- Stack Overflow: Comunidade para dúvidas técnicas.
- Python Discord: Suporte e networking para desenvolvedores.
- Kaggle: Datasets financeiros e tutoriais gratuitos.
Plano de aprendizado de 4 semanas:
- Semana 1: Entenda os indicadores técnicos (SMA, RSI) e experimente diferentes tickers. Leia a documentação do
yfinance. - Semana 2: Adicione novos indicadores (ex.: MACD, Bollinger Bands) usando a biblioteca
ta. Atualize o README. - Semana 3: Crie uma API REST com Flask para expor as análises como serviço (hospede gratuitamente na Render).
- Semana 4: Desenvolva um portfólio no GitHub Pages, destacando o Analises-B3 como um projeto para clientes financeiros.
Crie um relatório de exemplo com análises de ações populares (ex.: PETR4.SA) e publique no seu portfólio. Mostre como o projeto pode ajudar clientes a tomar decisões de investimento, destacando a clareza dos gráficos e hipóteses.
- Faça um fork do reposit