Errores, fallos, preguntas - página 858

 
Por cierto, ¿los segundos bisiestos tienen algún efecto sobre la hora en las fechas?
 

La situación es la siguiente: tenemos una estructura de fechas y en un momento dado le añadimos días u horas o minutos o meses y terminamos con valores negativos como -335.05.2012 00:-615:00 (o en caso de añadir enero 650, 360 horas y 250 minutos). Hay que convertirlos en una fecha normal. Hasta ahora he llegado a esto.

void ReconstructTimeStruct(MqlDateTime &sTime)
  {
   while(sTime.min<0)
     {
      sTime.min=59-fabs(sTime.min);
      sTime.hour--;
     }
   while(sTime.min>=60)
     {
      sTime.min=sTime.min-60;
      sTime.hour++;
     }

   while(sTime.hour<0)
     {
      sTime.hour=23-fabs(sTime.hour);
      sTime.day--;
     }
   while(sTime.hour>=24)
     {
      sTime.hour=sTime.hour-24;
      sTime.day++;
     }

   while(sTime.day<1)
     {
      if(sTime.mon>1)
        {
         sTime.mon--;
         sTime.day=GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year)-fabs(sTime.day); //GetDaysInMonthByMonthAndYear получает количество дней в месяце с учетом  месяца и високосный ли год
        }
      else
        {
         sTime.mon=12;
         sTime.year--;
         sTime.day=GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year)-fabs(sTime.day);
        }
     }
   while(sTime.day>GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year))
     {
      if(sTime.mon<12)
        {
         sTime.mon++;
         sTime.day=sTime.day-GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year);
        }
      else
        {
         sTime.mon=1;
         sTime.year++;
         sTime.day=sTime.day-GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year);
        }
     }
   while(sTime.mon<1)
     {
      sTime.year--;
      sTime.mon=12-fabs(sTime.mon);
     }
   while(sTime.mon>12)
     {
      sTime.year++;
      sTime.mon=sTime.mon-12;
     }
  }

No sé o soy un tonto o los esquís no vuelan. a veces se atasca y en el mes no funciona correctamente.

¿alguien puede decirme cuál es el problema?

¿O quién puede decirme el algoritmo para encontrar la hora de apertura de una vela por fecha, incluyendo velas no formadas, con la posibilidad de desplazamiento (0-vela actual, -1 - vela a la izquierda, 1 - vela a la derecha)?

 
leksiq: No sé cómo comunicar el error a los desarrolladores, lo intentaré aquí...
Tienes una sección de ServiceDesk en tu perfil.
 
Urain:

Exactamente, pero yo lo haría de otra manera... Por lo tanto, si la condición funcionó, no hay necesidad de hacer otra comprobación.

La mayoría de los años pasarán por la primera comprobación como falsos,

En realidad, un compilador normal no comprobará el resto del && si la primera condición es falsa.

No lo sé en ME5.

 
papaklass:

¿Está previsto crear el servicio de almacén para el cuarteto?

Me uno a la pregunta - es posible que la 4 también sobreviva a la 5 - es como XP y VISTA
 
A100:

En general, el compilador normal si la primera condición es falsa - el resto de && no comprobará

pero no sé cómo es en ME5.

De la misma manera. Comprobaciones de estado cortas.

// En cuatro largos (completos)

 
MetaDriver:

// En un cuarteto largo (completo)

Entonces está claro de dónde vienen las piernas
 

MetaTrader 5 Client Terminal build 712

[...]

8. Terminal: Señales. Se ha corregido la visualización de la información de las señales y la navegación colgante entre las señales cuando se trabaja con Wine.

[...]

Han roto algo en el terminal en la última versión. Ahora se cuelga por sí solo después de varios segundos después del inicio ( pipe wait ) y se mata sólo a través del monitor del sistema. Las construcciones 695 y 705 funcionaron sin problemas, pero en general estuvieron bien. Tengo Linux mint 12 ( lisa ), wine-1.4. Aquí se adjunta el registro de la terminal del sistema operativo. Puede ayudar. La propia Terminal MT no deja ningún registro - después de la eliminación a través del monitor las carpetas de registros están vacías.

Me gustaría ver la actualización con la posibilidad de desactivar, por ejemplo, a través de un interruptor de línea de comandos como '/noupdate'. Entonces, al menos, sería posible trabajar de alguna manera antes del próximo choque.

Archivos adjuntos:
crash9log.zip  2 kb
 

OnTesterInit

La función OnTesterInit() es el manejador del evento TesterInit que se genera automáticamente antes del inicio de la optimización del Asesor Experto en el probador de estrategias.

Por lo tanto, esta función se llama sólo cuando Optimización=CustomMax ?

Al principio pensé por la descripción que siempre se llama desde el Probador de Estrategias... Lástima que no sea...

 
Roffild:

OnTesterInit

La función OnTesterInit() es el manejador del evento TesterInit que se genera automáticamente antes del inicio de la optimización del Asesor Experto en el probador de estrategias.

Por lo tanto, esta función se llama sólo cuando Optimización=CustomMax ?

Por la descripción pensé que siempre se llama desde el probador... Lástima que no sea el caso...

¿Qué significa Optimize=CustomMax?

Describe lo que echas de menos. ¿Qué te gustaría conseguir?