¿Qué diablos está pasando?

 

Se trata una vez más del probador/optimizador...

Se han observado discrepancias en los resultados de la optimización y de la prueba única. Reinicié el terminal, cambié la configuración (para estar seguro). Comenzó la optimización.

Hice una sola prueba...

¿Cómo puede ser? ¿De dónde viene esta tontería?

 

¿Ha garantizado que la lógica de su código es la misma en ambos casos?

No en el sentido de "no he cambiado el código", sino para garantizar que el comportamiento técnico y lógico del robot no cambia.

Este tipo de reclamación requiere dar todos los detalles técnicos posibles, incluyendo la lógica y las condiciones de repetición. Además de sus propios intentos de comprender y reunir más información. El programa es suyo.

Gritar "escribí algo aquí, no lo entendí, no describí los detalles, sólo quiero expresar mi indignación porque creo que mi programa, que no sé cómo funciona, fue de alguna manera mal manejado por alguien" es inútil.

 
Cuando era joven y verde, solía ejecutar el optimizador, ahora hace varios años que no se optimiza, basta con un probador para entender, y el optimizador nos alimenta de ilusiones
 
Aleksey Semenov:
Solía ejecutar el optimizador cuando era joven y verde, y ahora no lo ejecuto desde hace varios años, porque el probador sólo necesita entender, y el optimizador sólo nos alimenta de ilusiones.

El optimizador tiene una tarea clara: comprobar el campo de opciones y dar un conjunto de parámetros para la función definida por el operador.

Se trata de una tarea técnica y ha hecho y hace un gran trabajo.

Hay que controlar la calidad y la robustez de los robots.

 
Renat Fatkhullin:

El optimizador tiene una tarea clara: comprobar el campo de opciones y dar un conjunto de parámetros para la función definida por el operador.

Se trata de una tarea técnica y ha hecho y hace un gran trabajo.

Hay que controlar la calidad y la robustez de los robots.

He borrado todas las cachés. Repite la prueba de optimización. El resultado es el mismo. Discrepancias claras.

Por supuesto, no soy un Asesor Experto, pero no entiendo por qué el optimizador tiene un 100 cuando utiliza los parámetros 3, 5, 20 y la prueba con los mismos parámetros muestra -20....

La lógica de EA en el optimizador y en el probador es la misma. El hardware es el mismo. ¿Qué y cómo debo hacer para obtener esa diferencia en los resultados?

Renat Fatkhullin:

¿Y ha garantizado que la lógica de su código no cambiará en ambos casos?

No en el sentido de "no he cambiado el código", sino en el de garantizar un comportamiento sin cambios en los niveles técnico y lógico del robot.

Este tipo de reclamación requiere dar todos los detalles técnicos posibles, incluyendo la lógica y las condiciones de repetición. Además de sus propios intentos de comprender y reunir más información. El programa es suyo.

Gritar "escribí algo aquí, no he investigado, no he descrito los detalles, sólo quiero expresar mi indignación porque creo que mi programa, que no sé cómo funciona, fue de alguna manera mal manejado por alguien" es inútil.

¿Asesoría sobre cómo detectar esta "variabilidad" entre la optimización y la prueba?

Mañana publicaré los registros. Voy a limpiar todo y hacer la optimización y la prueba. Recuerdo su lección )))) Estaré muy atento.


Mientras tanto, ¡¡¡feliz Gran Victoria para todos!!!

Voy a celebrar ))))

 
Сергей Таболин:

Eliminado todos los cachés por completo. Repite la prueba de optimización. El mismo resultado. Discrepancias claras.

Por supuesto, no soy un experto, pero no entiendo por qué el optimizador tiene un resultado de 100, mientras que la prueba con los mismos parámetros muestra -20....

La lógica del EA en el optimizador y en el probador es la misma. El hardware es el mismo. ¿Qué tengo que hacer para obtener esa diferencia en los resultados?

Por favor, aconséjeme cómo detectar esta "variabilidad" entre el optimizador y el probador.

Mañana publicaré los registros. Voy a limpiar todo y hacer la optimización y la prueba. Recuerdo su lección )))) Estaré muy atento.


Mientras tanto, ¡¡¡feliz Gran Victoria para todos!!!

Voy a celebrar ))))

Hay un pequeño hilo en la sección de inglés donde un usuario está preguntando lo mismo.
Su optimización y backtest son iguales para todos sus EAs (todo está bien), pero un EA es igual al tuyo.
Dio el resultado de backtest - se puede mirar (le di una idea a simple vista - por qué es la diferencia).

No dio el código, pero está claro que la razón está en la lógica (en el código) de su EA (porque dijo que no tenía esos problemas con todos sus otros EAs - ver su último post en el hilo): https://www.mql5.com/en/forum/338047
 
Basta con olvidarse de inicializar algo en el código y habrá una diferencia. Comprueba el código.
 
Andrey Barinov:
Puede que simplemente te olvides de inicializar algo en tu código y haya una diferencia. Comprueba el código.

Hace tiempo que hice variantes de prueba, realmente había basura en las variables, ¿el desarrollador venció esto al principio con su propio esfuerzo? Después de todo, si hay basura en el medio del código, debería ser siempre igual, ¿no?

No soy un programador profesional, es una pregunta, no conozco el principio de la programación de bajo nivel

 
Sergey Golubev:
Hay un pequeño hilo en la sección de inglés donde un usuario está preguntando lo mismo.
Su optimización y backtest en todos sus EAs coincide (todo está bien) y un EA es como el tuyo.
Dio el resultado de backtest - se puede mirar (le di una idea a simple vista - por qué es la diferencia).

No dio el código, pero está claro que la razón está en la lógica (en el código) de su EA (porque dijo que no tenía tales problemas con todos los otros EAs - ver su último post): https://www.mql5.com/en/forum/338047

Todo es igual que el mío ))))

Andrey Barinov:
Sólo tienes que olvidarte de inicializar algo en el código y habrá una diferencia. Comprueba el código.

¿Cómo es eso? Es lo mismo allí y allí. ¿Cómo puede haber una diferencia? Sobre todo porque prácticamente todos los datos se inicializan en un bucle. Y si algo no se inicializa allí, se sale con un error.

Fast235:

Hace mucho tiempo que hice variantes de prueba, había basura en las variables, ¿el desarrollador no derrotó esto al principio por sus propios esfuerzos? Al fin y al cabo, en medio del código si puede haber basura, debería ser siempre la misma, ¿no?

No soy un programador profesional, es una pregunta.

Ese es exactamente mi punto de vista. Debe ser el mismo en ambos casos. Incluso si tengo un error en alguna parte, debe estar en todas partes. Pero resulta que este defecto (el mío) se corrige por arte de magia. Pero no está absolutamente claro dónde... Ya sea en el optimizador, o en el probador....


Lejos de la mesa festiva por un momento )))))))))))

 
Сергей Таболин:

Todo es igual que el mío ))))

¿Cómo es eso? Es lo mismo allí y allí. ¿Cómo puede haber una diferencia? Sobre todo porque prácticamente todos los datos se inicializan en un bucle. Si hay algo que no está inicializado, obtendrá un error.

Eso es lo que quiero decir. Debe ser el mismo en ambos casos. Incluso si hay un error en algún lugar, debe estar en todas partes. Pero resulta que este defecto (el mío) se corrige por arte de magia. Pero no está absolutamente claro dónde... Ya sea en el optimizador, o en el probador....


Lejos de la mesa navideña por un momento )))))))))))

Me refería a las variables, cuando ejecutas el script y en lugar de 0 contienen los datos de la última ejecución o algo así, no recuerdo, fue hace como 5 años o algo así

y en el probador más probable es que de nuevo tiene en algún lugar de matiz, que por cierto dice que MQ que necesita ser mejorado, yo personalmente no me gusta todo en el probador, la interfaz para ejecutar no le gusta

 
Сергей Таболин:

Todo es igual que el mío ))))

¿Cómo es eso? Es lo mismo allí y allí. ¿Cómo puede haber una diferencia? Sobre todo porque prácticamente todos los datos se inicializan en un bucle. Y si algo no está inicializado - salida con un error.

...

Le di a ese camarada de la sucursal una idea de por qué tiene una diferencia en este EA.
Después de todo, cuando el backtest termina (en el momento de la finalización del backtest), todas las posiciones abiertas se cierran forzosamente (sólo en el probador).
Si acabara de negociar, no estarían cerrados en ese momento.

Por lo tanto, aquí para él -

  • O la optimización de la confianza (que en su caso es preferible),
  • o ignorar el cierre forzado de las posiciones abiertas en el mejor de los casos sólo antes de que termine, pero entonces no obtendrá dígitos,
  • o elegir un intervalo de tiempo para el backtest con los mismos parámetros de optimización, cuando el EA cerrará todas las posiciones antes del final del backtest (eligiendo ...), y entonces creo que será lo mismo.
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...