Uma ferramenta de análise técnica para identificar tendências de mercado e cruzamentos de médias móveis em ativos da B3.
Desenvolvido por Wellington M Santos
-
Análise Gráfica Interativa: Visualize o histórico de preços de um ativo juntamente com suas médias móveis de 50 e 200 períodos.
-
Detecção Automática de Cruzamentos: Identifica e sinaliza automaticamente os eventos de Golden Cross (potencial alta) e Death Cross (potencial baixa) no gráfico.
-
Métricas Essenciais: Acesso rápido ao último preço de fechamento e aos valores atuais das médias móveis para uma análise ágil.
-
Indicador de Tendência: Receba uma interpretação clara e direta da tendência atual do ativo (Alta, Baixa ou Neutra) com base na posição do preço em relação às médias.
-
Foco no Mercado Brasileiro: Utiliza um coletor para buscar dinamicamente os tickers que compõem o índice IBOVESPA da B3.
-
Rápido e Responsivo: Construído com Streamlit para uma experiência de usuário fluida e interativa.
TrendMA/
├── .streamlit/
│ └── config.toml
├── docs/
│ ├── b3_tickers.md
│ └── yahoo_finance_collector.md
├── assets/
│ └── screenshot.png
├── src/
│ ├── main.py
│ ├── b3_tickers.py
│ └── yahoo_finance_collector.py
├── pyproject.toml
└── README.md
src/: Diretório principal que contém todo o código-fonte da aplicação.main.py: Ponto de entrada da aplicação Streamlit, responsável pela UI e lógica de análise.b3_tickers.py: Módulo que coleta dinamicamente os tickers de ativos da B3.yahoo_finance_collector.py: Módulo que baixa dados históricos de mercado do Yahoo Finance.
docs/: Contém a documentação detalhada dos módulos do projeto.assets/: Armazena imagens e outros recursos visuais, como o screenshot da aplicação.pyproject.toml: Arquivo de configuração do projeto e gerenciamento de dependências parauv.
As dependências do projeto são gerenciadas através do pyproject.toml e podem ser instaladas com uv. As principais bibliotecas são:
streamlitpandas&numpyplotlyyfinancerequests
Siga os passos abaixo para configurar e executar o projeto localmente.
-
Clone o repositório:
git clone https://github.com/esscova/TrendMA.git cd TrendMA -
Instale o
uv(recomendado): Se você ainda não tem ouv, pode instalá-lo viapip:pip install uv
-
Crie o ambiente virtual e instale as dependências: O comando
uv synccria um ambiente virtual (se não existir) e instala todas as dependências listadas nopyproject.toml.uv sync
Alternativa com
pip: Se preferir não usaruv, você pode criar um ambiente virtual manualmente e instalar as dependências:python -m venv .venv source .venv/bin/activate # No Windows: .venv\Scripts\activate pip install streamlit pandas numpy plotly yfinance requests
Este projeto não requer chaves de API. Ele utiliza duas fontes de dados públicas:
- API da B3: Para obter a lista de tickers do IBOVESPA.
- Yahoo Finance: Para obter os dados históricos de preços dos ativos.
Atenção: o uso excessivo ou muito frequente pode levar a bloqueios temporários (rate limiting) por parte dos provedores de dados.
Com o ambiente configurado, inicie a aplicação com o seguinte comando:
streamlit run src/main.pyA aplicação será aberta automaticamente em seu navegador.
- Selecione um Ativo: Use o menu suspenso para escolher um ticker da B3.
- Inicie a Análise: Clique no botão "Analisar".
- Explore os Resultados: O gráfico interativo, as métricas e o indicador de tendência serão exibidos na tela.
O TrendMA é uma ferramenta versátil para diferentes perfis de investidores e entusiastas do mercado:
- Análise Rápida de Tendência: Verifique rapidamente a tendência de um ativo antes de uma decisão de compra ou venda, usando o indicador visual (Alta, Baixa, Neutra).
- Identificação de Pontos de Virada: Monitore ativos de interesse para identificar a formação de um Golden Cross ou Death Cross, que podem sinalizar mudanças significativas na tendência de longo prazo.
- Ferramenta de Estudo: Utilize o gráfico para entender visualmente como o preço de um ativo se comporta em relação às suas médias móveis de 50 e 200 períodos.
- Validação de Estratégias: Se você utiliza estratégias baseadas em médias móveis, o
TrendMAserve como uma forma rápida de validar sinais para múltiplos ativos.
- A análise é baseada exclusivamente em dois indicadores de análise técnica e não constitui recomendação financeira.
- A qualidade e disponibilidade dos dados dependem inteiramente dos serviços do Yahoo Finance.
- O endpoint da B3 para busca de tickers é público e pode sofrer alterações, o que impactaria a funcionalidade de seleção de ativos.
- Adicionar mais indicadores técnicos, como IFR, MACD e Bandas de Bollinger.
- Implementar um seletor de intervalo de datas para a análise histórica.
- Adicionar a funcionalidade de comparar múltiplos ativos no mesmo gráfico.
- Desenvolver um sistema de alerta por e-mail para cruzamentos de médias.
Contribuições são muito bem-vindas! Se você tem ideias para melhorar o projeto, por favor, siga estes passos:
- Faça um Fork do repositório.
- Crie uma nova Branch (
git checkout -b feature/minha-melhoria). - Faça o Commit de suas alterações (
git commit -m 'Adiciona nova feature incrível'). - Faça o Push para a Branch (
git push origin feature/minha-melhoria). - Abra um Pull Request.
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.
Wellington M Santos - LinkedIn
