Discussão do artigo "Desenvolvendo um EA multimoeda (Parte 9): Coleta dos resultados de otimização de instâncias individuais da estratégia de trading"

 

Novo artigo Desenvolvendo um EA multimoeda (Parte 9): Coleta dos resultados de otimização de instâncias individuais da estratégia de trading foi publicado:

Vamos delinear as principais etapas para o desenvolvimento do nosso EA. Uma das primeiras será realizar a otimização de uma instância individual da estratégia de trading desenvolvida. Tentaremos reunir em um único lugar todas as informações necessárias sobre as execuções do testador durante a otimização.

Basicamente, o principal tipo de dado que precisamos armazenar e usar são os resultados de otimização de vários EAs. Como é sabido, todos os resultados de otimização são gravados pelo testador de estratégias em um arquivo de cache separado com a extensão *.opt, que pode ser reaberto no testador posteriormente ou até mesmo em outro terminal MetaTrader 5. O nome do arquivo é definido a partir de um hash, calculado com base no nome do EA otimizado e nos parâmetros de otimização. Isso permite não perder informações sobre as execuções já realizadas ao continuar a otimização após uma interrupção antecipada ou mudança no critério de otimização.

Portanto, uma das opções consideradas é o uso de arquivos de cache de otimização para armazenar resultados intermediários. Para trabalhar com eles, existe uma boa biblioteca de fxsaber, que nos permite acessar todas as informações salvas a partir de programas em MQL5.

No entanto, à medida que o número de otimizações realizadas aumenta, também aumentará o número de arquivos com seus resultados. Para não nos perdermos com esses arquivos, será necessário desenvolver um esquema adicional de organização para o armazenamento e manipulação desses arquivos de cache. Se a otimização for realizada em mais de um servidor, será preciso implementar a sincronização ou o armazenamento de todos os arquivos de cache em um único local. Além disso, para a próxima etapa, ainda precisaremos processar os resultados para exportá-los para o EA.

Assim, vamos aborar o armazenamento de todos os resultados em um banco de dados. À primeira vista, isso pode exigir um esforço significativo de tempo para implementação. No entanto, esse trabalho pode ser dividido em etapas menores, e seus resultados podem ser utilizados imediatamente, sem a necessidade de esperar pela implementação completa. Essa abordagem oferece uma grande liberdade na escolha dos meios mais convenientes para o processamento intermediário dos resultados armazenados. Por exemplo, parte do processamento pode ser realizada por consultas SQL simples, outra parte pode ser calculada em MQL5, e alguns cálculos podem ser feitos em programas escritos em Python ou R. Dessa forma, podemos testar diferentes métodos de processamento e escolher o mais adequado.

Autor: Yuriy Bykov