Erros, bugs, perguntas - página 3069

 

Tenho a certeza que a pergunta já foi feita antes, mas não a consegui encontrar.

Ter um guião

void OnStart()
  {
   uchar uchar0 = 0;
   uchar uchar1 = 1;
   Print(uchar0 - uchar1);      //-1
   Print(0 - uchar1);           //-1
   Print(-uchar1);              //255
   Print(typename(-uchar1));    //int
   Print(-(int)uchar1);         //-1

   ushort ushort0 = 0;
   ushort ushort1 = 1;
   Print(ushort0 - ushort1);      //-1
   Print(0 - ushort1);           //-1
   Print(-ushort1);              //65535
   Print(typename(-ushort1));    //int
   Print(-(int)ushort1);         //-1

   uint uint1 = 1;
   Print(0 - uint1);           //4294967295
   Print(-uint1);              //4294967295
   Print(typename(-uint1));    //long
  }

Explique, por favor:

1. Porque é que 0-uchar1 (e uchar0-uchar1) dá um resultado diferente de (-uchar1)? Afinal, em operações com tipos (u)char e (u)short, os operandos são automaticamente convertidos em int. E o nome datilógrafo(-uchar1) retorna int. (mesma pergunta para ushort1)

2. Com uint a situação é diferente. -uint1 retorna o resultado esperado mas o nome datilografada(-uint1) retorna longo. Isto é um erro de nome de dactilografia?

 
os rapazes dizem-me quantos buffers.... foram atribuídos por indicador no antigo quad antes da versão 506 agora sei 512
 
ruslan:
os rapazes dizem-me quantos buffers.... foram atribuídos por indicador no antigo quad antes da versão 506 agora sei 512

Por memória 64. Tente declarar mais de 100, se houve actualizações mais cedo não haverá erro, se mais tarde dará um erro.

 
Valeriy Yastremskiy:

Por memória 64. Tente declarar mais de 100, se houve actualizações mais cedo não haverá erro, se mais tarde dará um erro.

Por acaso tem um instalador de 225 terminais?
 
ruslan:
tem, por acaso, o instalador de 225 terminais?

Não muito provavelmente, desde 18 aqui. A actualização de 4k para 5k em termos de funcionalidade teve lugar entre 14 e 16.

 
mktr8591:

Tenho a certeza que a pergunta já foi feita antes, mas não a consegui encontrar.

Ter um guião


Explique, por favor:

1. Porque é que 0-uchar1 (e uchar0-uchar1) dá um resultado diferente de (-uchar1)? Afinal, em operações com tipos (u)char e (u)short, os operandos são automaticamente convertidos em int. E o nome datilógrafo(-uchar1) retorna int. (mesma pergunta para ushort1)

2. Com uint a situação é diferente. -uint1 retorna o resultado esperado mas o nome datilografada(-uint1) retorna longo. Isto é um erro de nome de dactilografia?

Obrigado pelo correio.

1. o tipo de operando foi de facto seleccionado como o tipo de resultado para o unário menos - fixo

2. afastamo-nos do padrão e a operação unária menos devolve tipo longo para tipo uint, devido ao erro no item 1 o tipo de resultado permaneceu tipo uint (não longo)

 
Valeriy Yastremskiy:

Por memória 64. Tente declarar mais de 100, se houve actualizações mais cedo não haverá erro, se mais tarde dará um erro.

encontrou lá 8 buffers.... obrigado
 

Agora a MQL5.com tem primeiro o Mercado, depois os Sinais e só depois o Fórum. Anteriormente, foi estipulado que para os utilizadores autorizados o Fórum estava no topo da página principal.


ZZY Depois deste post, o Forum aparecerá no topo. Assim que eliminar este post, o Fórum volta ao terceiro.

 
fxsaber:

Agora a MQL5.com tem primeiro o Mercado, depois os Sinais e só depois o Fórum. Anteriormente, foi estipulado que para os utilizadores autorizados o Fórum estava no topo da página principal.


ZZY Depois deste post, o Forum aparecerá no topo. Assim que eliminar esse post, o Fórum volta a ser o terceiro.

I segundo que - Fórum é mais conveniente primeiro!

 

Não consigo escrever uma função que só se torna verdadeira na EA quando o foco muda para o gráfico da EA.

Pode dar-me uma dica se tiver encontrado uma.


Não é suficiente CHARTEVENT em perder e ganhar foco.