Necesito ayuda de los desarrolladores y programadores de MT4

 

Hola.

Las nuevas versiones del terminal MT4 no desinicializan y reinicializan los EAs cuando el usuario cambia los valores de los parámetros de entrada. Esto lleva a una incompatibilidad fundamental de los EAs existentes con las nuevas construcciones de MT4. La incompatibilidad se produce en los EAs más optimizados en los que todos los cálculos simples se colocan en el bloque init().

Incluso llega a ser ridículo: para garantizar la sustitución del valor de algún parámetro de entrada, el usuario debe sacar el Asesor Experto del gráfico y volver a ponerlo. (No he probado a cargar los parámetros de un archivo SET con un botón, pero sospecho que es equivalente a sustituir los valores de los parámetros manualmente).

Pido a los desarrolladores de MT4 que vuelvan a llamar a las funciones deinit(), init() con sentido común.

Sinceramente.

PS Si alguien conoce el mecanismo de determinación programática del momento y el hecho de cambiar los valores de los parámetros de entrada por el usuario, por favor escriba sobre ello aquí.

 
al menos mostrar el rifle como prueba.
 

Versión: 4.00 Build 670

(4 jul 2014)

 
Wex:


Las nuevas versiones del terminal MT4 no desinicializan y reinicializan los EAs cuando el usuario cambia los valores de los parámetros de entrada. Esto lleva a la incompatibilidad principal de los EAs existentes con las nuevas construcciones de MT4. Los Asesores Expertos más optimizados, en los que todos los cálculos individuales se colocan en el bloque init(), están sujetos a incompatibilidad.

Los tengo. Construye 670. Compruebe con impresoras simples.
 
Wex:

Hola.

Las nuevas versiones del terminal MT4 no desinicializan y reinicializan los EAs cuando el usuario cambia los valores de los parámetros de entrada. Esto lleva a una incompatibilidad fundamental de los EAs existentes con las nuevas construcciones de MT4. La incompatibilidad se produce en los EAs más optimizados en los que todos los cálculos simples se colocan en el bloque init().

Incluso llega a ser ridículo: para garantizar la sustitución del valor de algún parámetro de entrada, el usuario debe sacar el Asesor Experto del gráfico y volver a ponerlo. (No he intentado cargar los parámetros de un archivo SET con un botón, pero sospecho que es equivalente a sustituir los valores de los parámetros manualmente).

Pido a los desarrolladores de MT4 que vuelvan a llamar a las funciones deinit(), init() con sentido común.

Sinceramente.

PS Si alguien conoce el mecanismo de determinación programática del momento y el hecho de cambiar los valores de los parámetros de entrada por parte del usuario, por favor escriba sobre ello aquí.

Esto es una táctica de los creadores de mercado :-7 para desinflar los EAs establecidos
 
IvanIvanov:
Se trata de una estratagema de los creadores de mercado :-7 para desinflar a los asesores establecidos
+
 
¿No es posible reescribir el EA?
 

PS. (No parece que sea un gran trabalenguas en el foro). EA adjunta. Prueba a cambiar el valor del parámetro A1 o A2 sobre la marcha. El tiempo "pasa" y el EA no "ve" los nuevos valores de los parámetros. Aunque puede hacer que se inicialice pulsando dos veces el botón "AutoTrading". Por supuesto, esto es más rápido que sacar el EA del gráfico y volver a instalarlo. Sin embargo, es algo ilógico. Sin embargo, es usted quien debe decidir.

Por supuesto, es mucho más fácil para mí hacer cambios en mi Asesor Experto que esperar junto al mar. Por lo tanto, volveré a hacer una simple pregunta. ¿Alguien sabe cómo obtener información sobre un usuario que ha cambiado el valor de un parámetro de entrada sobre la marcha? Me refiero al hecho de que el valor ha cambiado y al punto en el tiempo.

Realmente las nuevas construcciones de la terminal MT4 son mucho mejores que las más antiguas. El valor del parámetro se modifica en este caso cuando se ejecuta la función Sleep(). Esto sí que es un progreso. Las antiguas construcciones no permitían cambiar los valores en absoluto, o más bien ni siquiera permitían al usuario obtener la ventana con los parámetros de entrada. Les he dicho a los clientes que primero deben desactivar los EAs usando el botón del panel de la terminal, cambiar sus parámetros y luego activar los EAs de nuevo. Pero ahora el usuario no tiene obstáculos, tiene la ilusión de que los parámetros de entrada han sido cambiados. Además, el nuevo ejemplo muestra que no sólo las copias obtenidas en el bloque init(), sino también los parámetros de entrada originales no se modifican en el Asesor Experto, pero sí en la ventana de propiedades en la pestaña Entradas. La discrepancia es evidente.

Archivos adjuntos:
PROBLEM.mq4  2 kb
 
Wex:

P.D. (Parece que no soy un gran trabalenguas en el foro. EA adjunta. Prueba a cambiar el valor del parámetro A1 o A2 sobre la marcha. El tiempo "pasa" y el EA no "ve" los nuevos valores de los parámetros. Aunque puede hacer que se inicialice pulsando dos veces el botón "AutoTrading". Por supuesto, esto es más rápido que sacar el EA del gráfico y volver a instalarlo. Sin embargo, es algo ilógico. Sin embargo, es usted quien debe decidir.

Por supuesto, es mucho más fácil para mí hacer cambios en mi Asesor Experto que esperar junto al mar. Por lo tanto, volveré a hacer una simple pregunta. ¿Alguien sabe cómo obtener información sobre un usuario que ha cambiado el valor de un parámetro de entrada sobre la marcha? Me refiero al hecho de cambiar el valor y el punto en el tiempo.

Realmente, las nuevas construcciones de la terminal MT4 son mucho mejores que las más antiguas. El valor del parámetro se sustituye en este caso cuando se ejecuta la función Sleep(). Esto es progreso, por supuesto. Las antiguas construcciones no permitían cambiar los valores en absoluto, o más bien ni siquiera permitían al usuario obtener la ventana con los parámetros de entrada. Les he dicho a los clientes que primero deben desactivar los EAs usando el botón del panel de la terminal, cambiar sus parámetros y luego activar los EAs de nuevo. Pero ahora el usuario no tiene obstáculos, tiene la ilusión de que los parámetros de entrada han sido cambiados. Además, el nuevo ejemplo muestra que no sólo las copias obtenidas en el bloque init(), sino también los parámetros de entrada originales no se modifican en el Asesor Experto, pero sí en la ventana de propiedades en la pestaña Entradas. La discrepancia es evidente.

¿Intentaste utilizar razones de desinicialización?

UninitializeReason()
REASON_PARAMETERS

Tal vez estaba leyendo en diagonal... Pero yo uso ...

 
Wex:

P.D. (Parece que no soy un gran trabalenguas en el foro. EA adjunta. Prueba a cambiar el valor del parámetro A1 o A2 sobre la marcha. El tiempo "pasa" y el EA no "ve" los nuevos valores de los parámetros. Aunque puede hacer que se inicialice pulsando dos veces el botón "AutoTrading". Por supuesto, esto es más rápido que sacar el EA del gráfico y volver a instalarlo. Sin embargo, es algo ilógico. Sin embargo, es usted quien debe decidir.

Por supuesto, es mucho más fácil para mí hacer cambios en mi Asesor Experto que esperar junto al mar. Por lo tanto, volveré a hacer una simple pregunta. ¿Alguien sabe cómo obtener información sobre un usuario que ha cambiado el valor de un parámetro de entrada sobre la marcha? Me refiero al hecho de que el valor ha cambiado y al punto en el tiempo.

Realmente las nuevas construcciones de la terminal MT4 son mucho mejores que las más antiguas. El valor del parámetro se modifica en este caso cuando se ejecuta la función Sleep(). Esto sí que es un progreso. Las antiguas construcciones no permitían cambiar los valores en absoluto, o más bien ni siquiera permitían al usuario obtener la ventana con los parámetros de entrada. Les he dicho a los clientes que primero deben desactivar los EAs usando el botón del panel de la terminal, cambiar sus parámetros y luego activar los EAs de nuevo. Pero ahora el usuario no tiene obstáculos, tiene la ilusión de que los parámetros de entrada han sido cambiados. Además, el nuevo ejemplo muestra que no sólo las copias obtenidas en el bloque init(), sino también los parámetros de entrada originales no se modifican en el Asesor Experto, pero sí en la ventana de propiedades en la pestaña Entradas. La discrepancia es evidente.

El mismo código, pero sin el bucle dentro de start() funciona bien. Este debe ser el problema.
Archivos adjuntos:
PROBLEM.mq4  2 kb
 
Wex:

P.D. (Parece que no soy muy deslenguado en el foro.


Mucho.

1. El lenguaje MQL4 está dedicado a un foro especial. Este no.

2. No has leído la documentación de MQL4, ni la antigua ni la nueva