Projeto em Python para monitoramento e execução automatizada de ordens no MetaTrader 5, com controle de margem, logs, export para Excel e regras de gestão configuráveis.
⚠️ Aviso importante: este projeto é educacional. Não é recomendação de investimento. Operar no mercado financeiro envolve risco e pode gerar perdas.
git clone https://github.com/flavioro/daytrade-bot-python.git
cd daytrade-bot-python
pip install -r requirements_ci.txt
python -m src.daytrade_bot.mainObs.: você precisa ter o MetaTrader 5 instalado e configurado na sua máquina para a integração funcionar.
Automatizar a abertura e gerenciamento de posições com base em regras e sinais, incluindo:
- monitoramento contínuo
- controle de margem livre
- hedge / balanceamento
- logs detalhados
- export para Excel (auditoria)
- Conexão com MetaTrader 5 (MT5)
- Execução de ordens BUY/SELL com regras configuráveis
- Controle de margem livre + alertas de equity
- Reconexão automática em caso de falha
- Logs e rastreabilidade do processo
- Export automático para Excel
- Arquitetura modular (serviços separados por responsabilidade)
- Configurações isoladas em arquivos JSON
Este projeto foi construído para demonstrar, na prática, competências comuns em backend e automação:
- Integração com API externa (MetaTrader5) e execução de ações idempotentes
- Arquitetura modular por responsabilidades (services / managers)
- Observabilidade: logs estruturados + rastreabilidade do loop
- Resiliência: reconexão automática em falhas de comunicação
- Persistência e auditoria: export periódico para Excel (openpyxl)
- Processamento de dados com Pandas + indicadores técnicos (pandas-ta-classic)
- Boas práticas de configuração: arquivos
.sample.json+.local.json(não versionados)
🎯 Objetivo do projeto: Daytrade Bot — Automação de Ordens com Python + MetaTrader 5
Python • MetaTrader5 • Pandas • pandas-ta-classic • Automação • Gestão de risco (conceitos) • Logs • Data Processing • Export Excel
daytrade_bot/
├── run.py
├── requirements.txt
├── .gitignore
├── config/
│ ├── config_buy.sample.json
│ ├── hedge_state_buy.sample.json
│ ├── account_demo_buy.sample.json
│ ├── account_demo_sell.sample.json
│ ├── account_real_buy.sample.json
│ └── account_real_sell.sample.json
├── scripts/
│ └── run_windows.sample.bat
├── src/
│ └── daytrade_bot/
│ ├── main_manager_fm_buy_sell.py
│ ├── mt5_order.py
│ └── ...
└── tests/
└── ...Antes de rodar em conta real, rode o bot em DEMO para validar:
- conexão com MT5
- símbolo e permissões
- parâmetros (TP/SL/volume)
- intervalos e regras
- export de Excel
- estabilidade do loop
git clone <URL_DO_SEU_REPO>
cd daytrade_botpython -m venv venv
venv\Scripts\activatepip install -r requirements.txt📌 Dependências principais (resumo):
MetaTrader5(integração com MT5)pandas(tratamento de dados)pandas-ta-classic(indicadores técnicos)openpyxl(export para Excel)
Nota:
pandas-tapassou a exigir Python >= 3.12. Para manter compatibilidade no Linux/CI com Python 3.11, este projeto usapandas-ta-classic.
- Instale o terminal MT5 no Windows
- Faça login na sua corretora (DEMO primeiro)
Copie os arquivos sample e crie os arquivos locais (não versionados):
config/config_buy.local.jsonconfig/hedge_state_buy.local.jsonconfig/account_demo_buy.local.json
Os arquivos
.local.jsonestão no.gitignoree não sobem para o GitHub.
python run.pySaídas geradas (outputs):
- Logs em
logs/(ex.:XAUUSD_BUY_manager_positions_hedge_YYYYMMDD.log) - Excel em
results/(ex.:demo_monitor_positions_XAUUSD_BUY_YYYY-MM-DD.xlsx)
Por padrão, o
run.pyexecuta o modo BUY.
pytestEvidências reais de execução do bot: prints, logs e exemplo de arquivo Excel gerado.
O bot gera planilhas para auditoria/monitoramento em results/ (ex.: results/demo_monitor_positions_<SYMBOL>_<BUY|SELL>_<DATA>.xlsx).
13:24:05 [INFO] Sinal para trend é: UP, True == UP
13:24:05 [INFO] Posições: 1 (B: 1, S: 0) | Lucro Total: -0.42 | Equity: 1013.58 | Margem Livre: 97.53%
13:25:05 [INFO] Sinal para trend é: UP, True == UP
13:25:05 [INFO] Posições: 1 (B: 1, S: 0) | Lucro Total: 0.98 | Equity: 1014.98 | Margem Livre: 97.53%
13:25:05 [INFO] Salvando dados no arquivo Excel: results/demo_monitor_positions_XAUUSD_BUY_2026-02-13.xlsx
13:26:05 [INFO] Sinal para trend é: UP, True == UP
13:26:05 [INFO] Posições: 1 (B: 1, S: 0) | Lucro Total: 6.07 | Equity: 1020.07 | Margem Livre: 97.55%
13:27:05 [INFO] Sinal para trend é: UP, True == UP
13:27:05 [INFO] Posições: 0 (B: 0, S: 0) | Lucro Total: 0.00 | Equity: 1027.98 | Margem Livre: 100.00%
13:27:05 [INFO] Salvando dados no arquivo Excel: results/demo_monitor_positions_XAUUSD_BUY_2026-02-13.xlsx
13:28:05 [INFO] Sinal para trend é: UP, True == UP
13:28:05 [INFO] Posições: 0 (B: 0, S: 0) | Lucro Total: 0.00 | Equity: 1027.98 | Margem Livre: 100.00%Flavio Rodrigues
LinkedIn: https://www.linkedin.com/in/flaviorobertorodrigues/
GitHub: https://github.com/flavioro

