Bibliotecas: MultiTester - página 8

 
Podemos criar um consultor separado para limpar a tela no kit do multitester, até que a MQ finalmente remova esse recurso com gráficos de otimização. A propósito, vou usar a possibilidade de executar um Expert Advisor adicional no multitester para o processamento final da tabela de resultados de teste.
 
Good Beer:
Você poderia criar um EA limpador de tela separado no kit multitester, até que a MQ finalmente remova aquele gráfico de otimização.
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/pt/code/26132

void OnStart()
{
  while (MTTESTER::CloseNotChart() && !IsStopped())
    ;
}
 
fxsaber:
WOW!!!! E ele já estava lá. Funciona! Obrigado.
 
Good Beer:
WOW!!!! E ele já estava lá. Funciona! Obrigado.

Mas ele funciona bem e rápido somente se o script for lançado no gráfico. Se for chamado por meio de TesterSettings.Add(), ele exclui tudo lentamente no início e depois entra em loop. Aparentemente, !IsStopped() não vê o comando end, e ExpertRemove() não é adequado nesse caso.

 
Good Beer:

Mas ele funciona bem e rápido somente se o script for lançado no gráfico. Se você o chamar por meio de TesterSettings.Add(), ele excluirá tudo lentamente no início e, depois, entrará em loop.

Não sei se isso ajudará, mas tente substituir estas linhas

        user32::SendMessageW(handle, WM_CLOSE, 0, 0);
        Res = true;


por esta

        Res = user32::SendMessageW(handle, WM_CLOSE, 0, 0);


Honestamente, tudo isso é cosmético, então não tenho muita vontade de lidar com isso. Aparentemente, estou entrando em um estado em que o esforço despendido no suporte às soluções publicadas não deixa oportunidade para criar novas soluções. Acho que essa é uma situação padrão.

 
fxsaber:

Não sei se isso ajudará, mas tente substituir estas linhas


por estas


Honestamente, é tudo cosmético, então não tenho muita vontade de descobrir. Aparentemente, estou entrando em um estado em que o esforço despendido no suporte às soluções publicadas não deixa oportunidade para criar novas soluções. Acho que essa é uma situação padrão.

Obrigado por isso. De qualquer forma, esses gráficos de otimização serão removidos, caso contrário, serão uma vergonha para a MQ e serão cafonas. É melhor soltar o script uma vez do que pressionar F4 300 vezes.
 
Vou salvá-lo aqui.

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Nova versão da plataforma MetaTrader 5 build 2190

fxsaber, 2019.10.31 08:53 pm.

Tenho dois add-ons em planos distantes

  1. Cálculo do portfólio ideal para determinados conjuntos. Otimizado, selecione os conjuntos de que você gosta. Em seguida, o add-in montará o portfólio ideal a partir desses conjuntos.
  2. Otimização adaptativa. Você executa o add-in e define a duração do intervalo e a frequência da superotimização. E para qualquer Expert Advisor é criada uma passagem adaptativa. Dessa forma, você pode verificar rapidamente a robustez do TS.
Precisamos desses add-ons de terceiros para o Tester. Não há limitações técnicas para escrevê-los agora. Eu gostaria que não houvesse no futuro.
 

Quando você analisa um grande número de caches de otimização após uma execução de vários testes, você faz a mesma coisa.

  1. Você escolhe a melhor passagem para iniciar uma única execução (via PCM).
  2. Se você gostar, desative a otimização e aumente o intervalo.
  3. Clique em Iniciar.

A maior parte do tempo é gasta no ponto 2. Erros são cometidos com frequência. Você quer semi-automatizar. E há uma solução!


Copie este texto para a área de transferência

[Tester]
Optimization=0
FromDate=2019.01.01


Em seguida, basta pressionar CTRL+V na guia Settings (Configurações). Isso desativará automaticamente a otimização e definirá a data desejada.


ZY Eu estava com pressa para me alegrar. Os parâmetros de entrada do Expert Advisor são redefinidos para o padrão com esse buffer.

 
Funcionalidade adicional do MTTester.mqh.
 

Um salto qualitativo na automação do testador.


#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/pt/code/26132

void OnStart()
{  
  MessageBox(MTTESTER::GetSettings()); // Configurações do testador de corrente

  string Settings = "[Tester]\nFromDate=2019.09.01"; // Definição da data de início do intervalo de teste
  MTTESTER::SetSettings(Settings); // Definir as configurações apropriadas
}


Agora, liberdade total na automação do testador.


Muito obrigado @Slava por sua ajuda!