Guía de ayuda de MetaTrader 5Trading algorítmico, robots comercialesTipos de optimización

Tipos de optimización

En el Probador de Estrategias se utilizan dos modos de optimización. Se puede seleccionarlos en la pestaña "Configuración".

Lenta (repaso completo de parámetros)

En este modo se lleva a cabo el repaso completo de todas las combinaciones posibles de los valores de los parámetros de entrada que han sido seleccionados para la optimización en la pestaña correspondiente.

Este método es el más preciso, sin embargo, los repasos del EA con todas las combinaciones de parámetros tienen una duración bastante prolongada.

Rápida (algoritmo genético)

Este tipo de optimización se basa en el algoritmo genetico de selección de los mejores valores de los parámetros de entrada. Este tipo es mucho más rápido que el repaso completo de parámetros y prácticamente no le cede en calidad. La optimización con repaso completo que podría durar unos años se lleva a cabo en unas horas utilizando el algoritmo genético.

Cada ejemplar tiene un determinado conjunto de genes que corresponde al conjunto de sus parámetros. La optimización genética se basa en la selección permanente de los parámetros más "acomodaticios" (valores que proporcionan el mejor resultado final). En forma general, este algoritmo se puede presentar de la siguiente manera:

  • Del número total de posibles combinaciones de los parámetros se escoge de forma casual dos poblaciones (especies);
  • Se hace la prueba de ambas especies, quedándose sólo una que tiene los mejores resultados (según el criterio de optimización);
  • Los miembros de esta especie se cruzan entre ellos de forma aleatoria, sufriendo mutaciones casuales e inversiones de parámetros;
  • Los descendientes se seleccionan según los mejores resultados y el cruzamiento se repite;
  • Las operaciones de selección y cruzamiento continúan hasta que haya la mejora de resultados (el mejor resultado entre los descendientes supera el mejor resultado entre los padres). Para finalizar la optimización, hay que conseguir la falta de mejoramiento de criterio de optimización a lo largo de varios cruzamientos (generaciones).

Número de pasos de simulación

Durante la optimización genética el número de pasos de la prueba es mucho más bajo, gracias a eso se consigue una optimización rápida. Después del inicio de la optimización genética, en la pestaña "Opciones" se muestra la cantidad estimada de pasos de prueba a realizar. Se utiliza la siguiente fórmula para calcularla:

Tamaño de población * (Número incondicional de generaciones + Número de generaciones para estimar la convergencia)

aquí:

  • Tamaño de población – se calcula a base del número de posibles combinaciones de parámetros optimizados, y puede adquirir valores de 64 a 256;
  • Número incondicional de generaciones – puede adquirir valores de 15 a 31. Se determina por la presencia de la mejora del criterio de optimización. 15 generaciones siempre se someten a la prueba. Si en una de las generaciones en el intervalo de 15 a 31 no se ve la mejora del criterio de optimización, se pone en marcha la simulación adicional de siguientes generaciones para estimar la convergencia.
  • Número de generaciones para estimar la convergencia – el número de estas generaciones se calcula como la tercera parte del número incondicional de generaciones. Si el número incondicional de generaciones es igual a 18 (en la generación 17 ha habido el resultado mejor y en la 18 no han habido mejoras), entonces se prueban de forma adicional 5 generaciones más: en la generación 18 ya no han habido mejoras, y para comprobar la convergencia, se requiere la falta de mejoras en 18/3 = 6 generaciones. La simulación se finaliza si en el transcurso del número incondicional de generaciones no se han visto mejoras.
  • Si el número total de pasos de optimización sobrepasa 1 000 000 en un sistema de 32 bits o 100 000 000 en el de 64 bits, automáticamente se activa el modo de la optimización genética.
  • Durante la optimización genética los resultados intermedios se guardan en la caché una vez finalizado el cálculo de cada una de las generaciones (archivo carpeta_de_datos_de_plataforma/tester/cache/*.gen). Así, el proceso de la optimización genética se puede interrumpir en cualquier momento. Incluso si el proceso de la optimización genética será interrumpido por razones externas (por ejemplo, el corte de luz), la optimización se continuará automáticamente desde la última generación ya calculada en el momento del siguiente arranque del programa. La caché de la optimización genética se almacena hasta la modificación de los ajustes de optimización o hasta la finalización del proceso de optimización.
  • En caso de parada reglamentaria del proceso de optimización (mediante el botón "Parada") se guardan todos los repasos calculados anteriormente. Cuando la optimización se renueva, el proceso va a continuar desde el momento de la parada.

Criterio de optimización #

El criterio de optimización es un indicador cuyo valor determina la calidad del conjunto de parámetros de entrada que se somete a prueba. Cuanto más grande sea el valor del criterio de optimización, mejor se considera el resultado de prueba con este conjunto de parámetros. Este indicador se puede seleccionar en la pestaña "Configuración", a la derecha del campo "Optimización".

El criterio de optimización se requiere sólo para el algoritmo genético.

Están disponibles los siguientes criterios de optimización:

  • Saldo máximo – este indicador de optimización es el valor máximo del saldo.
  • Rentabilidad máxima – el indicador supone el valor máximo de rentabilidad.
  • Máximo beneficio esperado – el indicador supone el beneficio esperado.
  • Reducción mínima – en este caso, se tiene en cuenta la disminución relativa en tanto por ciento.
  • Máximo factor de recuperación – el indicador supone el factor de recuperación.
  • Máximo ratio de Sharpe – el indicador supone el ratio de Sharpe.
  • Criterio de optimización personalizado – si selecciona este parámetro como criterio de optimización, se va a tomar en consideración el valor de la función OnTester() en el EA. Este parámetro permite al usuario utilizar cualquier indicador personalizado para la optimización.

Asimismo, está disponible el "Máximo Criterio de Usuario". Se trata de un indicador compuesto sobre la calidad de las pasadas de optimización. Este tiene en cuenta varios parámetros al mismo tiempo:

  • Número de transacciones
  • Reducción
  • Factor de recuperación
  • Máx. esperanza matemática
  • Ratio de Sharpe

Este criterio permite entender que el valor máximo de un parámetro (por ejemplo, el beneficio) no siempre representa la mejor opción desde el punto de vista del análisis complejo. El criterio permite seleccionar paulatinamente las mejores pasadas: primero según el número de transacciones, después según la esperanza matemática de esta muestra, y luego según el factor de recuperación, etcétera. De esta forma, como resultado de la optimización, usted obtendrá las mejores pasadas según todos los parámetros, pudiendo seleccionar después alguna pasada concreta, por ejemplo, la que tenga mayor beneficio.

Todos los símbolos seleccionados en la ventana "Observación del Mercado"

A diferencia de dos tipos anteriores, este modo de optimización permite hacer pruebas del EA con los mismos parámetros de entrada pero en diferentes símbolos. Con cada paso de optimización se cambia sólo el símbolo principal de prueba del EA, en otras palabras, se cambia el símbolo del gráfico al que estaría adjuntado este EA.

En la optimización participan sólo aquellos símbolos que en este momento están seleccionados en la ventana "Observación del Mercado". De esta manera, modificando el conjunto de símbolos seleccionados se puede controlar la optimización.

  • Hay que tener en cuenta que carga de los datos de precios necesarios desde el servidor al terminal puede tomar bastante tiempo. Sin embargo, la relentización del proceso de optimización debida a la carga de datos sucede sólo cuando este proceso se inicia por primera vez en el símbolo. Posteriormente se bajan sólo los datos que faltan.
  • Durante la optimización en los símbolos se utilizan los valores actuales de los parámetros de entrada especificados en la columna "Valor".