
Teste de Visualização: Histórico de negociações
1. Motivação
A partir da compilação 196, o terminal do cliente MetaTrader 4 oferece a função de visualização de teste. Ele permite controlar os testes do Expert Advisors de modo inovador. Agora, o programador de trading pode assistir cada ação de seu Expert Advisor e verificar o funcionamento na história!
Você pode ler sobre o uso do visualizador em Testing of Expert Advisors in the MetaTrader 4 Client Terminal: Um olhar de fora. No meu artigo anterior nomeado Teste de Visualização: Melhoria da funcionabilidade, foi descrito como fazer a aba "Trade" para teste. Aqui, adicionaremos a aba "Histórico da conta".
2. A tarefa e como realizá-la
Primeiro de tudo, não podemos criar uma shadow copy do "Histórico da conta". Para criá-la, teríamos que escrever um programa complicado usando dlls. Mas não precisamos de tudo isso de uma vez já que a aba “Resultados de Teste” contém praticamente todas as informações sobre as operações realizadas.
Nossa tarefa é mostrar informações atuais. Isso pode ser muito conveniente quando se analisa o trabalho do Expert Advisors. Não haverá necessidade de alternar entre as abas o tempo todo.
Como não há muito espaço no visor e a realização de rolagem não é uma tarefa muito simples, só exibiremos os eventos mais recentes.
O que resta é recordar que, para criar uma sub-janela, onde o histórico será exibido, é necessário criar um indicador e, tendo ligado ele ao gráfico, criar o template denominado tester.tpl ou no template .tpl (você pode baixar o indicador diretamente deste artigo).
Agora podemos começar a preparar o Expert Advisor.
Também não é muito difícil:
- salve o arquivo VisualTestingTools.mq4 no diretório nomeado ...\MetaTrader 4\experts\include\;
- adicione #include alinhe com o Expert - agora o conteúdo do arquivo está incluso no código do Expert; e
- insira no init do Expert () e na função iniciar() as chamadas para as funções responsáveis pela atualização do histórico de negociações.
... double _Commission = 0.0; string _Comment = ""; datetime _Expiration = -1; #include <VisualTestingTools.mq4> int init() { if(FastEMAPeriod >= SlowEMAPeriod) return(-1); vTerminalInit(); vHistoryInit(); return(0); } int start() { if(FastEMAPeriod >= SlowEMAPeriod) return(-1); vTerminalRefresh(); vHistoryRefresh(); int _GetLastError = 0; ...
3. Testando
Agora, vamos tentar testar o novo Expert. Para isso, abra a janela do verificador de estratégia, selecione CrossMACD_DeLuxe_VisualHistory no menu do Expert e pressione o botão propriedades.
Janela do verificador de estratégia
- ColunasTerminal - a quantidade máxima de linhas da guia "terminal" a ser exibida. Ao colocar colunas do terminal = 0, o terminal não será atualizado;
- ColunasHistórico - o montante máximo das linhas do "Histórico da conta" a ser exibido. Ao colocar Colunas do terminal=0, o histórico da conta não será atualizado;
- CaixaAlta - marque caso queira tornar a fonte maior;
- PontosSinal - a distância, em pontos, a partir da qual Parar Perda, Parar Lucros e Abrir Campos de Preço de ordens pendentes serão destacados. Por exemplo, se pontos de sinal = 10, o campo Parar Perdas mudará a cor quando o preço estiver a 10 pontos de distância do Parar Perda de posição;
- CancelarVisualização - configure caso queira visualizar ordens canceladas no histórico de negociações;
- Visualizar Expirado - configure caso queira visualizar ordens pendentes expiradas no histórico de negociações;
- CorPrincipal - cor de manchetes do Terminal e histórico da conta, bem como a barra de informações da conta do terminal de negociações (Balanço, Patrimônio, ...).
- ComprarCor - cor de informações sobre Comprar posições;
- ComprarCorAP - cor do campo Abrir Preço da guia terminal; esta cor substituirá a cor principal quando o preço atual se aproximar do nível aberto de ordens Parar Compra e Limitar Compra;
- ComprarCorSL - para a guia Terminal: cor que irá substituir a cor principal quando o preço se aproximar dos níveis de Parar Perda da Compra de posições; para a guia Histórico da Conta: cor que irá substituir a cor principal se a Compra de posições for fechada pelo Parar perda;
- ComprarCorTP - o mesmo que ComprarCorSL aplicado para obter lucro das posições;
- VenderCorAP, VenderCorSl e VenderCorTP - o mesmo para Vender posições.

Teste de Visualização: As janelas 'Terminal' e 'Histórico da conta' foram carregadas

EA abriu uma posição, e esta é visualizada na janela "Terminal"

Assim que a posição foi fechada, ela mudou-se para o "Histórico da conta" e foi substituída por outra.
Observe que o campo Parar Perda é destacado em vermelho - a posição foi fechada por Parar Perda.

A segunda posição foi fechada por Obter Lucro.
Observe que as últimas posições são mostradas no topo do Histórico da Conta.
Assim, vamos sempre ver os eventos mais recentes.

Assim que o nosso terminal virtual fica depois de alguns minutos.
4. Possíveis problemas
O problema descrito no meu artigo Teste de visualização: Melhoria da funcionabilidade também aplica-se ao indicador do Histórico: se o indicador não estiver na segunda sub janela no modelo utilizado pelo verificador, o bom funcionamento das funções responsáveis pela atualização do Histórico da conta deve ser fornecido pelo número de sub janelas explicitamente especificado:
vHistory_win = WindowFind( "vHistory" ); if ( IsTesting() ) { vHistory_win = 2; }
5. Conclusão
Imagens que ilustram como a guia Histórico da Conta olha em várias situações são fornecidas abaixo.
Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/1452





- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso