Optimización en el Probador de Estrategias

 
Por favor, ayúdame a entenderlo.

Por ejemplo, elegí el Asesor Experto estándar de la entrega "Moving Average.mq5" (para evitar preguntas sobre el código del Asesor Experto).
Datos iniciales:
EURUSD, diario, del 01.07.2010 al 31.08.2010, sólo precios abiertos, modo sin optimización (es decir, una pasada del probador).
Se adjunta el archivo StrategyTester_1pass.log.

Esto es lo que vemos: el tiempo total de ejecución del probador es de 8 segundos, de los cuales SÓLO 546 ms se dedicaron a probar el Asesor Experto. Todo el resto del tiempo fue trabajo preparatorio.

A continuación, he establecido la optimización de un parámetro de entrada de 5 valores (para cinco pases del probador).

Aquí hay una captura de pantalla del registro

registro de pruebas

y el archivo StrategyTester_5passes.log se adjuntan.

El registro muestra que cada iteración tarda entre 7 y 9 segundos, es decir, ¡tenemos un ciclo completo de ejecuciones simples cada vez!
Por lo tanto, el tiempo total de optimización es de 25 segundos en un procesador de doble núcleo (tardaría 45 segundos en un núcleo, en lugar de los 3 segundos de las pruebas reales de EA).

¿Y si tenemos que optimizar 3 parámetros de entrada para al menos 10 valores (10 * 10 * 10 = 1000)? En MT4 la optimización fue varios órdenes de magnitud más rápida.

Encontré preguntas sobre el mismo problema en uno de los hilos del foro https://www.mql5.com/ru/forum/852/page14, pero todas fueron enviadas a mi cuenta personal o a servicedesk.

Por favor, explique cuál es el problema y cómo optimizar correctamente en el probador de estrategias.

 

Yo también lo noté... pero lo achacaba a la "imperfección" de mql5 -))

Optimizo 5 parámetros... Tomo la señal elemental como entrada... sin cálculos... He eliminado todo lo que podía...

como resultado 1200 carreras en un procesador de 4 núcleos lleva toda la tarde... y eso es sólo en un mes...

He estado buscando una manera de acelerar las cosas... he restringido el eXpert para comprobar las condiciones una vez cada 5 minutos... no ha funcionado... ni un segundo más rápido...

Así que durante quince días he estado probando y probando... y me inclino a pensar que debería poner los parámetros sin ninguna optimización...

 
maryan.dirtyn:

Yo también lo noté... pero lo achacaba a la "imperfección" de mql5 -))

Optimizo 5 parámetros... Tomo la señal elemental como entrada... sin cálculos... He eliminado todo lo que podía...

como resultado 1200 carreras en un procesador de 4 núcleos lleva toda la tarde... y eso es sólo en un mes...

He estado buscando una manera de acelerar las cosas... he restringido el eXpert para comprobar las condiciones una vez cada 5 minutos... no ha funcionado... ni un segundo más rápido...

Así que durante quince días he estado probando y probando... y me inclino a pensar que debería poner los parámetros sin ninguna optimización...

Al principio también pensé que había un error en mi código. Busqué y simplifiqué, pero luego llegué a esto (...): "experto".

input int          X = 100;

int OnInit()
  {
   return(0);
  }

void OnDeinit(const int reason)
  {
  }

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

El resultado fue el mismo.

Un pase tarda entre 7 y 9 segundos. Se están produciendo tales disparates.

 
Batohov:

Una pasada dura entre 7 y 9 segundos. Esa es la clase de tonterías que se consiguen.

+1.

lo mismo para los precios de apertura.

al Ejército Rojo tal optimización...

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Llevo un mes optimizando)) y parece que no va a tener fin) pero la "optimización por POO" abarca todos los aspectos posibles de la estupidez humana... quizás sólo lo hacemos nosotros que llevamos tanto tiempo... )) ya que nadie más viene aquí... Puedo imaginar cuánto tiempo tomaría la prueba, si adjuntara"Control de inclinación de la curva de balance durante la actividad del Asesor Experto" a amoebaic eXpert.
 
Sí, eso es lo que estoy haciendo ahora mismo.... es tan engorroso como descargar una película con GPRS....
 
maryan.dirtyn:
Llevo un mes optimizando))) y parece que no hay fin a la vista... Supongo que sólo somos nosotros durante tanto tiempo... ))) ya que nadie más está mirando aquí...
Sí, todo el mundo lo hace :) No hay nada que decir. Estoy bastante acostumbrado a 5-6 días de optimización rápida en una CPU de 2 núcleos en "todos los ticks" de 10,5 mil pasos. No hay quejas.
 
Yedelkin:
Sí, todo el mundo se pasa por aquí :) No hay nada que decir. Estoy bastante acostumbrado al hecho de que en un procesador de 2 núcleos la optimización rápida en "todos los ticks" de 10,5 mil pasos tarda 5-6 días. No hay quejas.
Pero solía ser significativamente más rápido
 
maryan.dirtyn:
Pero antes era mucho más rápido

Mi ordenador no se ha parado desde mayo: se optimiza constantemente. Por eso ya me pierdo si fue más rápido o no.

Además: Acabo de darme cuenta de que el compilador se ha vuelto 10 veces más rápido.

 
Yedelkin:

Mi ordenador no se ha parado desde mayo: se optimiza constantemente. Así que ya estoy perdido en cuanto a si fue más rápido o no.

espeluznante
 

Y seleccioné algunos parámetros, hice clic en la prueba... por la mañana conté el número de carreras y cuántas quedaban... calculó que faltaban 50 días para el final de la optimización... mi ordenador tiene 4 núcleos + 2 agentes de núcleo... No necesito esta optimización, así que la desactivé...