Programadores de MetaTrader 5 costumam perder tempo digitando notas manuais para cada operação. Na prática, isso atrasa a análise posterior e abre brecha para erros de registro. O objetivo aqui é mostrar, passo a passo, como inserir comentários automáticos nas ordens – algo que pode ser feito em menos de 30 linhas de código e que já salva horas de trabalho em um mês de negociação.
Por que o comentário automático importa?
- Rastreabilidade: Cada ordem carrega o motivo da entrada, a estratégia e parâmetros críticos.
- Filtragem rápida: No histórico, basta buscar por palavras‑chave para isolar trades de teste A/B.
- Redução de ruído humano: Evita digitações equivocadas que confundem auditorias.
Estrutura mínima do script
O núcleo gira em torno da função OrderSend(). O quinto parâmetro aceita a string de comentário. Basta montar essa string antes da chamada:
string BuildComment(string strategy, double lot, double sl, double tp) { return StringFormat("%s|L:%.2f|SL:%.5f|TP:%.5f", strategy, lot, sl, tp); } Em seguida, ao abrir a posição:
string comment = BuildComment("Breakout", 0.10, 1.23456, 1.24567); int ticket = OrderSend(Symbol(), OP_BUY, 0.10, Ask, 3, Ask-StopLoss*Point, Ask+TakeProfit*Point, comment, 0, 0, clrGreen); Organizando os campos
- Estratégia: Identificador curto (máx. 12 caracteres) para evitar truncamento.
- Lote: Formatação fixa facilita buscas numéricas.
- SL/TP: Use ponto decimal padrão da corretora para evitar ambiguidades.
Exemplo real de uso
Um trader que opera 5 estratégias simultâneas pode distinguir rapidamente os resultados ao filtrar por “Scalper” ou “Swing”. No relatório de histórico, basta procurar Scalper|L: e o MetaEditor lista todas as ordens relevantes.
Limitações e armadilhas
- O campo de comentário aceita até 31 caracteres no MT5. Exceder truncará o texto sem aviso.
- Strings muito longas podem causar falha na
OrderSend()se o broker impõe limites de memória. - Se o código for usado em múltiplas contas, garanta que o identificador da estratégia seja único por conta, caso contrário a filtragem cruzada gera ruído.
FAQ rápido
- Posso incluir a data? Sim, mas prefira
TimeCurrent()e formate comoYYYYMMDDpara manter o tamanho. - E se eu precisar mudar o formato? Atualize a função
BuildComment()– o resto do código permanece intacto. - É seguro usar
StringFormat()? Totalmente; ela evita concatenações manuais propensas a erros.
Com a lógica acima, seu robô já registra o “porquê” de cada trade. O próximo passo é criar um script de exportação que leia esses comentários e gere um CSV pronto para análise. Se quiser aprofundar, veja um guia avançado de logging em MQL5 que cobre integração com bases de dados externas.
Primeiros passos após a compra
1. Baixe o pacote AutoComment.mqh e extraia na pasta Include do seu MetaEditor.
2. Abra o Expert Advisor (EA) que receberá os comentários e inclua a linha:
#include 3. Compile. Qualquer erro de caminho indica que o arquivo não está no diretório correto – corrija antes de prosseguir.
Configuração inicial
Dentro do EA, adicione a chamada ao método InitComments() no OnInit():
int OnInit() { if(!AutoComment::InitComments()) { Print("Falha ao iniciar AutoComment"); return(INIT_FAILED); } // demais inicializações return(INIT_SUCCEEDED); }Esse método cria o arquivo comments.txt na pasta Files e prepara o buffer de escrita.
Rotina recomendada – fluxo de trabalho diário
| Etapa | Ação | Tempo estimado |
|---|---|---|
| 1 | Verificar a presença do comments.txt no diretório Files | 1 min |
| 2 | Executar o EA em modo teste (Strategy Tester) para validar o formato dos comentários | 5‑10 min |
| 3 | Ativar a gravação automática via AutoComment::Write(order_ticket, "Abertura") nas funções OnTrade() ou OnTick() | 2 min |
| 4 | Revisar o log de comentários ao final do dia | 3 min |
Checklist operacional – evitar erros comuns
- Path correto: use
FileOpen("comments.txt",FILE_WRITE|FILE_TXT|FILE_ANSI)apenas dentro da classe. - Sincronização: chame
AutoComment::Flush()antes de fechar o EA para garantir que o buffer seja gravado. - Formato padrão:
Ticket|Hora|Tipo|Preço|SL|TP|Comentário. Qualquer desvio quebra a leitura posterior. - Limite de linhas: o módulo limpa automaticamente as linhas mais antigas quando ultrapassa 10 000 registros.
Ferramentas complementares para produtividade
Para transformar o comments.txt em relatórios visuais, integre-o ao MQL5 File Library e ao Excel via Power Query. O fluxo fica assim:
- EA grava comentários.
- Script
ExportComments.mq5roda a cada 30 min, exportando o arquivo para.csv. - Planilha Excel atualiza automaticamente, exibindo métricas de win‑rate, tempo médio de operação e lucro por ticket.
Mini‑dashboard textual – indicadores de progresso
Inclua no seu log de terminal a linha resumida ao final de cada dia:
--- RESUMO DIÁRIO --- Ordens abertas: 12 | Fechadas: 10 | Lucro total: +$452,30 | Erros de gravação: 0Se o contador de erros subir, revise a chamada AutoComment::Write() nas seções de tratamento de exceções.
⚠️ Dica prática: nunca misture
Print()eFileWrite()na mesma thread sem sincronização – isso pode gerar perda de dados nos comentários.
Perfil ideal e limitações práticas
Quem desenvolve robôs ou scripts MQL5 que exigem rastreamento detalhado de execuções – especialmente gestores de fundos, traders algorítmicos e consultores que operam múltiplas estratégias simultâneas – encontrará aqui um ganho imediato.
Profissionais que operam apenas ‘por fora’, usando a interface padrão do MetaTrader 5 sem necessidade de auditoria interna, não tirarão proveito significativo.
Quem deve considerar usar
- Desenvolvedores de Expert Advisors que precisam registrar o “porquê” de cada ordem.
- Gestores que entregam relatórios de performance a investidores.
- Operadores que monitoram respostas automáticas a eventos de mercado (ex.: stop‑loss, take‑profit).
Quem provavelmente não vai aproveitar
- Traders manuais que enviam ordens esporádicas.
- Usuários que buscam “plug‑and‑play” sem customização de texto.
- Quem utiliza apenas gráficos e indicadores sem fluxo de ordem.
Principais limitações contextuais
- O script depende de
Comment()no timeframe atual; se o gráfico mudar de símbolo, os comentários desaparecem. - Limite de 255 caracteres por comentário; textos longos serão truncados.
- Não substitui auditoria externa – apenas complementa logs internos.
- Em contas com alta frequência (mais de 100 ordens/segundo) pode gerar atrasos perceptíveis na UI.
FAQ rápido
| Pergunta | Resposta |
|---|---|
| Posso usar em contas demo? | Sim, o mesmo código funciona, mas a relevância diminui sem cobertura regulatória. |
| Funciona em MT4? | Não. A sintaxe MQL5 diverge; seria necessário reescrever. |
| É seguro para VPs? | O comentário não afeta execução; risco está na lógica de decisão, não no texto. |
Checklist de compatibilidade
- MetaTrader 5 v. 5.00 ou superior.
- Permissão de escrita em logs (não bloqueada por política de corretora).
- Estrutura de código já modularizada (para inserir funções de comentário).
- Teste em ambiente de simulação antes de migrar ao vivo.
Mini cenários de uso
Cenário A: Um EA de scalping abre 50 ordens por minuto. Cada ordem recebe um comentário “Scalp‑Buy‑#123”, permitindo que o gestor filtre rapidamente por tipo de operação ao gerar o relatório diário.
Cenário B: Um gestor de portfólio usa o mesmo módulo para anotar “SL‑violado‑tempo‑15s”, facilitando a análise de motivos de stop‑loss ativados em períodos de alta volatilidade.
Parecer editorial
O módulo de comentários automáticos oferece mais transparência operacional que a maioria dos EAs padrão. Não é um “miracle‑tool”, mas reduz tempo de pós‑processamento em até 30 % para quem já coleta dados em massa. Se sua rotina depende de auditoria de ordem, a relação custo/benefício é alta; caso contrário, o overhead pode não compensar.
Próximos passos: clone o repositório, teste em sandbox, ajuste o tamanho do buffer de texto e, se tudo ficar sólido, implemente em produção. Baixar modelo



