Errores, fallos, preguntas - página 978

 
voix_kas:

Para mejorar la pureza de la programación me gustaría preguntar al público sobre esto.

Supongamos que hay una bandera (bool Flag) declarada globalmente. Cuando se producen determinados eventos/condiciones, debe fijarse en un valor determinado.

La primera variante:

Segunda opción:

Qué opción:

1. ¿más rápido en términos de rendimiento?

2. Si se me permite decirlo, ¿"más profesional"?

Se supone que esta sección de código debe ser controlada con bastante frecuencia, por ejemplo, cada tick.

Y, en su opinión, ¿cada garrapata es frecuente?

Hay entre 3 y 5 millones de comparaciones de este tipo en un tic; la CPU ni siquiera notará sus condiciones.

Pero si vas a comparar varios miles por tic, entonces vale la pena optimizar.

En general, existe un perfilador para optimizar la velocidad.

 

Las preguntas 1 y 2 sobre la condición como a continuación:

if (A==1 || B==2 || C==3)
{  // некие действия
}

1) Si la condición A==1 es verdadera, ¿se comprobarán después B y C? O sin comprobar B y C se realiza "algún tipo de acción".

2) ¿El control va de izquierda a derecha (A, B, C) o viceversa (C, B, A)?

3) ¿Cómo se puede perfilar el código los fines de semana cuando no hay ticks?

 
paladin800:

Las preguntas 1 y 2 sobre la condición como a continuación:

1) Si la condición A==1 es verdadera, ¿se comprobarán después B y C? O sin comprobar B y C se realiza "algún tipo de acción".

2) ¿El control va de izquierda a derecha (A, B, C) o viceversa (C, B, A)?

3) ¿Cómo puedo probar el código en un fin de semana cuando no hay garrapatas?

1. si la primera condición es verdadera, no se comprobarán las siguientes. es una condición "o".

2. de izquierda a derecha

3. estimular a través de la configuración del temporizador, por ejemplo

 

O mis esquís no funcionan, o es culpa mía...

void OnStart()
  {
   int intDATA[];ArrayResize(intDATA,10);ArrayInitialize(intDATA,0);
   Print(string(sizeof(intDATA)));

   int doubleDATA[];ArrayResize(doubleDATA,10);ArrayInitialize(doubleDATA,0.0);
   Print(string(sizeof(doubleDATA)));

   int intD=0;
   Print(string(sizeof(intD)));

   double doubleD=0.0;
   Print(string(sizeof(doubleD)));
  }

2013.04.29 15:28:17    Size (EURUSD,D1)    8   //верно
2013.04.29 15:28:17    Size (EURUSD,D1)    4   //верно
2013.04.29 15:28:17    Size (EURUSD,D1)    52 //должно быть 8*10=80?
2013.04.29 15:28:17    Size (EURUSD,D1)    52 //должно быть 4*10=40?

 
joo:

O mis esquís no funcionan, o es culpa mía...

El sizeof de un array da el tamaño de un bloque descriptivo del array, no el tamaño del array. Para obtener el tamaño del array, debes hacer sizeof(element)*ArraySize()
Документация по MQL5: Операции с массивами / ArraySize
Документация по MQL5: Операции с массивами / ArraySize
  • www.mql5.com
Операции с массивами / ArraySize - Документация по MQL5
 
Renat:
El sizeof de un array da el tamaño del bloque descriptivo del array, no el tamaño del array. Para obtener el tamaño de un array, haz sizeof(element)*ArraySize()
Gracias.
 
¡Ayuda! El gráfico y las estadísticas ya no se muestranhttps://www.mql5.com/ru/signals/5894
 
necroslav:
¡Ayuda! El gráfico y las estadísticas ya no se muestranhttps://www.mql5.com/ru/signals/5894
El corredor borró el historial de operaciones por alguna razón. Tienes que hacerle preguntas.
 
Rosh:
Por alguna razón el broker borró el historial de operaciones. Tienes que hacerle preguntas.

en el propio terminal todavía tengo la historia. ¿Seguro que el problema está en el corredor?

p.d. Está de nuevo en marcha... extraño

 
Hola, la pestaña de señales en MT4 ha desaparecido, estaba por la mañana, llegó por la tarde y ya no está. Y ahora la solicitud no se ejecuta, ¿qué debo hacer?