WinBot MT5

Projeto de estudo em Python que opera mini-índice (WIN) no MetaTrader 5, com painel web local para monitorar e configurar.

Python MetaTrader 5 API REST local HTML CSS JavaScript YAML unittest Backtest

O problema

Queria testar estratégias de day trade com regras objetivas, sem decidir no impulso, e ver o que cada uma faz de verdade. Para isso precisava de um robô que seguisse as regras à risca e de um painel para acompanhar sem mexer no código.

Como eu fiz

  • Robô em Python conectado ao terminal MetaTrader 5 pela biblioteca oficial.
  • Estratégias em módulos independentes, cada um com identificador, agenda e limite de risco próprios, gerenciados por um supervisor.
  • Decisão só com candle fechado, para o backtest não olhar o futuro.
  • Gestão de risco: perda e ganho máximos por dia, número máximo de operações, pausa depois de perdas e stop sempre enviado junto com a ordem.
  • Três travas independentes antes de liberar conta real. O padrão é simulação.
  • Backtest com custo e slippage, mais análise de sensibilidade com 27 variações para evitar sobreajuste.
  • Painel web servido só em 127.0.0.1: dashboard com resultado, taxa de acerto, drawdown e curva; tela de configurações que valida o YAML, faz backup e grava de forma atômica.
  • Testes automatizados com unittest cobrindo estratégias, configuração, supervisor e interface.

Telas

Dashboard do WinBot com resultado, taxa de acerto, drawdown e curva Tela de módulos de estratégia do WinBot Tela de configurações do WinBot com validação do YAML

Telas com dados de conta demo.

O que aprendi

Backtest não é aprovação. Vários setups que pareciam bons no papel não tinham vantagem quando coloquei custo real. Aprendi a medir antes de confiar.