Discusión sobre el artículo "Asesor experto multiplataforma: Introducción"

 

Artículo publicado Asesor experto multiplataforma: Introducción:

En este artículo se describe con detalle un método para desarrollar de forma rápida y sencilla un asesor experto multiplataforma. El método propuesto aúna funciones comunes para ambas versiones en una clase y desarrolla la implementación para las funciones incompatibles en las clases heredadas.

Preste atención: los dos archivos fuente mostrados más abajo son iguales. Es imposible tener un archivo fuente que funcione en las dos plataformas. El motivo de ello se encuentra en la compilación de los archivos fuente:

  • el resultado de la compilación en MQ4 es la creación de un archivo EX4.
  • el resultado de la compilación en MQ5 es la creación de un archivo EX5.

En otras palabras, como ya hemos dicho más arriba, no podemos obtener un archivo fuente que funcione en ambas plataformas. No obstante, podemos hacer que las dos fuentes remitan a un único archivo de encabezamiento, como ilustramos en la imagen de abajo:

Archivos fuente y archivos de encabezamiento

Autor: Enrico Lambino

 

Gran artículo: fácil de leer, todas las ideas son claras e incluso aparecen las tuyas propias...

 
La idea (multiplataforma) es correcta. Pero aquí se propone crear un cierto meta-lenguaje y utilizarlo para escribir Asesores Expertos multiplataforma. El meta-lenguaje parece superfluo en esta solución, porque se puede escribir todo en MQL4. Y los Asesores Expertos deberían funcionar no sólo en MT4, sino también en MT5. Hay una solución de este tipo en kodobase. En particular, con esta solución, los viejos códigos MQ4 pueden ser lanzados en MT5 añadiendo un encludnik. En general, la creación de un meta-lenguaje parece menos universal e incluso superfluo. Sin embargo, sería interesante ver la continuación de la serie de artículos sobre este tema. Esperemos que no salga el trabajo sysov.

En cuanto a la Introducción en sí. El ejemplo con StringConcatenate me corta el rollo. Es difícil entender a la gente que utiliza esta función en MT4/5. No sólo es engorroso, sino que además no está claro. La concatenación de cadenas SIEMPRE se ha conseguido en ambas plataformas mediante el operador +. Así que usar StringConcatenate para cadenas es comparable a usar la función "NumberSummary" para obtener la suma de números. Absurdo, en definitiva.

Si he entendido bien, esto es una traducción del artículo. Por eso deberías escribir al original para contactar con el autor. ¿Versión en inglés?
 
https://www.mql5.com/ru/code/16006
MT4Orders
MT4Orders
  • votos: 11
  • 2016.08.05
  • fxsaber
  • www.mql5.com
Параллельное использование ордерных систем MetaTrader 4 и MetaTrader 5.
 
fxsaber:
La idea (multiplataforma) es correcta. Pero aquí se propone crear un cierto meta-lenguaje y utilizarlo para escribir Asesores Expertos multiplataforma. El meta-lenguaje parece superfluo en esta solución, porque se puede escribir todo en MQL4. Y ejecutar EAs no sólo en MT4, sino también en MT5.
Si he entendido bien, esta es una traducción del artículo. Por lo tanto, para ponerse en contacto con el autor, al parecer, es necesario escribir a la original. ¿Versión en inglés?
 
MetaQuotes Software Corp.:

Artículo publicado Cross-platform trading advisor: Introducción:

Autor: Enrico Lambino

Perdone, pero ¿para qué demonios sirve esto?
 
Yuriy Asaulenko:
Lo siento, pero ¿qué sentido tiene?
Para que no tengas que hacer ningún porteo.
 
Un Asesor Experto multiplataforma sólo puede crearse si se basa en un motor de trading multiplataforma, en el que la API de trading y el acceso a los datos se sustituirán por versiones OO, cuya implementación interna vendrá determinada por las macros #ifdef __MQL5__. Teniendo en cuenta lo anterior, el artículo del autor es cuanto menos ingenuo. Por supuesto, es genial que el autor haya descubierto la macro #ifdef __MQL5__, pero no es suficiente por sí misma. Es necesario escribir un motor con #ifdef en cada paso, y esto es mucho más complicado.