Discussão do artigo "Otimização Walk Forward Contínua (parte 5): Panorama do Projeto Otimizador Automático e Criação da Interface Gráfica"

 

Novo artigo Otimização Walk Forward Contínua (parte 5): Panorama do Projeto Otimizador Automático e Criação da Interface Gráfica foi publicado:

Este artigo fornece uma descrição mais detalhada da otimização walk-forward na plataforma MetaTrader 5. Nos artigos anteriores, nós consideramos os métodos para gerar e filtrar o relatório de otimização e começar a analisar a estrutura interna do aplicativo responsável pelo processo de otimização. O Otimizador Automático é implementado como uma aplicação em C# e possui sua própria interface gráfica. O quinto artigo é dedicado à criação dessa interface gráfica.

Vamos para a interface gráfica. Anteriormente, nós consideramos um método para criar um complemento para a MetaTrader 5 na linguagem C# e maneiras de combinar suas funções com um Expert Advisor usando uma DLL e o retorno de chamada da OnTimer. Na implementação atual, o otimizador automático será implementado fora da plataforma. Agora, ele é executado como um gerenciador de otimizações externo e imita o trabalho de um trader que lança as otimizações e processa os resultados. Além disso, evitando otimizações simultâneas em várias plataformas executando no mesmo computador e implementando o otimizador automático como um aplicativo separado, nós podemos acessar absolutamente todos as plataformas que estão instalados no computador, incluindo o computador em que o otimizador está sendo executado. Este computador não pôde ser usado no projeto anterior.

É por isso que o projeto atual não é implementado inteiramente como uma DLL, mas agora ele é dividido em uma DLL e um arquivo executável do projeto otimizador automático.


Como pode ser visto na captura de tela acima, a janela do projeto consiste em um Cabeçalho, um Rodapé e um TabControl com duas guias: Settings e Reports. A parte do cabeçalho e o rodapé da janela não são alterados, independentemente da guia selecionada na parte central, proporcionando fácil acesso a todos os elementos de controle localizados nessas partes.

Autor: Andrey Azatskiy

 
O que fazer e como otimizar?
 
Dzmitry Adzinets:
O que fazer e como otimizar?

No artigo nº 4 - instruções sobre como otimizar

Непрерывная скользящая оптимизация (Часть 4): Программа для управления оптимизацией (автооптимизатор)
Непрерывная скользящая оптимизация (Часть 4): Программа для управления оптимизацией (автооптимизатор)
  • www.mql5.com
Продолжая цикл статей про непрерывную скользящую оптимизацию, вашему вниманию представляется созданная программа для осуществления запрограммированной автоматической оптимизации. Ранее написанные статьи описывали детали реализации данной программы как на стороне терминала, так и библиотеки, которая используется для работы с созданными отчетами...
 
Andrei, qual é a maneira correta de preencher os campos "APPEND_BOT_PARAM"? Todos os parâmetros do Expert Advisor devem ser inseridos ali, ou somente aqueles que precisam ser otimizados no momento? E por que preciso preenchê-los no código do Expert Advisor, se eles estão disponíveis na janela principal do "Metatrader Auto Optimiser "?
 
Good Beer:
Andrei, qual é a maneira correta de preencher os campos "APPEND_BOT_PARAM"? Todos os parâmetros do Expert Advisor devem ser inseridos ali ou somente aqueles que precisam ser otimizados no momento?

Todos os parâmetros do Expert Advisor devem ser inseridos nesse campo.

Good Beer:
E por que eles devem ser preenchidos no código do Expert Advisor, quando estão disponíveis na janela principal do "Metatrader Auto Optimiser"?

A questão é que, na janela principal do Metatrader Auto Optimiser, esses parâmetros são retirados do arquivo (*set) gerado pelo terminal. Mas nos relatórios de otimização, onde os parâmetros do robô também são salvos, os parâmetros são gravados pelo próprio robô no momento da geração do relatório. Se você não inserir esses parâmetros, em primeiro lugar, o otimizador automático não poderá executar um teste em otimizações que já tenham sido feitas anteriormente, pois para executar os testes ele usa os parâmetros dos arquivos do relatório de otimização, que, como escrevi acima, são gerados pelo próprio robô no final do processo de otimização. Em segundo lugar, haverá problemas no processo de otimização, pois, depois de selecionar a passagem de acordo com os critérios selecionados, não será possível executar o teste porque ele não encontrará os parâmetros do robô com os quais o teste deve ser executado. Ou melhor, o teste provavelmente será iniciado, mas não será iniciado com os parâmetros esperados.

 
Andrey Azatskiy:

obtém parâmetros exatamente dos arquivos de relatório de otimização

Provavelmente, é aconselhável usar opções alternativas comprovadas para obter essas informações.

 
fxsaber:

Provavelmente, é aconselhável usar opções alternativas comprovadas para obter essas informações.

Você pode sugerir algumas alternativas? A questão é que o próprio robô gera o relatório, e eu decidi não usar o upload padrão que o terminal faz porque eu queria adicionar mais dados ao relatório. Em princípio, isso é feito uma vez, não a cada otimização, portanto, não acho que deva ser muito difícil, mas se houver uma maneira mais conveniente, estou pronto para ajustar o código.

 
Andrey Azatskiy:

Você pode sugerir variantes? A questão é que o próprio robô gera o relatório, mas eu decidi não usar o upload padrão que o terminal faz porque eu queria adicionar mais dados ao relatório. Em princípio, isso é feito uma vez, não a cada otimização, portanto, não acho que deva ser muito difícil, mas se houver uma maneira mais conveniente, estou pronto para ajustar o código.

No KB MTTester.mqh, onde você pode obter todas as configurações do EA a qualquer momento. Bem, e extrair conjuntos dos resultados da otimização - também.

 
fxsaber:

Na KB MTTester.mqh, onde você pode obter todas as configurações do EA a qualquer momento. Bem, e também é possível extrair conjuntos dos resultados da otimização.

Bem, eu não preciso extrair conjuntos, ele conta tudo sozinho, mas agradeço pelo mecanismo de automação do recebimento de configurações, vou estudá-lo quando quiser e tentar implementá-lo na nova versão.

 
Andrey Azatskiy:
Sugerir variantes?

Bem, e como opção: conecte minimamente os quadros ao Expert Advisor e use FrameInputs().

 
Good Beer:

Bem, e como opção: conecte minimamente os quadros ao Expert Advisor e use FrameInputs().

Eu não gostaria de usar quadros, mas agradeço seu conselho. Usando a variante atual, apenas uma classe é conectada ao Expert Advisor, enquanto os quadros são um mecanismo completo com um conjunto de métodos para trabalhar com eles. Além disso, pelo que me lembro, eles suportam apenas tipos de dados primitivos, e eu queria salvar estruturas em arquivos, por isso decidi usar a marcação xml.