Optimización: ¿Cómo limitar un parámetro en función de los valores de otro parámetro?

 

En relación a dos parámetros, la optimización de mi EA sólo tiene sentido si param1<param2; en los demás es perder recursos y tiempo permitir los pasos del optimizador puesto que param2 define el resultado del EA.

Para ambos parámetros establezco los valores Input así: valorInicial-0, paso-5, valorFinal-60. Pero no tiene sentido que si param1>param2 se ejecute el paso de optimización dado que todos los resultados del EA son iguales.

Uso el código siguiente pero no funciona... 

void OnTesterInit()
{
   bool optimizar= param1<param2;
   ParameterSetRange("param2", optimizar, param1, param1, 5, 60);
}

¿En qué me equivoco o que alternativa puedo implementar?

 
josemiguel1812 :

En relación a dos parámetros, la optimización de mi EA sólo tiene sentido si param1<param2; en los demás es perder recursos y tiempo permitir los pasos del optimizador puesto que param2 define el resultado del EA.

Para ambos parámetros establezco los valores Input así: valorInicial-0, paso-5, valorFinal-60. Pero no tiene sentido que si param1>param2 se ejecute el paso de optimización dado que todos los resultados del EA son iguales.

Uso el código siguiente pero no funciona...  

¿En qué me equivoco o que alternativa puedo implementar?

Probablemente algo así:

 int OnInit ()
  {
//---
   if (param1>=param2)
       return ( INIT_PARAMETERS_INCORRECT );

   // ...
      
//---
   return ( INIT_SUCCEEDED );
  }
 
angevoyageur:

Probablemente algo así:

Gracias, la idea funciona y me ha permitido reducir enormemente los pasos de optimización
 
angevoyageur:

Probablemente algo así:

¿Podría mandarme un ejemplo de código que use ParameterSetRange()
 
josemiguel1812 :
¿Podría mandarme un ejemplo de código que use  ParameterSetRange()
Yo no tengo experiencia personal con esta función. Ver este tema si eso ayuda: https://www.mql5.com/en/forum/10508
Razón de la queja: