Versión beta de MetaTrader 4 IDE que incluye el nuevo compilador y editor MQL4

 

Inicio del tema:

A continuación se muestra la versión beta del IDE, la misma para MetaTrader 4/MQL4 y MetaTrader 5/MQL5. Esta es una versión preliminar para su revisión pública.

¿Cuáles son las diferencias con la antigua versión de MQL4?

  • Se ha cambiado la prioridad de las operaciones lógicas AND/OR. Ahora todo es como en C/C++ clásico.

  • Se ha introducido la evaluación abreviada de las expresiones lógicas. Ahora, al evaluar una expresión lógica, no se evalúan las restantes subexpresiones. Como en C/C++.

  • El operador de conmutación ahora sólo utiliza valores enteros. Anteriormente, se podían utilizar los reales.

  • Ahora, no se puede utilizar un punto en los nombres de las variables. Además, no puede utilizar los caracteres '@', '$', '?' en los nombres de las variables.

  • Se han endurecido los requisitos para la función de inicio. Anteriormente, se podían especificar parámetros en la función de inicio. Ahora todos los puntos de entrada init, start, deinit, OnInit, OnStart, OnTick, OnTimer, etc. deben coincidir exactamente con sus firmas

  • Debido a la expansión del conjunto de palabras clave, no podemos utilizar nombres como short, long, float, const, virtual, input, delete, new, do, char.

  • Ahora las funciones dll importadas no pueden tomar arrays de cadenas como parámetro. Como en MQL5

  • Ahora han aparecido los nombres de variables predefinidas _Periodo, _Símbolo, _ÚltimoError, _ErrorCrítico, _BanderaDeParada, _Punto, _Dígitos, _RazónDelUninito, _SemillaDelAzar que pueden chocar con variables simples declaradas en fuentes existentes con los mismos nombres

  • El tipo datetime ha pasado a ser de 8 bytes como en MQL5.

Las diferencias no son fatales y pueden arreglarse fácilmente en el código. A cambio, disponemos de muchas funciones de MQL5, así como de la velocidad de ejecución y un control de calidad mucho más estricto.


Tenemos previsto realizar pruebas públicas a lo largo del próximo mes para recoger el mayor número posible de comentarios y preparar a los desarrolladores.

Discusión en el foro MQL5: https://www.mql5.com/ru/forum/13651

Archivos adjuntos:
 

Esto es lo que más me ha estresado:

Renat:

Ahora las funciones dll importadas no pueden aceptar arrays de cadenas como parámetro. Como en MQL5

¿Por qué es imposible mantener la compatibilidad? ¿Hay que volver a escribirlo? ¿Se mantienen las matrices de cadenas MQL4? Si se quedan, no está claro cómo lo prohibió y por qué.
 
Sólo es cuestión de transferir a una DLL.
 
Renat:

Discusión en el foro MQL4: https://www.mql5.com/ru/forum/13651

:)
 
¿Podemos realmente hacer el foro de MT4 como una sección del foro de MT5?
 
Antes, al compilar, no había advertencias si los nombres de las variables globales y locales coincidían, pero ahora da - "la declaración de 'dist' oculta la declaración global en la línea 63", también esta advertencia da cuando los nombres de los parámetros de las funciones formales y los nombres de las variables globales coinciden. ¿Es crítico y puede afectar al comportamiento del programa? ¿O es puramente estilísticamente incorrecto, por ejemplo, para que no haya confusión en proyectos complejos? (Ya estoy acostumbrado a tener en cuenta los ámbitos de las variables y a menudo nombro variables similares con el mismo nombre).
 
zenz:
... ¿Es esto crítico y podría afectar al comportamiento del programa?
El comportamiento del programa no cambiará, si hubo un mal uso de una variable en 4ka, se mantendrá en el nuevo compilador.
 
Compilé el archivo en el nuevo editor y lo pasé a MT4.509 - lo borró... :(
 
TarasBY:
Compilé el archivo con el nuevo editor y lo pasé a MT4.509 - lo borró... :(

Esto es lógico, ya que el antiguo terminal no sabe nada del nuevo formato de lenguaje.

Hasta ahora, sólo hemos lanzado un editor y un compilador para las pruebas preliminares. En un par de semanas lanzaremos una versión beta del nuevo terminal que podrá funcionar con el nuevo formato del programa.

Recomiendo leer los enlaces en el post original - prácticamente cubren todo.

 
Renat:

Esto es lógico, ya que el antiguo terminal no sabe nada del nuevo formato de lenguaje.

Hasta ahora, sólo hemos lanzado un editor y un compilador para realizar pruebas preliminares. En un par de semanas, lanzaremos una versión beta del nuevo terminal que puede funcionar con el nuevo formato del programa.

Te recomiendo que leas los enlaces que aparecen en el post original: lo cubren casi todo.


Todavía no lo he mirado, pero sería mejor hacer un probador como el de MT5, con comillas :), y no estaría de más adjuntar un probador a los recursos del procesador.
 
M2012K:

Todavía no lo he visto, pero sería mejor que hicieran un probador como el de MT5, con comillas :), y no estaría de más adjuntar un probador a los recursos del procesador.


¿Recuerdas los dibujos animados "Gachas del hacha"? ;)))