Erros, bugs, perguntas - página 2074

 

Ao utilizar o indicador na janela inferior, a escala automática não funciona correctamente.

Se forem necessários dois buffers na janela de dados, mas apenas o primeiro buffer participa no desenho, e o segundo buffer tem o tipo "DRAW_NONE" - sem desenho, a escala é executada pelo segundo buffer (os valores do segundo buffer são mais do que o primeiro), embora a escala não deva ser executada por ele (tipo "DRAW_NONE").

O primeiro tampão é preciso até 6 casas decimais (por exemplo - 0,0001249 AC indicador). O segundo tampão contém valores -2, -1,0,1,2 (analógico - não, indefinido, sim, etc.)

 
SEM:

Ao utilizar o indicador na janela inferior, a escala automática não funciona correctamente.

Se forem necessários dois buffers na janela de dados, mas apenas o primeiro buffer participa no desenho, e o segundo buffer tem o tipo "DRAW_NONE" - sem desenho, a escala é executada pelo segundo buffer (os valores do segundo buffer são mais do que o primeiro), embora a escala não deva ser executada por ele (tipo "DRAW_NONE").

O primeiro tampão é preciso até 6 casas decimais (por exemplo - 0,0001249 AC indicador). O segundo tampão contém valores -2, -1,0,1,2 (analógico - não, indefinido, sim, etc.)

Vai consertar em nova construção.
 

Porque é que o compilador é silencioso?

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


Não criámos constantes nomeadas ao declarar a enumeração e o nome "zero"=1 não ocupou o nível global?
 
Kirill Belousov:

Porque é que o compilador é silencioso?

Pela mesma razão.

enum ENUM {i = 5};

void OnStart()
{
  int i = i + 1;
  
  Print(i);   // 6
  Print(::i); // 5
}
Utilização ::.
 
fxsaber:

Pela mesma razão.

Utilização ::.

Obrigado.

O :: enumera obras. E funciona mesmo que o enumero seja especificado dentro de OnStart()

É que se fosse uma função, seria compreensível. É também descrita na ajuda.

Mas zero aqui é uma constante inicializada. Pensei que estas eram coisas diferentes.

Foi por isso que perguntei - porque é que o compilador não gera um aviso de que o nome zero já é utilizado no contexto global?

Onde é que está escrito na ajuda? Ou é indocumentado?

 
Kirill Belousov:

Porque é que o compilador não gera um aviso de que o zero já está a ser utilizado num contexto global.

Bug. Se não fosse uma enumeração mas uma variável, geraria "declaração de 'xxx' esconde a declaração global na linha yyy". Escreva para o SD.

MQL5(4)-вопрос. Точка входа.
MQL5(4)-вопрос. Точка входа.
  • 2017.04.23
  • www.mql5.com
Всем привет. Приступил к изучению языка MQL5. Пока только прочитал "Основы языка" из документации...
 
Alexey Kozitsyn:
Será fixado no novo edifício.
Obrigado pela informação!
 
fxsaber:

Falha. Se não fosse uma enumeração mas uma variável, devolveria "declaração de 'xxx' esconde a declaração global na linha yyy". Escreva para o SD.

Escrevi-o em SD.

E se considerarmos o caso quando a enumeração está dentro da OnStart().

Também não vai gerar o aviso.

O que é que tem a ver com o contexto? Aqui tudo acontece dentro de uma função...

Acontece que os nomes constantes do enum não são de modo algum verificados por estarem ocupados. São substituídos no código antes dos controlos. Parece-lhe que sim?
 
Kirill Belousov:

O SD escreveu.

E se considerarmos o caso da enumeração dentro de OnStart().

Também não vai gerar uma mensagem de aviso.

O que é que tem a ver com o contexto? Aqui tudo acontece dentro de uma função.

Acontece que os nomes constantes do enum não são de modo algum verificados por estarem ocupados. São substituídos no código antes dos controlos. Parece-lhe isso?

Já o escreveu em SD.

 

Estou a escrever um EA,
quando activei a optimização em MT5, recebo repetidamente ecrã azul W10x64 b1653
pode ser alguém que se tenha confrontado com este fenómeno?
Qual é a razão disso?

Razão: