Errores, fallos, preguntas - página 2074

 

Cuando se utiliza el indicador de la ventana inferior, la escala automática no funciona correctamente.

Si se requieren dos búferes en la ventana de datos, pero sólo el primer búfer participa en el dibujo, y el segundo búfer tiene el tipo "DRAW_NONE" - sin dibujo, el escalado es realizado por el segundo búfer (los valores del segundo búfer son más que el primero), aunque el escalado no debería ser realizado por él (tipo "DRAW_NONE").

El primer búfer tiene una precisión de 6 decimales (por ejemplo - 0,0001249 indicador de CA). El segundo búfer contiene los valores -2, -1,0,1,2 (análogo - no, indefinido, sí, etc.)

 
SEM:

Cuando se utiliza el indicador de la ventana inferior, la escala automática no funciona correctamente.

Si se requieren dos búferes en la ventana de datos, pero sólo el primer búfer participa en el dibujo, y el segundo búfer tiene el tipo "DRAW_NONE" - sin dibujo, el escalado es realizado por el segundo búfer (los valores del segundo búfer son más que el primero), aunque el escalado no debería ser realizado por él (tipo "DRAW_NONE").

El primer búfer tiene una precisión de 6 decimales (por ejemplo - 0,0001249 indicador de CA). El segundo búfer contiene los valores -2, -1,0,1,2 (análogo - no, indefinido, sí, etc.)

Se arreglará en la nueva versión.
 

¿Por qué el compilador no dice nada?

enum   ENUM_FILTER      {off,zero,model,main,fast,slow,upper,lower};

void OnStart()
{

double zero=5;//Почему компилятор молчит?
int d=(ENUM_FILTER)model;
int e=(ENUM_FILTER)zero;
Print("d=",d," zero=",zero," e=",e);
}

2017.11.23 16:16:53.518 test EURCHF,H1: d=2 zero=5.0 e=5


¿No creamos constantes con nombre al declarar la enumeración y el nombre "cero"=1 no ocupaba el nivel global?
 
Kirill Belousov:

¿Por qué el compilador no dice nada?

Por la misma razón.

enum ENUM {i = 5};

void OnStart()
{
  int i = i + 1;
  
  Print(i);   // 6
  Print(::i); // 5
}
Uso ::.
 
fxsaber:

Por la misma razón.

Uso ::.

Gracias.

El enunciado :: funciona. Y funciona incluso si el enum se especifica dentro de OnStart()

Es que si fuera una función, sería comprensible. También se describe en la ayuda.

Pero el cero aquí es una constante inicializada. Pensé que eran cosas diferentes.

Por eso he preguntado: ¿por qué el compilador no genera una advertencia de que el nombre cero ya se utiliza en el contexto global?

¿Dónde está escrito en la ayuda? ¿O no está documentado?

 
Kirill Belousov:

¿Por qué el compilador no genera una advertencia de que el cero ya se está utilizando en un contexto global?

Un error. Si no fuera un enum sino una variable, generaría "la declaración de 'xxx' oculta la declaración global en la línea yyy". Escribir en la SD.

MQL5(4)-вопрос. Точка входа.
MQL5(4)-вопрос. Точка входа.
  • 2017.04.23
  • www.mql5.com
Всем привет. Приступил к изучению языка MQL5. Пока только прочитал "Основы языка" из документации...
 
Alexey Kozitsyn:
Se arreglará en la nueva versión.
Gracias por la información.
 
fxsaber:

Fallo. Si no fuera un enum sino una variable, devolvería "la declaración de 'xxx' oculta la declaración global en la línea yyy". Escribir en la SD.

Lo escribí en SD.

Y si consideramos el caso cuando el enum está dentro de OnStart().

Tampoco generará el aviso.

¿Qué tiene que ver con el contexto? Todo sucede dentro de una función aquí...

Resulta que no se comprueba que los nombres de las constantes de enum estén ocupados en absoluto. Se sustituyen en el código antes de las comprobaciones. ¿Te parece que es así?
 
Kirill Belousov:

La SD ha escrito.

Y si consideramos el caso de enum dentro de OnStart().

Tampoco generará un mensaje de advertencia.

¿Qué tiene que ver con el contexto? Aquí todo ocurre dentro de una función.

Resulta que no se comprueba que los nombres de las constantes de los enum estén ocupados en absoluto. Se sustituyen en el código antes de las comprobaciones. ¿Se ve así?

Ya lo has escrito en SD.

 

Estoy escribiendo un EA,
cuando habilité la optimización en MT5, me aparece la pantalla azul W10x64 b1653 repetidamente
¿Puede ser que alguien se haya enfrentado a este fenómeno?
¿Cuál es el motivo?