Optimização no Testador de Estratégia

 
Por favor, ajude-me a compreendê-lo.

Por exemplo, escolhi o Expert Advisor padrão da entrega "Moving Average.mq5" (para evitar perguntas sobre o código no Expert Advisor).
Dados iniciais:
EURUSD, Diário, de 01.07.2010 a 31.08.2010, apenas preços abertos, modo sem optimização (ou seja, um passe do testador).
O ficheiro StrategyTester_1pass.log encontra-se em anexo.

Eis o que vemos: o tempo total de funcionamento do testador é de 8 segundos, dos quais APENAS 546 ms foram gastos a testar o Expert Advisor. Todo o resto do tempo foi um trabalho preparatório.

Depois defino a optimização de um parâmetro de entrada entre 5 valores (para cinco passagens do testador).

Aqui está uma imagem do registo

diário de ensaio

e o ficheiro StrategyTester_5passes.log estão em anexo.

O registo mostra que cada iteração demora 7-9 segundos, ou seja, temos um ciclo completo de execuções únicas de cada vez!
Assim, o tempo total de optimização é de 25 segundos num processador de núcleo duplo (levaria 45 segundos num núcleo, em vez de 3 segundos de testes EA reais).

E se precisarmos de optimizar 3 parâmetros de entrada para pelo menos 10 valores (10 * 10 * 10 = 1000)? Em MT4, a optimização foi várias ordens de grandeza mais rápida.

Encontrei perguntas sobre o mesmo problema num dos tópicos do fórum https://www.mql5.com/ru/forum/852/page14, mas todas foram enviadas ou para a minha conta pessoal ou para o servicedesk.

Por favor, explique qual é o problema e como optimizar correctamente no testador de estratégias.

 

Também reparei nisso... mas culpei-o pela "imperfeição" do mql5 -))

Optimizo 5 parâmetros... Tomo sinal elementar como entrada... nenhum cálculo... Retirei tudo o que pude...

como resultado, 1200 funcionamentos num processador de 4 núcleos levam toda a noite... e isso é apenas daqui a um mês...

tenho procurado uma forma de acelerar as coisas... tenho restringido o eXpert a verificar as condições uma vez a cada 5 minutos... não tem funcionado... nem um segundo mais rápido...

por isso, já há quinze dias que ando a testar e a testar... e estou inclinado a pensar que devo apenas colocar os parâmetros sem qualquer optimização...

 
maryan.dirtyn:

Também reparei nisso... mas culpei-o pela "imperfeição" do mql5 -))

Optimizo 5 parâmetros... Tomo sinal elementar como entrada... nenhum cálculo... Retirei tudo o que pude...

como resultado, 1200 funcionamentos num processador de 4 núcleos levam toda a noite... e isso é apenas daqui a um mês...

tenho procurado uma forma de acelerar as coisas... tenho restringido o eXpert a verificar as condições uma vez a cada 5 minutos... não tem funcionado... nem um segundo mais rápido...

por isso, já há quinze dias que ando a testar e a testar... e estou inclinado a pensar que devo apenas colocar os parâmetros sem qualquer optimização...

No início também pensei que havia um erro no meu código. Procurei e simplifiquei, mas depois cheguei a isto (...): "especialista".

input int          X = 100;

int OnInit()
  {
   return(0);
  }

void OnDeinit(const int reason)
  {
  }

void OnTick()
  {
   Print("Тик-Так.");
  }

O resultado foi o mesmo.

1 passe demora 7-9 segundos. Este disparate acaba por se revelar.

 
Batohov:

1 passe dura 7-9 segundos. Esse é o tipo de disparate que se obtém.

+1.

o mesmo para os preços de abertura.

ao Exército Vermelho tal optimização...

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Tenho estado a optimizar há um mês))) e parece que não terá fim) mas "optimização por OOP" cobre todos os aspectos possíveis da estupidez humana... talvez só nós é que o fazemos há tanto tempo... )) uma vez que mais ninguém aqui vem... Posso imaginar quanto tempo levaria o teste, se eu anexasse"Controlo de inclinação da curva de equilíbrio durante a actividade do Expert Advisor" ao eXpert amoebaic.
 
Sim, é isso que estou a fazer agora.... é tão incómodo como descarregar um filme com GPRS....
 
maryan.dirtyn:
Há um mês que estou a optimizar))) e parece que não há fim à vista... Acho que somos só nós há tanto tempo... ))) uma vez que mais ninguém está a olhar para aqui...
Sim, todos o fazem :) Não há nada a dizer. Estou bastante habituado a 5-6 dias de optimização rápida num processador de 2 núcleos em "todas as carraças" de 10,5 mil passos. Sem queixas.
 
Yedelkin:
Sim, toda a gente está a passar por aqui :) Não há nada a dizer. Estou bastante habituado ao facto de que num processador de 2 núcleos a optimização rápida em "todas as carraças" de 10,5 mil passos leva 5-6 dias. Sem queixas.
Mas costumava ser significativamente mais rápido
 
maryan.dirtyn:
Mas era muito mais rápido antes

O meu computador não tem parado desde Maio - está constantemente a optimizar. É por isso que já estou perdido, quer tenha sido mais rápido ou não.

Adição: acabei de reparar que o compilador se tornou 10 vezes mais rápido.

 
Yedelkin:

O meu computador não tem parado desde Maio - está constantemente a optimizar. Portanto, já estou perdido quanto a ser mais rápido ou não.

assustador
 

E seleccionei alguns parâmetros, cliquei no teste... de manhã, contei o número de corridas e quantas restaram. calculou que faltaram 50 dias para o fim da optimização. o meu computador tem 4 núcleos + 2 agentes centrais... Não preciso desta optimização, por isso desliguei-a...