Preguntas de un "tonto" - página 104

 
220Volt:
Gracias, parece que es hora de quemar el libro del bisabuelo ))))

De la historia: el libro del bisabuelo dejó específicamente long=int para la compatibilidad del software antiguo.

En un momento dado decidimos también - dejar el "inútil" long como int e introducir el inhumano int64 (o long int) o hacerlo "correctamente" usando long puro. Como resultado, decidimos que el procedimiento correcto es utilizar long como un entero de 64 bits.

Long no siempre es de 32 bits en otros sistemas. Incluso el mismo compilador para diferentes arquitecturas utiliza diferentes tamaños. Eso es lo que tiene Intel C++:

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


En MQL5 utilizamos la arquitectura compatible con x64 bits que requiere el mismo comportamiento tanto en 32 como en 64 bits. long es de 64 bits por esa razón también.


Un poco más de historia, si lo recuerdas: en los días de MSDOS, int era de 16 bits y era igual a short en los compiladores de 16 bits. Cuando el programador pasó a la plataforma de 32 bits, int se amplió a 32 bits y pasó a ser igual a short. Parece que no hubo ninguna queja en particular. Cuando pasamos a los 64 bits, long tuvo que separarse de int. Y es lógico.

 

MqlRates rates[];

Necesito encontrar el valor máximo de rates[].high de las tres últimas barras

¿No sé cómo aplicarArrayMaximum a la estructura?

 
dentraf:

MqlRates rates[];

Necesito encontrar el valor máximo de rates[].high de las tres últimas barras

¿No sé cómo aplicarArrayMaximum a la estructura?

Hasta donde yo sé, esta función sólo funciona con arrays numéricos, así que escribe tu propia función para manipular la estructura.
 
dentraf:

MqlRates rates[];

Necesito encontrar el valor máximo de rates[].high de las tres últimas barras

¿No sé cómo aplicarArrayMaximum a la estructura?

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);
  }
Es así. ArrayMaximum no se aplica a la estructura.
 
uncleVic:
Algo así. ArrayMaximum no se aplica a la estructura.
Gracias.
 

¿Qué significa?

CExpertBase::SetOtherSeries: el cambio de series temporales está prohibido

 
CExpertBase::SetOtherSeries: el cambio de series temporales está prohibido
¿qué puede significar esto?
 

Dígame, por favor.

Dada:

  • Dos procesos (#1 y #2);
  • funcionando en paralelo;
  • espacio de memoria del UE;
  • en un momento dado (en un ciclo), los procesos intentan hacer lo siguiente:

1. El número 1 escribe en la UE y el número 2 lee;

2. Escribe #1 y #2 en el UE;

Pregunta: ¿qué situación es conflictiva? Me interesa más el caso nº 1, ¿podemos considerarlo normal o hay que restringir el acceso? Sospecho que el 1er caso no es bueno, ¿cómo será el conflicto, valor poco claro, o esperar algo más grave?

 
openlive:
CExpertBase::SetOtherSeries: se prohíbe el cambio de series temporales
¿Qué significa esto?
Un poco más de detalle... ¿Cuál es la siguiente línea (preferiblemente varias) en el registro?
 

220Volt:

Pregunta: ¿qué situación es un conflicto? Me interesa más el caso 1, ¿se puede considerar normal o se debe restringir el acceso? Sospecho que el caso 1 no es bueno, ¿cómo sería el conflicto, un valor poco claro, o debo esperar algo más grave?

Ambas situaciones estarán en conflicto, con un valor poco claro.