https://github.com/nathadriele/stocks-analytics-2025
O projeto Stocks Analytics 2025 desenvolve um pipeline completo para análise de ações, desde a ingestão de dados financeiros até a simulação de estratégias de trading automatizadas. Utiliza técnicas de engenharia de dados, feature engineering e machine learning para prever retornos e direções de mercado.
https://github.com/nathadriele/stocks-analytics-2025
automacao backtesting benchmark docker engenharia-de-dados feature-engineering financeiro machine-learning pipeline python reprodutibilidade stock-market-analysis trading yfinance zoomcamp
Last synced: 28 days ago
JSON representation
O projeto Stocks Analytics 2025 desenvolve um pipeline completo para análise de ações, desde a ingestão de dados financeiros até a simulação de estratégias de trading automatizadas. Utiliza técnicas de engenharia de dados, feature engineering e machine learning para prever retornos e direções de mercado.
- Host: GitHub
- URL: https://github.com/nathadriele/stocks-analytics-2025
- Owner: nathadriele
- Created: 2025-08-19T18:09:52.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-08-28T02:22:00.000Z (about 2 months ago)
- Last Synced: 2025-08-28T04:58:29.806Z (about 2 months ago)
- Topics: automacao, backtesting, benchmark, docker, engenharia-de-dados, feature-engineering, financeiro, machine-learning, pipeline, python, reprodutibilidade, stock-market-analysis, trading, yfinance, zoomcamp
- Language: Python
- Homepage:
- Size: 1.74 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Stocks Analytics 2025
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.
## Sumário
1. [Contextualização do Projeto](#contextualização-do-projeto)
2. [Objetivos](#objetivos)
3. [Arquitetura do Pipeline](#arquitetura-do-pipeline)
4. [Desenvolvimento e Entregáveis](#desenvolvimento-e-entregáveis)
- [Ingestão de Dados](#1-ingestão-de-dados)
- [Feature Engineering](#2-feature-engineering)
- [Modelagem](#3-modelagem)
- [Estratégias & Sinais](#4-estratégias--sinais)
- [Backtest](#5-backtest)
- [Automação & Deployment](#6-automação--deployment)
5. [Estrutura do Repositório](estrutura-do-repositório)
6. [Configuração e Instalação](#configuração-e-instalação)
- [Ambiente Virtual](#ambiente-virtual)
- [Docker](#docker)
- [Cron Jobs](#cron-jobs)
- [Cloud Deployment](#cloud-deployment)
7. [Execução (Makefile & CLI)](#execução)
8. [Métricas e Resultados](#métricas-e-resultados)
9. [Projeto Contempla](#projeto-contempla)
10. [Boas Práticas](#boas-práticas)
11. [Contribuição](#contribuição)
12. [Bibliografia e Referências](#bibliografia-e-referências)
13. [Conclusão](#conclusão)## Contextualização do Projeto
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.## Objetivos
- 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).## Arquitetura do Pipeline
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).## Desenvolvimento e Entregáveis
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.## Estrutura do Repositório
```
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
```## Configuração e Instalação
### Ambiente Virtual
### Docker
### Cron Jobs
## Cloud Deployment
- GitHub Actions já configurado (.github/workflows/run_pipeline.yml).
- Pode ser estendido para AWS (ECS + S3) ou GCP (Cloud Run + BigQuery).## Execução
## Métricas e Resultados
- Modelos:
- MAE, MAPE (regressão).
- Accuracy, F1, AUC (classificação).- Backtest:
- CAGR, Sharpe, Sortino.
- Max Drawdown, Volatilidade, WinRate.
- Comparação com benchmark (SPY, ACWI).
## Projeto Contempla
- 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.## Boas Práticas
- Black + Ruff (lint).
- Testes unitários (pytest).
- Pre-commit hooks.
- CI/CD com GitHub Actions.
- Segredos em .env.
- Documentação modular (README, reports, notebooks).## Contribuição
Consulte CONTRIBUTING.md.
## Bibliografia e Referências
- 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## Conclusão
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.