Sistema MLOps automatizado para ranking tático de ações da B3
O B3 Tactical Ranking é um pipeline MLOps completo na AWS que automatiza:
- 📊 Ingestão automática de cotações da B3 via BRAPI Pro (a cada 5 minutos)
- 🤖 Treinamento de modelos DeepAR no SageMaker para forecasting
- 🏆 Geração de rankings diários das melhores ações
- 📈 Monitoramento contínuo de qualidade e alertas inteligentes
⚠️ Aviso: Este é um projeto educacional. Não constitui recomendação de investimento.
# 1. Clone o projeto
git clone <repo-url>
cd b3-tactical-ranking
# 2. Configure suas credenciais
cp .env.example .env
# Edite .env com suas configurações
# 3. Deploy automático
./scripts/setup.sh
# 4. Configure token BRAPI
aws secretsmanager create-secret \
--name "brapi/pro/token" \
--secret-string '{"token":"SEU_TOKEN_BRAPI"}'
# 5. Teste o sistema
./scripts/test-system.shPronto! 🎉 Seu sistema está rodando automaticamente na AWS.
- ✅ AWS CLI configurado (
aws configure) - ✅ Node.js 18+ e AWS CDK (
npm i -g aws-cdk) - ✅ Python 3.11+
- ✅ Token BRAPI Pro (brapi.dev)
- ✅ Conta AWS (região us-east-1)
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ BRAPI Pro │───▶│ Lambda │───▶│ S3 │
│ (Cotações) │ │ (Ingestão) │ │ (Data Lake) │
└─────────────┘ └──────────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ EventBridge │───▶│ Lambda │───▶│ SageMaker │
│ (Scheduler) │ │ (Ranking) │ │ (DeepAR) │
└─────────────┘ └──────────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ CloudWatch │◀───│ Lambda │◀───│ SNS │
│(Monitoring) │ │ (Monitoring) │ │ (Alertas) │
└─────────────┘ └──────────────┘ └─────────────────┘
| Componente | Função | Frequência |
|---|---|---|
| Ingestão | Coleta cotações BRAPI | A cada 5min (pregão) |
| Bootstrap | Download histórico 10 anos | Uma vez |
| Ranking | Treina modelo + gera ranking | Diário 18:10 BRT |
| Monitor | Verifica qualidade dos dados | Contínuo |
| Alertas | Notifica problemas por email | Quando necessário |
s3://bucket/
├── 📁 raw/quotes_5m/ # Dados brutos BRAPI
├── 📁 curated/daily_monthly/ # Histórico organizado
├── 📁 training/deepar/ # Datasets ML
├── 📁 models/ # Modelos treinados
├── 📁 predictions/ # Previsões
├── 📁 recommendations/ # Rankings finais
└── 📁 monitoring/ # Relatórios qualidade
# Essenciais
AWS_REGION=us-east-1
BRAPI_SECRET_ID=brapi/pro/token
ALERT_EMAIL=your-email@example.com
# Modelo ML
B3TR_CONTEXT_LENGTH=60 # Janela histórica
B3TR_PREDICTION_LENGTH=20 # Horizonte previsão
B3TR_TOP_N=10 # Top N ranking
# Horários (UTC)
B3_OPEN_HOUR_UTC=13 # 10:00 BRT
B3_CLOSE_HOUR_UTC=20 # 17:00 BRTEdite config/universe.txt:
PETR4.SA
VALE3.SA
ITUB4.SA
BBDC4.SA
ABEV3.SA
| Documento | Descrição |
|---|---|
| 🏗️ Arquitetura | Visão técnica detalhada |
| 🚀 Deployment | Guia completo de deploy |
| 🔧 Troubleshooting | Solução de problemas |
- Métricas:
B3TR/IngestionOK,B3TR/ModelMAPE - Logs:
/aws/lambda/B3TacticalRankingStack-* - Alarmes: Falhas de ingestão, qualidade do modelo
# Status geral do sistema
./scripts/test-system.sh
# Logs em tempo real
aws logs tail "/aws/lambda/B3TacticalRankingStack-Quotes5mIngest*" --follow
# Verificar dados recentes
aws s3 ls s3://SEU-BUCKET/recommendations/ --recursive | tail -5| Script | Função |
|---|---|
./scripts/setup.sh |
Setup completo do projeto |
./scripts/test-system.sh |
Testa todas as funcionalidades |
./scripts/bootstrap_env.sh |
Extrai configs do CloudFormation |
{
"date": "2026-01-29",
"top_10": [
{"ticker": "PETR4.SA", "score": 0.85, "predicted_return": 0.12},
{"ticker": "VALE3.SA", "score": 0.78, "predicted_return": 0.09}
]
}# Deploy de mudanças
cd infra && cdk deploy
# Verificar status
./scripts/test-system.sh- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para detalhes.
- 📖 Documentação: docs/
- 🐛 Issues: GitHub Issues
- 🔧 Troubleshooting: docs/troubleshooting.md
Desenvolvido com ❤️ para a comunidade de investidores brasileiros