Características del lenguaje mql5, sutilezas y técnicas - página 182
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
Por ejemplo, borro todos los objetos de mi VDS. No quiero sobrecargar la agenda. Y no hay necesidad de ellos allí. Utilizo los globales. Así que todo depende de la situación.
Mira, no me gustan por una razón:
Mira, hay una razón por la que no me gustan:
Bueno, no es necesario leerlo. Puedes utilizar GlobalVariableCheck para comprobar si la variable está o no. Puedes hacer lo mismo con los objetos.
Así que sólo hay que crear/comprobar/borrar una variable.
Vladimir Simakov:
2. Disponibilidad de variables fuera del programa.
no hay problema, todas las funciones que trabajan con variables globales tienen un valor de retorno - el resultado de la operación
hay una herramienta de sincronizaciónhttps://www.mql5.com/ru/docs/globals/globalvariablesetoncondition , no es gran cosa, pero usa lo que te ofrecen
Pero el gran inconveniente es el tipo de datos - sólo doble , no me gusta doble , incluso si sólo ulong podría ser utilizado, y la organización de nombre / valor ---> cadena / doble provoca un deseo de intercambiar - para escribir los datos en la cadena y la clave en el doble - más para una operación puede ser escrito / leído
pero habiendo estimado todas estas "cosas" Puede escribirlos en archivos binarios, es decir, libertad total y sin incertidumbres.
probablemente hay que saber trabajar con ellos
@fxsaber mostró ejemplos de trabajo con cualquier tipohttps://www.mql5.com/ru/forum/320395/page6#comment_12910394
Bueno, no hace falta leer. Puede utilizar simplemente GlobalVariableCheck para comprobar si la variable existe o no. Se hace lo mismo con los objetos.
Por lo tanto, sólo hay que crear/comprobar/borrar la variable.
Sí, un conflicto de nombres trivial y la cadena en el otro robot
GlobalVariableDel(yourValueName);
perderá su depósito))))
Di que el nombre será único, que el otro robot nunca estará allí, que el niño/esposa/amigo/borracho nunca se acercará a la terminal de batalla)) De acuerdo, pero la probabilidad no es cero, lo que significa que el código se vuelve poco fiable.
Es un conflicto de nombres trivial y la línea del otro robot
le quitará su depósito)))
Dirás que el nombre será único, que el otro robot nunca estará allí, que el niño/esposa/amigo/borracho mismo nunca se acercará a la terminal de batalla))) De acuerdo, pero la probabilidad no es cero, lo que significa que el código se vuelve poco fiable.
Mentira y fantasía
Un EA en dinero SIEMPRE se ejecuta desde un terminal independiente, en su propio VDS (o incluso servidor) y nadie se mete con él.
Mentira y fantasía
Un EA en el dinero SIEMPRE se ejecuta desde un terminal independiente, en su propio VDS (o incluso servidor) y nadie se mete con él.
¿Cómo que SIEMPRE? Hoy - siempre, mañana puedes calcular de manera diferente. Y no todo el mundo parece estar de acuerdo contigo.
Señalé el peligro real de utilizar las variables globales de la terminal. Esto no es ni bueno ni malo: es algo que nos han dado los desarrolladores, sólo tenemos que ser conscientes de ello y tenerlo en cuenta.
La misma cadena
GlobalVariablesDeleteAll();
...hecho en cualquier script y oops...
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Peculiaridades de mql5, consejos y trucos
Vladimir Simakov, 2020.05.24 17:02
La misma cadena
GlobalVariablesDeleteAll();
...hecho en cualquier script y oops.
Lo mismo ocurre con los objetos gráficos.
ObjectsDeleteAll(...
Sólo los recursos de la EA no pueden ser modificados por otros programas.
Colegas, por favor ayúdenme a hacer una macro, si es posible.
Necesito declarar dinámicamente un array bidimensional. Y también hay que cambiar la segunda dimensión. Esto es algo así como este bucle:
Por supuesto, el compilador se opondrá a esto:
Me gustaría ver una macro como la siguiente:
En lugar de una línea:
double d_array[][would_be_size2];
Gracias.
Colegas, por favor ayúdenme a hacer una macro, si es posible.
Necesito declarar dinámicamente un array bidimensional. Y también hay que cambiar la segunda dimensión. Esto es algo así como este bucle:
Por supuesto, el compilador se opondrá a esto:
Me gustaría ver una macro como la siguiente:
En lugar de una línea:
Gracias.
Pero la creación de un array de tamaño suficiente (máximo) fuera del bucle se ve obstaculizada por la política ? :-)
El enfoque anterior (recrear el array en el bucle cada vez) no gana nada en términos de velocidad o consumo de memoria.
Me gustaría ver una macro similar a esta:
No funcionará.