Projeto desenvolvido como parte do Stock Market Analytics Zoomcamp (2025). O objetivo é aplicar técnicas de engenharia de dados, análise financeira e machine learning para criar um pipeline reprodutível que vai desde a ingestão de dados de mercado até a simulação de estratégias de trading com automação. Este projeto é estritamente educacional e não constitui recomendação de investimento.
- Contextualização do Projeto
- Objetivos
- Arquitetura do Pipeline
- Desenvolvimento e Entregáveis
- Estrutura do Repositório
- Configuração e Instalação
- Execução (Makefile & CLI)
- Métricas e Resultados
- Projeto Contempla
- Boas Práticas
- Contribuição
- Bibliografia e Referências
- Conclusão
O mercado financeiro é repleto de dados complexos e dinâmicos: preços de ações, indicadores macroeconômicos, balanços corporativos e notícias em tempo real. Transformar esses dados em insights requer um pipeline robusto que combine:
- Engenharia de Dados para ingestão e tratamento.
- Machine Learning para previsão de tendências e classificação de sinais.
- Simulação de Estratégias para avaliar performance sob custos e riscos reais.
- Automação para rodar processos diariamente em escala. Este projeto implementa exatamente esse ciclo, usando Python, bibliotecas open-source, boas práticas de MLOps e ferramentas modernas de automação.
- Construir um pipeline reprodutível, modular e automatizado para análise de ações.
- Coletar dados de múltiplas fontes (Yahoo Finance, Stooq, Tiingo).
- Extrair e gerar features relevantes (retornos, volatilidade, indicadores técnicos, calendário).
- Treinar múltiplos modelos de ML para prever retornos/direções.
- Simular estratégias (long-only, long-short, stop-loss/take-profit, top-k).
- Comparar resultados com benchmarks (SPY, ACWI, equal-weight).
- Automatizar execução com Docker, Cron, CI/CD e integrações externas (broker API, Telegram).
O fluxo segue 7 camadas principais:
-
Ingestão de Dados
- Coleta incremental via yfinance, Stooq e Tiingo.
- Armazenamento em Parquet (análises locais) e SQLite (persistência).
-
Feature Engineering
- Retornos (1d, 5d, 21d), volatilidade, indicadores técnicos (RSI, MACD, Bollinger).
- 36+ features documentadas em reports/features_catalog.md.
-
Modelagem
- DecisionTree, RandomForest (com tuning).
- Regras custom por probabilidade.
- Novos modelos: XGBoost com calibração.
-
Sinais de Trading
- Conversão de previsões em sinais (+1 long, -1 short, 0 flat).
- Estratégias: long-only, long-short, top-k, probabilidade.
-
Backtesting
- Vetorial: simulações rápidas.
- Exata (iterativa): reinvestimento, SL/TP, gestão de risco.
- Métricas: CAGR, Sharpe, Sortino, Drawdown, Rolling returns.
-
Relatórios & Métricas
- reports/backtest_results.md + gráficos de equity curve e drawdown.
-
Automação & Deploy
- src/app/run_all.py: pipeline fim-a-fim.
- Docker/Compose para empacotamento.
- GitHub Actions com agendamento diário.
- Notificações via e-mail e Telegram.
- Broker API (Alpaca, paper trading).
1️⃣ Ingestão de Dados
- Scripts: src/data/ingest.py, src/data/alt_provider.py.
- Fontes: Yahoo Finance, Stooq, Tiingo.
- Incremental, com persistência em Parquet + SQLite.
2️⃣ Feature Engineering
- Scripts: src/features/build_features.py.
- Features: retornos, volatilidade, indicadores técnicos, calendário, interações.
- Catálogo: reports/features_catalog.md.
3️⃣Modelagem
- Modelos básicos: DecisionTree, RandomForest.
- Tuning: GridSearchCV, RandomizedSearchCV.
- Novo modelo: XGBoost.
- Scripts: scripts/train_trees.py, scripts/train_xgb.py.
4️⃣ Estratégias & Sinais
- Script: src/strategy/generate_signals.py.
- Estratégias suportadas:
- Long-only (prob threshold).
- Long-short (top-bottom).
- Probabilidade calibrada.
- Top-k seleções.
5️⃣ Backtest
Scripts:
- src/backtest/vector_backtester.py
- src/backtest/exact_simulator.py
- Métricas: CAGR, Sharpe, Sortino, Drawdown, Volatilidade, WinRate, Turnover.
- Relatórios: reports/backtest_results.md.
6️⃣ Automação & Deployment
- Pipeline: src/app/run_all.py.
- Dockerfile e docker-compose.yml.
- Cron jobs (ops/cron.example).
- CI/CD com .github/workflows/run_pipeline.yml.
- Integrações: broker API (Alpaca), Telegram bot.
stocks-analytics-2025/
├── data/ # Dados (não versionados no Git)
├── models/ # Modelos salvos
├── notebooks/ # Prototipagem
├── reports/ # Relatórios (EDA, modelagem, backtests)
├── src/ # Código principal
│ ├── data/ # Ingestão
│ ├── features/ # Feature engineering
│ ├── models/ # Treinamento
│ ├── strategy/ # Geração de sinais
│ ├── backtest/ # Simulação
│ ├── app/ # Pipelines
│ ├── notify/ # Notificações
│ ├── brokers/ # Integrações externas
│ └── utils/ # Funções auxiliares
├── tests/ # Testes unitários (pytest)
├── scripts/ # Executáveis de treino/modelos
├── .github/workflows/ # CI/CD
├── docker/ # Dockerfile
├── ops/ # Automação
├── requirements.txt
├── pyproject.toml
├── docker-compose.yml
├── Makefile
└── README.md
- GitHub Actions já configurado (.github/workflows/run_pipeline.yml).
- Pode ser estendido para AWS (ECS + S3) ou GCP (Cloud Run + BigQuery).
-
Modelos:
- MAE, MAPE (regressão).
- Accuracy, F1, AUC (classificação).
-
Backtest:
- CAGR, Sharpe, Sortino.
- Max Drawdown, Volatilidade, WinRate.
- Comparação com benchmark (SPY, ACWI).
- Modelagem: DT, RF, XGBoost; tuning; regras custom.
- EDA & Features: dataset unificado, 36+ features, correlações.
- Fontes: YF + Stooq/Tiingo; dataset >1M linhas.
- Problema: README claro, novas definições (long-short, SL/TP, crypto).
- Simulação: vetorial + exata, reinvestimento, comparativos vs benchmark.
- Automação: Docker, cron, CI/CD, incremental storage.
- Extras: broker API, Telegram bot, modularidade.
- Black + Ruff (lint).
- Testes unitários (pytest).
- Pre-commit hooks.
- CI/CD com GitHub Actions.
- Segredos em .env.
- Documentação modular (README, reports, notebooks).
Consulte CONTRIBUTING.md.
- The Man Who Solved the Market – Gregory Zuckerman
- Unknown Market Wizards – Jack Schwager
- The Tao of Trading – Simon Ree
- PythonInvest Blog & Workshops
- Simply Wall St Insights
- CNBC Investing, FT Unhedged
- Yahoo Finance, Tiingo, Stooq
Este projeto cobre todos os critérios da avaliação do Stock Market Analytics Zoomcamp (2025):
-
Ingestão → ✅
-
Features → ✅
-
Modelagem → ✅
-
Estratégias & Backtest → ✅
-
Automação & Deployment → ✅
-
Reprodutibilidade & Documentação → ✅
Demonstra como aplicar Data Engineering + Machine Learning + Finance de forma reprodutível, modular e extensível para análise de mercados financeiros.