¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
arruinao
Mensajes: 735
Registrado: 26 Abr 2005 18:32

¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por arruinao »

Abro este hilo para que comentéis las incidencias que observéis en la nueva actualización de MT4, la Build 600.

En mi caso, de momento he visto dos cosas y ambas afectan a las Pruebas de Estrategia. En los informes de resultados, en la linea de parámetros, los de tipo texto los presenta en notación decimal. Es decir, en vez de "OPEN" aparece 5555..., por ejemplo.

Una segunda incidencia, y esta la considero muy grave, es que al lanzar una estrategia que siempre corrió sin problemas, un buen dia se cuelga y hay que cerrar MT4 y vover a abrir. A partir de este momento, cada vez que intento usar el Strategy Tester se cuelga.

Me ha ocurrido en 3 cuentas distintas de dos Brokers. Dos en cuentas reales y una en demo. Intentaré reinstalar la demo, pero me temo que esta versión va a ser problemática. Llevo usando MT4 desde hace unos cuantos años y nunca había tenido problemas de este tipo.

S2
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12798
Registrado: 06 Sep 2004 10:18
Contactar:

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por X-Trader »

Hola arruinao, has probado a pasar a la 610? Han corregido muchos bugs en esa versión y parece que va más fino.

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
arruinao
Mensajes: 735
Registrado: 26 Abr 2005 18:32

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por arruinao »

Hace cuatro días que ha salido la 600 y ya han sacado otra?.

Muchas gracias X, probaré a ver. De todas formas no suelo cambiar de versión hasta que está suficientemente testada, pero esta vez los Broker nos han "obligado". De la 601 es la primera noticia que tengo, ¿no estará todavía en período de prueba?, aunque a mi me da igual. Menos mal que el problema afecta únicamente al Simulador, pero una vez que se cuelga, olvídate porque no vuelve a funcionar.

Aclarar que las cuentas siguen funcionando bien en cuanto a operativa.

S2
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12798
Registrado: 06 Sep 2004 10:18
Contactar:

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por X-Trader »

Sí, parece ser que sacaron dos versiones después de la 600, parece que la última (la 610 del 14 de febrero) va fina ya (desde luego la 600 daba fallos por muchos sitios, sobre todo con los EAs).

En fin pruébala y dime si se soluciona el problema.

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
arruinao
Mensajes: 735
Registrado: 26 Abr 2005 18:32

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por arruinao »

Instalada versión 610 y problema nada más arrancar, pero me ha permitido ver cual es el problema. Como no tenia histórico, hice copy/paste desde otra cuenta y cuelgue. Conclusión, para trasvasar históricos hay que usar el cauce reglamentario importándolos.

Un saludo y gracias.

MARTINGALA
Mensajes: 189
Registrado: 10 Mar 2011 17:52

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por MARTINGALA »

Con la nueva version 6XX he detectado anomalias en el funcionamiento de los EAs que antes me funcionaban bien, y todas se podrian achacar a un cambio que han hecho ( es una conclusion despues de horas y pruebas realizadas) e incluso ese cambio se ve plasmado en la barra de heramientas, antes habia un icono de Asesores Expertos y ahora le denominan Autotrading.

En las Mt4 antigua cuando ponias en off el icono EA, el experto dejaba de ejecutarse en cada nuevo tick y quedaba totalmente congelado, los datos internos (variables, arrays, etc) se quedaban con el ultimo valor, los mensajes evolutivos que pueden tener tambien se quedaban congelados, ahora no...conclusion el codigo del EA se sige ejecutando con la escepcion de que las ordenes que deberian ser enviadas a mercado no lo son, se comporta del mismo modo que si hubieramos deshabilitado el "Permiso operaciones en directo", opcion presente en la pestaña Comun del Experto.

Con la nueva estructura de la Mql4 ya no ocurre esto con los EAs antiguos tal cual estan programados, otra cosa es si han sido actualizados al nuevo modo de funcionar por eventos (herencia del Mql5) que seguramente se puede evitar esos inconvenientes. De no haber hecho estos cambios en la programacion del EA nos encontraremos con desagradables sorpresas, la mas normal es que despues de haber arrancado la Mt4 con el/los EAs que tenga instalados y teniendo el icono Autotrading a Off durante un periodo de tiempo, por ejemplo lo hemos parado para evitar una hora de noticias, nada mas pasado a ON se pueden enviar operaciones a mercado que han quedado memorizadas mientras el EA estaba en OFF, operaciones que qeriamos evitar y que ahora no es posible mientras no apagemos la MT4.
No se si estoy totalmente en lo cierto sobre este nuevo modo de funcionamiento, pero esto es lo que he observado y despues de leer alguna notas sobre los cambios en la nueva MT4, estas son las explicaciones plausibles de lo que esta pasando en las entrañas de la MT4.
Me interesa saber si hay disponible alguna informacion sobre estos temas y mejor en español, algo similar al manual antiguo de MQL4 que esplicaba el funcionamiento interno de la MT4. Tambien como deberia reprogramar el codigo de los EA para evitar estos problemas, no me gustaria perder tiempo con ensayo y error si hay algun docu que explique esto.
carlessan
Mensajes: 17
Registrado: 02 Nov 2011 18:16

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por carlessan »

Hola Martingala,
Esto lo puedes hacer de forma simple con solo programar un parámetro en los expertos que te active/desactive la ejecución del EA.
Con una variable externa booleana tienes suficiente, y después la comparas en el Start() o en el OnTick() según tengas, para que tu experto trabaje o no.

Con esta simple opción podrás hacer que tu experto pare su ejecución sin necesidad de fiarte del Autotrading del meta.

Inconveniente: Al acceder a la ventana de parámetros del Ea, los valores anteriores de las variables se resetean y partirás de cero, como si acabaras de arrancar el EA, aunque en la mayoría de los casos eso no afecta (según sea cada experto).

Salu2
MARTINGALA
Mensajes: 189
Registrado: 10 Mar 2011 17:52

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por MARTINGALA »

Gracias Carlessan.
He estado rebuscando en la nueva documentacion y la solucion mas acorde con el funcionamiento de la MT4 sera utilizar la siguiente funcion que tambien es de la antigua version:

IsExpertEnabled

Checks if Expert Advisors are enabled for running.

bool IsExpertEnabled();

Returned value

Returns true if Expert Advisors are enabled for running, otherwise returns false.

Example:

while(!IsStopped())
{
...
if(!IsExpertEnabled()) break;
}

Por lo tanto la usare al inicio del codigo, testando si el Autotrading esta en OFF entonces romper la ejecucion del resto de codigo de programa; lo mas seguro le pondre un return (0) para no tener que meter mas codigo en el EA y dejarlo tal cual era.
Ademas de este modo se comportara de una manera mas fiel al modo antiguo de la MT4.
Si alguien sabe de que modo lo hacen los de Metaquotes lo comente y si hay algun EA prototipo pues mejor.
Todo esto me provoca que tengo que leer la nueva docu sobre la MT4 y su nueva filososfia de trabajo por eventos, sobre todo los detalles de inicializacion, deinicializacion y los diversos tipos de eventos que ahora disponemos para ejecutar un EA, antes era por puro nuevo tick de precios, por lo tanto era dificil incluso mostrar un simple reloj verlo correr segundo a segundo sin utilizar argucias de programacion o una DLL.
MARTINGALA
Mensajes: 189
Registrado: 10 Mar 2011 17:52

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por MARTINGALA »

Hoy es para comentaros un nuevo fallo de la MT4 versiones 6XX.

Hace unos dias, despues de hacer unos añadidos de codigo en un EA, he visto que a pesar de darse las condiciones de señal para abrir una orden el EA no lo hizo, inicialmente pense que era debido a condicones del momento (volatilidad, spread, ...) por eso le hice un BT y me sorprendio ver que tampoco abria ninguna orden, ni poniendo las condicones de mercado a webo ( spread 0, bajar el nivel de disparo de la señal) no abria la orden.

Seguidamente hice el BT con la version anterior del EA que lleva años funcionando y que esta compilado con MT4 v 509 y si que lo hizo bien, como se esperaba que lo hiciera.

Visto el resultado, compile el EA modificado con el compilador de la version 509, le hice BT y funciono correctamente abriendo las mismas ordenes que la version antigua del EA.

Ahora me queda investigar cual es el motivo que con la version 646 del compilador funcione de otra manera, tengo una pista de un Warning que da el compilador 646 y que no da el compilador 509:
check operator precedence for possible error; use parentheses to clarify precedence .

El nuevo compilador a ampliado las reglas de sintaxis, como por ejemplo que un return debe devolver un valor o que una funcion no void al ser llamada debe ser asiganada a una variable....., no es un error pero si lo indica como un posible motivo a un mal funcionamiento; para fiabilizar al maximo lo mejor es que desspues de compilar el resultado sea 0 errores y 0 warnings, asi estaremos seguros de que no habra un mal funcionamiento, nunca tendremos la certeza absoluta porque todo software tiene sus bugs, motivo por el cual ya van en la version 646...
carlessan
Mensajes: 17
Registrado: 02 Nov 2011 18:16

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por carlessan »

Hola Martingala,

El warning: check operator precedence for possible error; use parentheses to clarify precedence

Es porque seguramente en alguna de las funciones de decisión de tu EA, es necesario poner mejor los paréntesis para aclarar al compilador el orden de ejecución de la sentencia. (normalmente un IF)

Te pongo un ejemplo para que veas su uso:

La siguiente sentencia daría un warning al compilar:

if (A==B || B==C && C==F)

La misma sentencia más clarificada para el compilador de la 600, sería:

if ((A==B || B==C) && C==F)

Es cuestión de usar los paréntesis para establecer el orden de ejecución de la sentencia

Espero que te sirva
Salu2
MARTINGALA
Mensajes: 189
Registrado: 10 Mar 2011 17:52

Re: ¿PROBLEMAS CON LA NUEVA VERSION 600 DE MT4?

Mensaje por MARTINGALA »

Gracias Carlessan por tu comentario, eso ya lo tenia solucionado, simplemente lo puse como ejemplo de mensaje warning que tenia y que no deberia dar ningun problema, de hecho hace años lo tengo sin parentesis y funciona como tiene que funcionar, pero estos srs de Metaquotes nunca se sabe lo que estan haciendo con tantas versiones de MT4 parece que estan compitiendo con Microsoft para ver quien es el campeon de bugs ....

En estos momentos creo que tengo trazado y acotado el fallo, en este caso es que un indicador no devuelve el valor a vela [0] de la misma manera que el programa compilado con version 509, todas las condiciones que disparan la señal de sell, en este caso, se cumplen a escepcion de esta señal que devuelve un indicador y que no supera el nivel prefijado, pero visualizando la grafica del indi si que supera con creces..y esto si que ya me desconcierta mas todavia.

No es cuestion de refrescar datos con RefreshRates( ) que ya lo probe, por si suena la flauta... si alguien tiene alguna idea para probar le agradezco que la comente.

Desde que ha sucedido esta rareza, los EAs que estoy desarrollando los estoy recompilando con la version 509, alguno ya he comprobado que los resultados que obtenia con la 6XX no me satisfacian y probare con la 509 para ver si hay diferencia de resultados.

Que sirva este comentario para que si alguien le ha sucedido algo parecido no tire con lo que ha programado al ver que los resultados no son los deseados y lo contraste con el mismo EA compilado en version 5XX, puede que se encuentre ante una situacion similar.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”