Errores, fallos, preguntas - página 2755
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
Error del compilador. Funciona bien en las versiones anteriores.
Tengo un Asesor Experto tan simple (ver captura de pantalla).
Hay objetos Chart superpuestos en el gráfico.
Antes de la actualización de la terminal de ayer se mostraban los niveles de negociación en los gráficos, pero ahora han desaparecido.
He creado gráficos como se muestra en el ejemplo del manual. No he encontrado ninguna propiedad del gráfico para mostrar los niveles comerciales (sólo los gráficos básicos tienen esa propiedad).
Por favor, ayuda.
Capturas de pantalla de la plataforma MetaTrader
GBPUSD, M5, 2020.05.25
Forex Club International Limited, MetaTrader 5, Real
Hola. Por favor, ayúdenme a entender lo que está escrito.
mqlrate rt [2] ;
¿Estoy en lo cierto al suponer que se trata de un array de dos estructuras que recibieron automáticamente los mismos datos de estructura?
Sólo que además no hay asignación de datos a la matriz y entonces los datos de la matriz se utilizan de una vez.Hola. Por favor, ayúdenme a entender lo que está escrito.
mqlrate rt [2] ;
¿Estoy en lo cierto al suponer que se trata de un array de dos estructuras que recibieron automáticamente los mismos datos?
Escrito en MQL5:
significa: se declara una matriz estática de dos estructurasMqlRates. Después de la declaración, estas estructuras pueden almacenar galimatías, por lo que hay que llenarlas explícitamente con datos.
Escribir en MQL5:
significa: se declara un array estático de dos estructurasMqlRates. Una vez declaradas, estas estructuras pueden almacenar galimatías, por lo que es necesario llenarlas explícitamente con datos.
Error del compilador. Funciona bien en las versiones anteriores.
Sí existe, se informó desde el 2020.03.25, ya día a día desde hace 2 meses...
(no corregido por MT5(build 2390)) (nuevo) Error de compilación, al utilizar el modificador de acceso por defecto al heredar en la clase de la plantilla, cuando el parámetro de la plantilla actúa como clase base.
Otro error:
Culpa a C::operator=, aunque aquí se ejecuta D::operator=. Para solucionar el error, hay que sobrecargar el operador para todas las clases base de la jerarquía.
p.d. En general, los desarrolladores prometieron arreglar el comportamiento incorrecto del operador de asignación hace tiempo, pero sigue ahí. Esto es una barbaridad. Por ejemplo, el siguiente código compila sin errores aunque está asignando lo que sea:
Un error más:
1) Se queja de C::operator=, aunque aquí se ejecuta D::operator=. Para evitar el error, tenemos que sobrecargar el operador para todas las clases base de la jerarquía.
2) En general, los desarrolladores prometieron arreglar el comportamiento incorrecto del operador de asignación hace tiempo pero sigue ahí - es una barbaridad. Por ejemplo, el siguiente código compila sin errores aunque asigna lo que sea:
1) Lo más probable es que esto no sea un error, sino más bien un comportamiento natural teniendo en cuenta las características específicas de MQL, a saber:
En MQL, los métodos y campos de la clase base están "directamente disponibles" desde las clases derivadas.
En esencia, el comportamiento de la herencia en MQL es similar al uso de la declaración para cada campo y método básico en C++.
C++ en línea:https://onlinegdb.com/rJkckvFsU
Así, todas las funciones operator= de las clases base también intervienen en la operaciónd = c;
al buscar la función adecuada.
Como resultado, la firma óptima para una llamada a una función sobrecargada es la predeterminada y eliminada void operator=(const C&).
1) Lo más probable es que no sea un error, sino un comportamiento natural teniendo en cuenta las peculiaridades de MQL, a saber:
En MQL, los métodos y campos de una clase base están "directamente disponibles" desde las clases descendientes.
En esencia, el comportamiento de la herencia en MQL es similar al uso de la declaración para cada campo y método básico en C++.
C++ en línea:https://onlinegdb.com/rJkckvFsU
Así, todas las funciones operator= de las clases base también intervienen en la operaciónd = c;
al buscar la función adecuada.
Como resultado, la firma óptima para una llamada a una función sobrecargada es la predeterminada y remota operator=(const C&).
No hay que buscar el sentido sagrado en un fallo lingüístico evidente. Ya planteé este problema aquí e Ilyas me aseguró que se corregiría. Pero ya han pasado casi 10 meses. (
En esencia, el comportamiento de la herencia en MQL es similar al de C++ utilizando la declaración
Sí, bueno, si en MQL por ejemplo 2 x 2 = 5, se podría decir que es lo mismo que en C++ añadiendo una operación de incremento al resultado)
No hay que buscar el sentido sagrado en un fallo evidente del lenguaje.
Se le explicó cómo y por qué funciona, si es difícil para usted - afortunadamente no puedo ayudar...
No es un significado sagrado, sino un enfoque común para bajar el nivel de entrada del usuario, para que pueda acceder a los campos y métodos de la clase base sin usar "this.", así como en casos de sobrecarga de una función de la clase base.