Perguntas de um "boneco" - página 104

 
220Volt:
Obrigado, parece que está na hora de queimar o livro do bisavô ))))

Da história: o livro do bisavô deixou especificamente long=int para compatibilidade de software antigo.

Em determinada altura decidimos também - deixar "inútil" o int e introduzir int64 (ou int64 longo) desumano ou fazer "correctamente" usando puro int64 (ou int64 longo). Como resultado, decidimos que o procedimento correcto é utilizar um número inteiro de 64 bits.

O comprimento nem sempre é de 32 bit noutros sistemas. Mesmo o mesmo compilador para arquitecturas diferentes utiliza tamanhos diferentes. É isso que a Intel C++ tem:

The size of a "long" integer varies between architectures and operating systems.

The Intel Compiler is compatible and inter-operable with Microsoft* Visual C++ on Windows* and
with gcc* on Linux* and Mac OS X*. Consequently, the sizes of fundamental types are the same as
for these compilers. The size of  a long integer in particular depends on the operating system
and the targeted architecture as follows:

   OS         arch           size
----------------------------------
Windows       IA-32        4 bytes
Windows       Intel 64     4 bytes
Windows       IA-64        4 bytes
Linux         IA-32        4 bytes
Linux         Intel 64     8 bytes
Linux         IA-64        8 bytes
Mac OS X      IA-32        4 bytes

Mac OS X        Intel 64       8 bytes


Na MQL5 utilizamos a arquitectura compatível x64 bit que requer o mesmo comportamento tanto em 32 como em 64 bits. longo é de 64 bit também por essa razão.


Um pouco mais de história, se se lembrar: nos dias do MSDOS, int era 16-bit e igual a curto prazo em compiladores de 16-bit. Quando o programador se mudou para a plataforma de 32 bits, o int foi aumentado para 32 bits e tornou-se igual a curto prazo. Parece não ter havido queixas particulares. Quando nos movemos para 64 bits, foi necessário separarmo-nos durante muito tempo do int. E é lógico.

 

Taxas de MqlRRates[];

Preciso de encontrar o valor máximo das tarifas[].altas desde as três últimas barras

Não sei como aplicar oArrayMaximum à estrutura?

 
dentraf:

Taxas de MqlRRates[];

Preciso de encontrar o valor máximo das tarifas[].altas desde as três últimas barras

Não sei como aplicar oArrayMaximum à estrutura?

Tanto quanto sei, esta função funciona apenas com matrizes numéricas, por isso escreva a sua própria função para mexer com a estrutura.
 
dentraf:

Taxas de MqlRRates[];

Preciso de encontrar o valor máximo das tarifas[].altas desde as três últimas barras

Não sei como aplicar oArrayMaximum à estrutura?

double MaxHigh(const MqlRates& rates,int &index)
  {
   double max=0.0;
   index=-1;
//--- check
   if(ArraySize(rates)<3) return(EMPTY_VALUE);
//--- loop
   for(int i=0;i<3;i++)
      if(max<rates[i].high)
        {
         max=rates[i].high;
         index=i;
        }
//--- result
   return(max);
  }
É assim. O ArrayMaximum não se aplica à estrutura.
 
uncleVic:
Algo parecido com isto. O ArrayMaximum não se aplica à estrutura.
Obrigado!
 

o que é que isso significa ?

CExpertBase::SetOtherSeries: é proibida a mudança de séries temporais

 
CExpertBase::SetOtherSeries: a mudança de séries temporais é proibida
o que poderia isto significar?
 

Digam-me, por favor.

Dado:

  • Dois processos (#1 e #2);
  • funcionando em paralelo;
  • espaço de memória da UE;
  • num determinado momento (num ciclo), os processos tentam fazer o seguinte:

1. No.1 escrever para a UE e no.2 ler;

2. escrever # 1 e # 2 na UE;

Pergunta: que situação está em conflito? Estou mais interessado no caso #1, podemos considerá-lo normal, ou o acesso deve ser restringido? Suspeito que o 1º caso não é bom, qual será o aspecto do conflito, valor pouco claro, ou esperar algo mais sério?

 
openlive:
CExpertBase::SetOtherSeries: a mudança de séries temporais é proibida
O que é que isto significa?
Um pouco mais de detalhe... Qual é a próxima linha (de preferência várias) no diário de bordo?
 

220Volt:

Pergunta: que situação é uma situação de conflito? Estou mais interessado no caso 1, isto pode ser considerado normal, ou o acesso deve ser restringido? Suspeito que o caso 1 não é bom, como seria o conflito, um valor pouco claro, ou devo esperar algo mais sério?

Ambas as situações estarão em conflito, com um valor pouco claro.