EA Ledger True Costs MT5
- Utilitários
-
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself. - Versão: 1.0
- Ativações: 10
Um livro-razão da conta para o MetaTrader 5 que divide seus resultados por número mágico, símbolo, dia da semana e hora, mostra o L/P de preço, a comissão, o swap e as taxas em colunas separadas, e mede o spread pago em cada execução e o slippage em relação ao preço que você solicitou. Os totais são conferidos com o saldo da conta a cada atualização. Ele nunca opera em um gráfico.
O que ele faz
Anexe-o a um gráfico. Ele lê o histórico de negócios da conta, reconstrói cada posição a partir dos seus negócios e mostra o resultado em um painel:
- resultado líquido, L/P de preço, comissão, swap e taxas, mantidos em colunas separadas
- custo de spread e custo de slippage de cada execução, medidos a partir do próprio histórico de ticks do terminal
- MFE e MAE de cada trade fechado: até onde o preço foi a seu favor e contra você enquanto ele estava aberto
- trades, taxa de acerto, fator de lucro, lotes e custo total por lote
- depósitos, saques, crédito, bônus, correções e outros lançamentos não operacionais, mostrados separadamente dos resultados de negociação
Ele se atualiza sozinho quando um negócio é adicionado. O cálculo foi testado com históricos sintéticos de 50.000 e 200.000 negócios; as contas usadas nos testes ao vivo tinham até 1.249 negócios.
Totais que batem com o saldo
Toda vez que o histórico muda, o painel soma todos os negócios da conta e compara a soma com o saldo informado pela corretora. A barra abaixo do resumo mostra os dois números e a diferença: "OK" em verde quando eles batem até o centavo, "MISMATCH" em vermelho quando não batem. Para o período selecionado, ele também mostra que a variação do saldo é igual ao resultado de negociação mais os lançamentos não operacionais.
O crédito é mostrado, mas não é contado no saldo, da mesma forma que o MetaTrader o conta.
Posições reconstruídas a partir dos negócios
- Contas hedging e netting.
- Fechamentos parciais, posições aumentadas, fechamento por posição oposta (Close By; as duas posições são marcadas com "CB") e reversões em contas netting (um negócio que fecha uma posição e abre a oposta). A comissão de um negócio de reversão é dividida entre o trade fechado e o novo trade, proporcionalmente ao volume.
- A comissão lançada como negócios separados, e a comissão diária ou mensal, é atribuída à sua posição quando a corretora a vincula a uma posição. Caso contrário, ela aparece em uma linha própria, "Commission not linked to a position".
- Saídas por stop loss, take profit e stop out são marcadas.
Agrupamento e filtros
Visões: por número mágico (com o rótulo do comentário do EA quando houver; o número mágico 0 é "Manual"), por símbolo, por número mágico e símbolo, por dia da semana da entrada, por hora da corretora na entrada e uma lista de trades.
Períodos: hoje, esta semana, este mês, todo o histórico ou um intervalo personalizado no horário do servidor.
Clique em uma linha de número mágico para ver seus símbolos, em uma linha de símbolo para ver seus números mágicos e em uma linha de número mágico e símbolo para ver seus trades. Um chip no painel mostra o filtro ativo e permite limpá-lo.
A página Results mostra valores em dinheiro; a página Costs mostra spread, slippage, comissão e taxas por grupo, custo por lote, MFE e MAE médios e a origem de cada medição.
Como os custos são medidos
- Spread em uma execução: o bid/ask vigente no momento do negócio, obtido do histórico de ticks do terminal. Se não houver tick, é usado o spread da barra M1 e o trade é marcado com "M1".
- Slippage: o preço de execução em relação ao preço que foi solicitado:
- uma ordem pendente: o preço da ordem
- um stop loss ou take profit: o nível do stop
- uma ordem a mercado: em geral a corretora não guarda um preço solicitado para ela, então a cotação no momento em que a ordem foi colocada é obtida do histórico de ticks (ask para uma compra, bid para uma venda)
Slippage positivo é contra você; negativo é a seu favor.
- Valor monetário de um ponto: obtido do próprio lucro do trade, por isso acompanha a moeda da conta, inclusive em contas cent e em EUR, e o tamanho do contrato (ouro de 1, 10 ou 100 oz por lote, CFDs de índice de 1, 10 ou 100 unidades). Quando um trade não tem movimento de preço para fazer essa medição, usa-se a média do símbolo e, depois, o próprio cálculo de lucro da corretora.
- MFE / MAE: o maior e o menor preço pelo qual a posição foi avaliada (bid para uma compra, ask para uma venda) entre a entrada e a saída, a partir dos ticks. Trades com mais de 3 dias (um parâmetro) usam barras M1 e são marcados com "M1".
O custo de spread e o custo de slippage já estão dentro do L/P de preço, porque fazem parte do preço de execução. Eles são mostrados para que você veja quanto do resultado consumiram. Eles não são subtraídos uma segunda vez.
Os resultados são salvos em um pequeno arquivo de cache, então a medição é feita uma única vez por negócio. Nas contas de teste, a primeira medição de 1.246 execuções e 557 trades levou 7 segundos; ela roda em pequenas partes em segundo plano, e o painel pode ser usado enquanto isso.
Exportação CSV
O botão "Export CSV" grava quatro arquivos em MQL5\Files\EALedger\<account>\:
- <time>_summary.csv: totais do período, lançamentos não operacionais, a conferência do saldo
- <time>_groups.csv: uma linha por grupo da visão atual
- <time>_trades.csv: uma linha por trade, com entrada e saída, custos, spread e slippage na entrada e na saída, MFE e MAE em pontos e em dinheiro, a origem de cada medição e observações
- <time>_deals.csv: uma linha por negócio, com o trade ao qual ele pertence, o preço solicitado, a cotação no momento da ordem, slippage e spread
Com o parâmetro "Write the CSV files again after every history change", os mesmos arquivos são mantidos atualizados com o prefixo auto_.
Parâmetros de entrada
| Parâmetro | Padrão | Significado |
|---|---|---|
| Period shown at start | All history | Today, This week, This month, All history, Custom |
| Custom period: from / to | 2026.01.01 / 0 | Horário do servidor. 0 = agora |
| View shown at start | By magic number | By magic number, By symbol, By magic number and symbol, By weekday of entry, By broker hour of entry, Trade list |
| Show only this magic number | -1 | -1 mostra todos |
| Measure spread and slippage at every fill | true | |
| Measure MFE / MAE of closed trades | true | |
| Trades up to this many days long use ticks | 3 | Trades mais longos usam barras M1 |
| Write the CSV files again after every history change | false | |
| Panel distance from the left / top edge | 8 / 22 | Pixels |
| Panel scale in % | 0 | 0 segue o DPI da tela |
| Hide the chart's own trade arrows while the panel is open | true | O MetaTrader as desenha acima do painel. A configuração do gráfico é restaurada quando o painel é recolhido ou o EA é removido |
| Tester only: open sample positions | true | Veja abaixo |
Testador de estratégia
O testador não tem histórico de negócios para mostrar no início. Por isso, somente no Testador de estratégia, o EA abre ele mesmo uma pequena série de posições de exemplo:
- volume mínimo (o dobro do mínimo quando a margem permite), três números mágicos ("Sample A", "Sample B", "Sample C")
- cada posição é aberta, metade dela é fechada e depois o restante é fechado, até 60 posições
- a margem livre é verificada antes de cada nova posição; com dinheiro insuficiente, ele grava uma observação e não envia nada
Execute-o no modo visual para ver o painel sendo preenchido. As posições de exemplo não são uma estratégia de negociação, e os resultados delas não dizem nada sobre lucro. O testador não tem preço solicitado para ordens a mercado e pode não ter histórico de ticks; por isso, ali o spread e o MFE/MAE vêm de barras M1, e o slippage aparece como "n/a" na lista de trades e como 0,00 no resumo.
Em um gráfico de conta real ou demo, o EA nunca envia, modifica ou fecha uma ordem.
Limitações (por favor, leia antes de comprar)
- Um slot de gráfico: ele é um Expert Advisor, então ocupa o slot de EA do gráfico ao qual está anexado. Anexe-o a um gráfico livre, não ao gráfico de um EA que opera.
- O histórico de ticks é o da corretora: spread, slippage de ordens a mercado e MFE/MAE precisam do histórico de ticks da corretora para o horário do trade. As corretoras o mantêm por tempo limitado e, para alguns símbolos, não o mantêm de forma alguma (um CFD de ação nos testes não tinha nenhum). Nesse caso, são usadas barras M1 e o trade é marcado com "M1", ou com "n/a" quando não há dados. A primeira medição baixa o histórico de ticks do servidor da corretora.
- O slippage de ordens a mercado é medido em relação à cotação no momento em que a ordem foi colocada. Ele inclui qualquer movimento de preço durante a execução, que é o que você paga.
- Fechamento por posição oposta (Close By): o MetaTrader lança todo o lucro de um fechamento por posição oposta em uma das duas posições. O livro-razão o mostra da forma como a corretora o lançou; os totais estão corretos, e a divisão entre as duas posições é a do MetaTrader.
- Contas netting: uma posição pode ser alterada por vários EAs. O trade pertence ao número mágico que o abriu; negócios de outros números mágicos nele são marcados com "Mix".
- Os valores são mostrados na moeda da conta, como a corretora os informa. Uma conta cent mostra centavos.
- O swap é mostrado em sua própria coluna e não é contado no custo total por lote, que cobre spread, slippage, comissão e taxas.
- Dia da semana e hora são os da entrada, no horário do servidor.
- Ambiente testado:
- Ao vivo em quatro contas demo: MetaQuotes-Demo USD hedging (1.249 negócios), EUR hedging (900 negócios), USD netting (262 negócios) e uma conta demo em uma segunda corretora, USD hedging (337 negócios, incluindo prata de 5.000 oz, contratos de índice de 10 unidades e de 100 unidades e CFDs de ações). Nas quatro, os totais bateram com o saldo até o centavo, e cada trade coincidiu com uma reconstrução separada do histórico escrita para o teste.
- Contas cent e ouro de 1 oz são cobertos por testes unitários com negócios sintéticos, não por contas ao vivo. Nenhuma das duas corretoras os oferecia em conta demo.
- A velocidade foi testada com históricos sintéticos de 50.000 e 200.000 negócios.
- Por favor, teste primeiro em uma conta demo, com a demo gratuita no Testador de estratégia.
