![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Para información:
Lo primero que hay que entender es el ¿POR QUÉ? ¿Y para qué sirve?
Si no quieres hacer enlaces, lo haremos nosotros.
Sí, es divertidísimo ) . Pero realmente, ni siquiera pensé que pudiera publicarse en la ayuda.
¿Puede hablarme ya de todas las banderas entonces?
Para información:
No tengo miedo, soy muy consciente de que es barato. Es un inconveniente.
Por favor, explique este punto: ¿puede haber una reasignación de memoria durante OnCalculate? Esto es una mierda.
Sobre las llamadas, por supuesto, está claro.
No quiero tener una función que ate a un indicador o terminal en general, así que usaré la variante más segura disponible.
Más sobre este punto, por favor: ¿puede haber reasignación de memoria durante OnCalculate? Es una locura.
Más sobre este punto, por favor: ¿puede haber reasignación de memoria durante OnCalculate? Es una pena.
Sobre las llamadas, por supuesto, es comprensible.
Por supuesto, estamos hablando de una posible redistribución entre las convocatorias.
El problema es que alguien guardará la referencia entre las llamadas por error o explícitamente, en el 99% de los casos todo funcionará hasta que se estrelle. Después habrá pensamientos bastante esperados "es culpa de Metakvotes".
Por ejemplo, un compañero nos ha transmitido este tipo de pensamientos y ha seguido haciéndolo durante varios años, incapaz de aceptar el hecho de que la historia entre las convocatorias pueda ser intercambiada/cambiada.
Por supuesto, estamos hablando de una posible redistribución entre convocatorias.
El problema es que seguro que alguien guarda el enlace entre las llamadas por error o de forma explícita, en el 99% de los casos todo funcionará hasta el choque. Después vendrán los esperados pensamientos de "La culpa es de Metakwots".
"Temer la culpa es no caminar hacia adelante" (c).
Y una cosa más: es mejor lamentar lo hecho, que lo no hecho.
Renat, digamos que estoy de acuerdo en que las variables de referencia son una fuente potencial de problemas, pero esto se puede decir de casi cualquier herramienta. A veces la gente pincha a otras personas con destornilladores. No tiene sentido prohibir ahora los destornilladores, y es aún más insensato retirarlos de la producción, porque se pueden fabricar en casa sin demasiados problemas.
"Referencias" como una entidad mql es muy deseable, ni siquiera en forma de variables, sino como una posibilidad de devolver una referencia ( lvalue ) de la función. Esto permitirá hacer por lo menos realmente rápido indexadores izquierda para los contenedores y dar muchas otras características adicionales, como:
Y entiendo que la gente quiera devolver una referencia a una variable local desde una función.
¿Y qué? ¿Olvidar las referencias, porque pueden complicar la vida a los tontos?)
--
Tales limitaciones de mql5 (como la falta de enlaces) a veces motivan fuertemente la "huida a la DLL", convirtiendo a MT5 sólo en un "controlador de mercado" que proporciona conexión con el broker. Pero la idea original era justo lo contrario: eliminar la necesidad de utilizar herramientas de programación externas, porque"todo está aquí".
No hay vuelta atrás, ya que buscamos la máxima seguridad lingüística.
Trabajar con enlaces en bruto es un paso sólido y seguro hacia un choque. Y no se permite estrellar los programas con todo el sistema de virtualización sacado.
Nuestra decisión está plenamente fundamentada. MQL5 se utiliza para escribir programas que se ejecutarán en un gran número de ordenadores, y sin intervención humana.
En fin, espero que el principio quede claro para quien lo necesite. Lo mantendré por ahora, sólo por diversión. Pero lo será, y estará abierta.
No necesito explicar que las referencias a tipos básicos, como int, son mucho más fáciles de hacer sin demasiados problemas.
La única cuestión que causa complejidad y problemas de aplicación es el alcance de la variable subyacente. Realmente hay un amplio abanico de posibilidades.
________
Bueno, y como motivación cabe destacar que los enlaces abren toda una capa de posibilidades adicionales, como los wrappers por ejemplo.
Los enlaces lvalue están previstos...
Saludos a todos.
Me pregunto si ha cambiado algo en ocho años.
O bien, ¿sigue siendo posible obtener una dirección de matriz de OnCalculate() sólo usando msvcrt.dll y la función memcpy?
¿O todo el mundo sigue "arrastrando" las referencias a los arrays a través de toda la estructura de la clase (alternativamente, organizando sus propios arrays y copiando el contenido cada vez)?