Discusión sobre el artículo "Optimización móvil continua (Parte 5): Panorámica del proyecto del optimizador automático, creación de la interfaz gráfica" - página 2

 
Andrey Azatskiy:

Los marcos son todo un mecanismo con un conjunto de métodos para trabajar con ellos.

Todo lo contrario: habrá un poco de hemorroides. Sólo un par de líneas de código. Puede escribir una clase en un archivo de complemento. Sólo tendrá que escribir OnNester() y OnTesterDeinit() en el Asesor Experto. FrameInputs() mostrará todas las entradas del experto en un array de cadenas. Es posible cambiar sus valores para la siguiente pasada. Si lo desea, puedo esbozar un ejemplo. Pero no soy bueno en OOP todavía.

 

Traté de ejecutar el optimizador automático y esto es lo que salió:

1. Idea: ¿Por qué no hacer ASSET nombre como una lista, de modo que la optimización se puede hacer en la lista de herramientas.

2. Por favor, añada alturas para la cadena con el período de optimización. Años, meses se cortan

calendario

3 La optimización no se inicia. Cuando se ejecuta desde el terminal también. Se producen errores:

errores

dll está compilado y ubicado en la carpeta Libraries. El metaeditor no ha generado ningún error de compilación.
 
Good Beer:

Traté de ejecutar el optimizador automático y esto es lo que salió:

1. Idea: ¿Por qué no hacer ASSET nombre como una lista, de modo que la optimización se puede hacer en la lista de herramientas.

2. Por favor, añada alturas para la cadena con el período de optimización. Años, meses se cortan

3 La optimización no se inicia. También cuando se ejecuta desde el terminal. Se lanzan errores:


dll está compilado y ubicado en la carpeta Libraries. El meta-editor no generó ningún error de compilación.


Voy a corregir la lista de activos - no pude encontrar una manera de obtenerlo desde el terminal de una manera adecuada, por lo que por ahora la versión de texto
En cuanto a la dll - sólo que no ha habilitado la carga de dll (se hace en la configuración del terminal ).

Buena cerveza:

Todo lo contrario: será un poco lioso. Sólo un par o tres de líneas de código. Puedes escribir una clase en un archivo de complemento. Sólo tendrá que escribir OnNester() y OnTesterDeinit() en el Asesor Experto. FrameInputs() mostrará todas las entradas del experto en un array de cadenas. Es posible cambiar sus valores para la siguiente pasada. Si lo desea, puedo esbozar un ejemplo. Pero no soy bueno en OOP todavía.

El programa ya está diseñado para archivos xml, así que no quiero reescribir sus aspectos clave. En cuanto a las entradas - voy a estudiar la opción que fxsuber sugirió y posiblemente automatizarlo.

 
Andrey Azatskiy:
Lista de activos - opción de texto por ahora

¿Es posible escribir sólo comas?

 
Good Beer:

¿Es posible escribir sólo una coma?

No, debe introducir el activo específico en el que se va a iniciar el proceso de optimización.

 

Me las arreglé para ejecutar la optimización, hasta ahora sin filtrar. Sólo para la prueba, una pasada con la clasificación por payoff. Luego hice clic en la línea de resultados en la historia. Mira los diferentes resultados entre el probador y el auto-optimizador:

resultado de la prueba

La configuración de la EA en el pase eran completamente los mismos. ¿Qué está mal aquí? Y tenga en cuenta: usted tiene dos días de toro en una semana (indicado por una flecha).

 
Good Beer:

Me las arreglé para ejecutar la optimización, hasta ahora sin filtrar. Sólo para la prueba, una pasada con la clasificación por payoff. Luego hice clic en la línea de resultados en la historia. Ver cómo los resultados son diferentes entre el probador y el auto-optimizador:

La configuración de la EA en el pase eran completamente los mismos. ¿Qué está mal aquí? Y preste atención: usted tiene dos días de toro en una semana (indicado por la flecha).

La prueba se realizó en minutos o en ticks reales (dependiendo del modo que haya elegido en el botón GUI de configuración del optimizador). Y realizó la prueba haciendo doble clic en el modo de simulación de ticks (desplegable en el primer tercio de la pantalla). sólo esto puede afectar a la diferencia de resultados. Además, el factor de recuperación no coincidirá con lo que aparece en el terminal, porque el auto optimizador lo cuenta por el PL fijo, mientras que el terminal lo cuenta por la variación (gráfico verde - terminal, gráfico azul - auto optimizador). Respecto a los días de beneficio/pérdida - no veo lo que has reflejado en la captura de pantalla en el terminal.

Además, ten en cuenta que el beneficio/pérdida por día se calcula como un valor medio del día, no como una cantidad absoluta.

Cuando yo lo ejecutaba, el gráfico y los indicadores de beneficio/pérdida coincidían. En el segundo artículo describí cómo se calculan los indicadores.

 

Sólo va a volver a calcular en ticks reales, terminal actualizado. La optimización no se inicia, se produce un error. Permiso DLL en la configuración no se rompió. Parece una sorpresa de MQ.

error de nuevo

error

PL==profit? De todos modos la diferencia es demasiado grande para el modelado de ticks. Si el auto optimizador funciona de nuevo, voy a volver a calcular. Aquí hay una razón para la localización rusa - no todos los análogos de valores son claros.

Mencioné los días de ganancias/pérdidas porque tienes un error en la interfaz. La flecha está apuntando. ¿Y dónde están esos "gráficos azul y verde"?

 
Good Beer:

Estaba a punto de recalcular en ticks reales, el terminal se actualizó. La optimización no se inicia, se produce un error. Permiso DLL en la configuración no se rompió. Parece ser una sorpresa de MQ.


¿Payoff==profit? ¿O es PL? En cualquier caso la diferencia es demasiado grande para el modelado de ticks. Si el optimizador automático funciona de nuevo, voy a volver a calcular. Aquí hay una razón para la localización rusa - no todos los análogos de valores son claros.

Mencioné los días de ganancias/pérdidas porque tienes un error en la interfaz. La flecha está apuntando. ¿Y dónde están esos "gráficos azul y verde"?

PL - beneficio, y Payoff - coeficiente, en el segundo artículo (o en el tercero) escribí la fórmula que uso para calcularlo. No planeo hacer la localización, no hay tanto Inglés allí, además MetaQuotes traducir artículos y colegas extranjeros tendrán una sorpresa mucho mayor si el programa se abre en nuestro idioma)
lo comparé y todo funcionaba. Algunas cosas podrían ir mal si usted tiene una cuenta de cobertura, pero no creo que debería haber tales errores. Sólo porque el comercio en los mercados de valores - He probado todo en el terminal con el sistema de compensación de cálculo (que está en los mercados de valores), y aunque hice la contabilidad de la cuenta de cobertura, pero no hubo oportunidad de comprobar todo en detalle, pero las pruebas en la cuenta de cobertura de demostración que corrió cuando escribí una clase que lleva todos los cálculos.

En cuanto a la carga dll - cerrar el terminal, ejecutarlo como de costumbre y no a través de optimizador automático y ver si se permite la carga de la biblioteca y si la prueba se está ejecutando. Si todo está bien y la prueba se ejecuta, entonces el auto optimizador será capaz de trabajar. Y sí, usted no será capaz de utilizar mi programa en la optimización de la nube, porque no se puede cargar bibliotecas dll a la nube.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...
 
Andrey Azatskiy:

Respecto a la carga de dlls - cierra el terminal, ejecútalo como siempre y no a través del auto optimizador y comprueba si se permite la carga de librerías y si el test se ejecuta. Si todo es normal y la prueba se ejecuta, entonces el auto optimizador será capaz de trabajar. Y sí, no podrás usar mi programa en la optimización en la nube, porque no puedes cargar librerías dll en la nube.

Ya he encontrado la fórmula de pago, no he tenido tiempo de arreglarlo - responde rápidamente. Las capturas de pantalla de error se toman desde el terminal. No se ejecuta la prueba. No necesito la nube, simplemente no tenía tal error antes. La cuenta es realmente una cuenta de cobertura. Pero antes de la actualización del terminal, hace una hora, todo funcionaba.