Versión beta de MetaTrader 4 IDE que incluye el nuevo compilador y editor MQL4 - página 8

 

Todo parece funcionar.

Tengo un pequeño deseo: ¿la lista de funciones desplegada por Alt+M no puede estar permanentemente visible en la ventana "Navegador"? Sería muy conveniente navegar por el código.

 
BorisMQL4:
¿Hay alguna forma de personalizar la barra de herramientas como era posible anteriormente?

Sí, haga clic con el botón derecho en un elemento de la barra de herramientas existente y seleccione "Personalizar".


Todo es igual que en el MetaEditor 4.

 
Renat:

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

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

  • Se ha introducido la evaluación abreviada de 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

  • Ahora no se pueden utilizar nombres de los siguientes tipos: short, long, float, const, virtual, input, delete, new, do, char.

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

  • Ahora hay nombres de variables predefinidos _Periodo, _Símbolo, _ÚltimoError, _ErrorCrítico, _BanderaDeParada, _Punto, _Dígitos, _RazónDeUninit, _SemillaDeAleatorio que pueden chocar con variables simples declaradas en el código fuente existente 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, se dispone de muchas características de MQL5, la velocidad de ejecución y un control de calidad mucho más estricto.

Los dos primeros puntos son especialmente peligrosos porque el código compilará pero puede no funcionar correctamente.

¿Puedo añadir más? Si no es así, por favor, corríjalo (no hay tiempo para la prueba beta y la prueba completa). (por lo que escribiré al final (?) para no parecer una verdad absoluta):

  • Las cadenas se convierten en unicode (2 bytes). Por lo tanto, los algoritmos basados en la manipulación de caracteres de 1 byte no funcionarán correctamente o no funcionarán en absoluto (?).
  • Debe especificar explícitamente la segunda y mayor dimensión del array al describir los parámetros de la función (?)
  • Lasvariables locales y las matrices no se inicializan automáticamente (?)
  • Las matrices por defecto ya no son estáticas (?)
  • Las cadenas de más de 256 caracteres no se truncan (?)
  • Algunas constantes han cambiado su representación interna. Por ejemplo, los periodos del gráfico comienzan con H1 (?)
  • ...
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 

Lista de puntos de entrada para los nuevos programas MQL4

1. Para la compatibilidad con las fuentes existentes, se mantienen los conocidos init, start, deinit

2. Añadido:

OnInit, OnDeinit (para Asesores Expertos, indicadores y scripts, no se permite la existencia simultánea de las funciones init y OnInit, deinit y OnDeinit)

OnStart para scripts (no se permite la existencia simultánea de OnStart y start)

OnTick para Asesores Expertos (no se permite la existencia simultánea de OnTick y el inicio)

OnCalculate para los indicadores (no se permite la existencia simultánea de OnCalculate y start)

También se ha añadido:

OnTimer para Asesores Expertos e indicadores

OnChartEvent para Asesores Expertos e indicadores

OnTester para Asesores Expertos

 

Estos cambios en el cálculo de las expresiones deberían haberse realizado hace mucho tiempo. Casi nunca causarán problemas, a menos que el autor haya escrito expresiones enormes.

No hay ningún problema con las cadenas - internamente son Unicode, convertidas automáticamente a ANSI cuando se usan fuera del terminal (enviando comentarios en las órdenes), incluyendo la recodificación automática de ida y vuelta cuando se pasan a la DLL. Es decir, la compatibilidad es total.

Las dimensiones de las matrices son sí. Ahora puedes olvidarte de los juegos salvajes con arrays multidimensionales, ya que son perfectamente sustituibles por estructuras.

Los arrays en MQL4 nunca han sido estáticos, al contrario, siempre han sido dinámicos.

No, ya no hay límite de 256 caracteres.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
stringo:

Lista de puntos de entrada para los nuevos programas MQL4

1. Para la compatibilidad con las fuentes existentes, se mantienen los conocidos init, start, deinit

2. Añadido:

OnInit, OnDeinit (para Asesores Expertos, indicadores y scripts, no se permite la existencia simultánea de las funciones init y OnInit, deinit y OnDeinit)

OnStart para scripts (no se permite la existencia simultánea de OnStart y start)

OnTick para Asesores Expertos (no se permite la existencia simultánea de OnTick y el inicio)

OnCalculate para los indicadores (no se permite la existencia simultánea de OnCalculate y start)

También se ha añadido:

OnTimer para Asesores Expertos e indicadores

OnChartEvent para Asesores Expertos e indicadores

OnTester para Asesores Expertos

¿Están previstos OnTrade y OnTradeTransaction?
 
Renat:

¿Tal vez el estudio sea ruso?

Sí, es ruso. ¿Es eso crítico?
 
fyords:
Sí, es ruso. ¿Es crítico?

No es crítico, excepto por las frases moteadas en ruso. Este texto se deduce de las respuestas del estudio.

Intentaremos resolver este problema.

 
Renat:

No es crítico, excepto por las frases moteadas en ruso. Este texto se deduce de las respuestas del estudio.

Intentaremos resolver este problema.

Ya veo, gracias, y sobre lo de encontrar la 5ª unidad de estudio se solucionará el tema o soy yo el que tiene algún problema?
 
Urain:
¿Están previstos OnTrade y OnTradeTransaction?
Por desgracia, no.