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

 
MetaQuotes:

1. Mencionamos lo de los parámetros en start/init/deinit porque nunca deberían estar ahí, pero nos encontramos con ejemplos de código fuente donde los autores añadieron parámetros innecesarios por error. En el antiguo MQL4 se omitía sin sonido, mientras que en MQL5 ya se reporta como un error. No hay ningún problema en este caso - sólo un error muy raro será inmediatamente visible.

2. Si se ha enfrentado a problemas con la DLL y el paso de matrices de cadenas multidimensionales a la DLL, estarán tranquilos. Los desarrolladores tienen todas las posibilidades de trabajar con estructuras y no hay necesidad de construir muletas sobre cuerdas.

La nueva versión de MQL4 aporta muchas novedades, manteniendo la compatibilidad.

1. Tengo muchos en los que se utiliza esta característica. No creo que sea el único.

2. ¡Resaltar es genial! ¡Pero deja la compatibilidad con el viejo!

MetaQuotes:

No es necesario que cunda el pánico. Descargue el paquete IDE+MQL ofrecido y compruebe sus desarrollos.

El compilador tiene ahora un muy buen analizador y da fácilmente advertencias sobre mezclas peligrosas de expresiones lógicas. Por favor, pruébelo usted mismo.

¡Eso también es genial! Los códigos de la Base de Código no fueron escritos sólo por profesionales. Seguramente no hay paréntesis en las expresiones lógicas. Estos códigos no funcionarán. Hacer una llave para que el compilador se salte por las reglas antiguas.
 
MetaQuotes:

Los que tuvieron problemas con la DLL, e incluso con el paso de matrices de cadenas multidimensionales a la DLL, por el contrario, respiran aliviados. Los desarrolladores tienen todas las posibilidades de trabajar con estructuras y ya no necesitan construir muletas sobre cuerdas.

¿Por qué muletas? ¿Qué hay de malo en una matriz de cadenas? Por cierto, al principio leí mal este párrafo, y resulta que se refiere a matrices de cadenas, no sólo a matrices multidimensionales. ¿Cómo puede ser así? ¿Cómo sugieres sustituir el array que se pasa por la estructura? Por ejemplo, debe hacer lo siguiente para una matriz de 1000 cadenas

struct StrStruct { cadena a1; cadena a2; cadena a3; .... string a1000; } A; ¿Y entonces cada miembro debe ser inicializado? Esto es una tontería.

La nueva versión de MQL4 ofrece un montón de nuevas características, manteniendo la compatibilidad.

Sólo que la compatibilidad no es completa.
 
Meat:

¿Por qué muletas? ¿Qué hay de malo en una matriz de cadenas? Por cierto, no leí este punto con atención al principio, y resulta que no se trata sólo de arrays multidimensionales sino de arrays de cadenas en general. ¿Cómo puede ser así? ¿Cómo sugieres sustituir el array que se pasa por la estructura? Por ejemplo, debe hacer lo siguiente para una matriz de 1000 cadenas

struct A { cadena a1; cadena a2; cadena a3; ..... string a1000; }; ¿Y luego hay que inicializar cada miembro? Esto es una tontería.

Sólo la compatibilidad no es completa.


Una estructura se pasa como una cadena y es totalmente equivalente a ella. Cualquier operación sobre la cadena es aplicable a la estructura.
 
Muy fiel a la forma, por cierto. No es una característica poco comentada. Yo también lo usaba mucho.
 
tara:

Una estructura se pasa como una cadena y es totalmente equivalente a ella. Cualquier operación sobre una cadena es aplicable a la estructura.

No lo entiendo. ¿Qué quiere decir?
 
Meat:

No lo entiendo. ¿Qué quieres decir?

En términos de base de datos, los campos se fusionan. Se fusionan.
 
tara:

En el caso de las bases de datos, los campos se fusionan. Están fusionados.
No tiene ningún sentido. ¿Qué son las bases de datos? ¿De dónde vienen en MQL? Aquí tenemos un array: string A[1000]; ¿Cómo pasarlo a la DLL?
 
Meat:
No tiene ningún sentido. ¿Qué otras bases de datos existen? ¿De dónde vienen en MQL? Aquí tenemos un array: cadena A[1000]; ¿cómo se puede pasar a la DLL?


Alexey, si tienes una matriz bidimensional de cadenas, puedes sustituirla fácilmente por una matriz unidimensional de estructuras.

Por cierto, sería una combinación más expresiva :)

 

Vadik sólo está enfadado por la inevitable competencia. ;) // imha auto-sabotaje

Solía ser una "panacea" con sus bibliotecas, pero ahora serán mucho menos demandadas - casi todo se puede hacer sin ellas, y mucho de lo que no se puede hacer se puede encontrar ya hecho en kodobase en mql5.com

Vadim, busca a los profesionales, hay órdenes de magnitud más.

 
MetaDriver:

Vadik sólo está enfadado por la inevitable competencia. ;) // imha auto-sabotaje

Solía ser una "panacea" con sus bibliotecas, pero ahora serán mucho menos demandadas - casi todo se puede hacer sin ellas, y mucho de lo que no se puede hacer se puede encontrar ya hecho en kodobase en mql5.com

Vadim, busca a los profesionales, hay órdenes de magnitud más.

Su código está "más cerca del punto". Rara vez hay algo de dominio público que "no merezca la pena rehacer".