Trabajo con resultados de optimización

Aquí tenemos las funciones que sirven para organizar el procesamiento personalizado de los resultados de optimización en el Probador de estrategias. Se puede llamarlas durante la optimización en los agentes de pruebas, así como de forma local en los EAs y scripts.

Cuando Usted arranca un EA en el Probador de estrategias, puede crear su propio array de datos a base de los tipos simples o estructuras simples (no contienen cadenas, objetos de la clase o objetos del array dinámico). Utilizando la función FrameAdd(), Usted puede guardar este conjunto de datos en una estructura especial que se llama frame (cuadro). Durante la optimización de un EA, cada agente puede enviar al terminal una serie de frames. Todos los frames recibidos, en el orden que vayan llegando de los agentes, se escriben en el archivo *.MQD en la carpeta directorio_del_terminal/MQL5/Files/Tester con el nombre del EA. La llegada de los frames al Terminal de Cliente de parte de un agente de pruebas genera el evento TesterPass.

Los frames se puede almacenar tanto en la memoria del ordenador, como en un archivo con el nombre especificado. Por parte del lenguaje MQL5 no existe limitación alguna respecto al número de los frames.

Limitaciones de memoria y espacio en el disco en MQL5 Cloud Network

Al ejecutar la optimización en MQL5 Cloud Network, existe un límite: el asesor experto probado no puede escribir más de 4GB de datos en el disco y utilizar más de 4GB de RAM. Si se excede el límite, el agente de red no podrá completar los cálculos correctamente y usted no obtendrá el resultado de la prueba. En este caso, además, se le cobrará el tiempo ya empleado en los cálculos.

Si necesita obtener información de cada pasada de optimización, utilice el envío de frames sin escribir en el disco. En otras palabras, al realizar cálculos en MQL5 Cloud Network no utilice operaciones de archivo en los asesores durante la optimización, puede utilizar esta comprobación:.

   int handle=INVALID_HANDLE;
   bool file_operations_allowed=true;
   if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_FORWARD))
      file_operations_allowed=false;
 
   if(file_operations_allowed)
     {
      ...
      handle=FileOpen(...);
      ...
     }

 

Función

Acción

FrameFirst

Mueve el puntero de lectura de frames al inicio y reinicia el filtro establecido antes

FrameFilter

Establece el filtro de lectura de frames y mueve el puntero al inicio

FrameNext

Lee el frame y mueve el puntero al siguiente

FrameInputs

Recibe los parámetros input sobre los que está formado el frame

FrameAdd

Añade un frame con datos

ParameterGetRange

Recibe para la variable input la información sobre la banda de valores y el paso de cambios durante la optimización del EA en el Probador de Estrategias

ParameterSetRange

Establece las reglas del uso de la variable input durante la optimización del EA en el Probador de Estrategias: valor, paso de cambio, valor inicial y final

Véase también

Estadística de simulación, Información sobre el programa MQL5 en ejecución