🚀 Plataforma interativa para análise técnica e previsão de preços dos principais ativos da B3 (Bolsa de Valores brasileira)
Uma aplicação web desenvolvida com Streamlit que oferece análise técnica avançada, visualizações interativas e modelos preditivos para as ações mais negociadas do Ibovespa.
Em breve: GIF animado mostrando a aplicação em funcionamento
- Coleta Automática: Dados históricos via yfinance com sistema de cache inteligente
- Top 10 Ativos: Foco nos ativos de maior volume do Ibovespa
- Período Configurável: Análise de 1 mês a 5 anos de histórico
- Tratamento de Dados: Limpeza automática e interpolação de valores faltantes
- Gráficos de Linha: Evolução temporal dos preços
- Candlestick: Análise OHLC (Abertura, Máxima, Mínima, Fechamento)
- Volume: Visualização do volume de negociação
- Comparação: Análise comparativa entre múltiplos ativos
- Temas: Suporte a modo claro e escuro
- Prophet: Modelo de séries temporais do Facebook
- ARIMA: Modelo AutoRegressivo Integrado de Médias Móveis
- Intervalos de Confiança: Bandas de previsão para análise de risco
- Previsões Configuráveis: 7 a 90 dias úteis
- Controles Laterais: Seleção fácil de ativos, períodos e modelos
- Métricas em Tempo Real: Preço atual, variação, máximas e mínimas
- Export de Dados: Download de previsões em CSV
- Design Responsivo: Otimizado para desktop e mobile
- Python 3.9+: Linguagem principal
- Pandas: Manipulação e análise de dados
- NumPy: Computação numérica
- Prophet: Previsão de séries temporais
- Statsmodels: Modelos estatísticos (ARIMA)
- yfinance: Coleta de dados financeiros
- Streamlit: Framework web interativo
- Plotly: Gráficos interativos avançados
- Matplotlib/Seaborn: Visualizações complementares
- Docker: Containerização
- Docker Compose: Orquestração de serviços
- PyArrow/Parquet: Cache otimizado de dados
- GitHub Actions: CI/CD
- Python 3.9 ou superior
- Docker (opcional)
- Git
# Clone o repositório
git clone https://github.com/Icarolordes-dev/topten-b3.git
cd topten-b3
# Execute com Docker Compose
docker-compose up --build
# Acesse a aplicação
# http://localhost:8501# Clone o repositório
git clone https://github.com/Icarolordes-dev/topten-b3.git
cd topten-b3
# Crie um ambiente virtual
python -m venv venv
# Ative o ambiente virtual
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
# Instale as dependências
pip install -r requirements.txt
# Execute a aplicação
streamlit run src/app.py
# Acesse a aplicação
# http://localhost:8501# Cache personalizado
export CACHE_DIR="./custom_cache"
# Timeout para APIs
export YFINANCE_TIMEOUT=60
# Número máximo de tentativas
export MAX_RETRIES=5topten-b3/
├── src/ # Código fonte
│ ├── app.py # Interface Streamlit principal
│ ├── config.py # Configurações da aplicação
│ ├── data_loader.py # Coleta e cache de dados
│ ├── predictor.py # Modelos preditivos
│ └── visualizer.py # Visualizações interativas
├── .github/ # Configurações GitHub
│ ├── ISSUE_TEMPLATE/ # Templates de issues
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ └── workflows/ # CI/CD workflows
│ └── ci.yml
├── cache/ # Cache de dados (criado automaticamente)
├── tests/ # Testes (a implementar)
├── docker-compose.yml # Orquestração Docker
├── Dockerfile # Imagem Docker
├── requirements.txt # Dependências Python
├── .gitignore # Arquivos ignorados pelo Git
├── LICENSE # Licença MIT
└── README.md # Este arquivo
A aplicação foca nos 10 principais ativos do Ibovespa por volume:
- VALE3 - Vale S.A.
- PETR4 - Petrobras
- ITUB4 - Itaú Unibanco
- BBDC4 - Bradesco
- ABEV3 - Ambev
- MGLU3 - Magazine Luiza
- WEGE3 - WEG
- RENT3 - Localiza
- LREN3 - Lojas Renner
- GGBR4 - Gerdau
Lista configurável em src/config.py
O sistema utiliza cache em formato Parquet para otimizar o carregamento:
# src/config.py
CACHE_DIR = "cache"
CACHE_FORMAT = "parquet"Configure parâmetros dos modelos:
# Prophet
prophet_params = {
'changepoint_prior_scale': 0.05,
'seasonality_mode': 'multiplicative',
'weekly_seasonality': True
}
# ARIMA - ordem determinada automaticamente
arima_order = (1, 1, 1) # (p, d, q)Contribuições são muito bem-vindas! Veja como você pode ajudar:
- Use o template de bug report
- Inclua informações detalhadas sobre o ambiente
- Adicione screenshots se possível
- Use o template de feature request
- Descreva claramente o problema que a feature resolve
- Considere implementar a feature você mesmo
- Fork o repositório
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
# Instalar dependências de desenvolvimento
pip install pytest flake8 black isort
# Executar linter
flake8 src/
# Verificar formatação
black --check src/
# Executar testes
pytest tests/- 📊 Indicadores técnicos (RSI, MACD, Bollinger Bands)
- 🔔 Sistema de alertas por email/webhook
- 📱 Versão mobile otimizada
- 🌐 API REST para integração
- 📋 Relatórios em PDF
- 🧠 Modelos de ML mais avançados (LSTM, XGBoost)
- 💹 Análise de carteiras
- 📊 Dashboard executivo
- Testes automatizados completos
- Documentação da API
- Monitoramento e observabilidade
- Otimização de performance
- Suporte a múltiplas exchanges
IMPORTANTE: Esta aplicação é apenas para fins educacionais e informativos. Não constitui aconselhamento financeiro ou recomendação de investimento. Sempre consulte um profissional qualificado antes de tomar decisões de investimento.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Icaro Lordes
- GitHub: @Icarolordes-dev
- LinkedIn: Seu LinkedIn
- Streamlit - Framework web incrível
- yfinance - Dados financeiros gratuitos
- Prophet - Previsão de séries temporais
- Plotly - Visualizações interativas
- Comunidade Python - Por todas as bibliotecas fantásticas
📈 Desenvolvido com ❤️ para a comunidade de investidores brasileiros