Características del lenguaje mql5, sutilezas y técnicas - página 243

 
Si necesitas una compilación rápida sin un gran impacto en el rendimiento, puedes utilizar bibliotecas compiladas - #import .ex5
 
Nikolai Semko #:

tal vez entonces:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+4 )%7;
}

No, no funciona. (((

 
Mikola_2 #:

No, no funciona. (((

Funciona con mucha precisión. Yo uso esto. Puedes convertir el valor a ENUM_DAY_OF_WEEK

 
Alexey Viktorov #:

Funciona con mucha precisión. Yo uso esto. Puede convertir el valor a ENUM_DAY_OF_WEEK

No existe tal cosa como "muy preciso". O es siempre exacto, o no es siempre exacto. Es como un segundo arenque fresco. ¿Con qué periodo lo probaste? No pude hacerlo.
 
Mikola_2 #:

No, no funciona. (((

Faltan los paréntesis, el resto en la división por 7 se toma del número convertido a tipo uchar.

 
Mikola_2 #:
No existe lo "muy preciso". O es siempre preciso o no lo es. Es como un segundo arenque fresco. ¿En qué período lo probaste? No pude hacerlo.

¿Qué quieres decir con qué período? La función sólo devuelve el día de la semana. ¿Qué tiene que ver con el período? Pon cualquier hora y obtendrás el día de la semana.

Pon tu fecha de nacimiento y obtienes el día de la semana de tu nacimiento.

O aquí está el día de la semana por la hora de la vela


 
Aliaksandr Hryshyn #:

Faltan los paréntesis, el resto al dividir por 7 se toma de un número convertido a tipo uchar.

Está todo ahí. Acabo de sustituir 24*60*60 a mi gusto.

uchar WhatWeekDay(datetime t)
 {
  return uchar(t/(PeriodSeconds(PERIOD_D1))+4)%7;
 }

Resultados arriba...

Ten en cuenta que llevo usando esta fórmula desde


 
Alexey Viktorov #:

Todo lo que hay es suficiente. Acabo de reemplazar el 24 * 60 * 60 a mi gusto.

resultados anteriores...

Fíjate cuánto tiempo llevo usando esta fórmula.


¡No hay ningún error en la pantalla! Fíjate bien. He señalado el error.

 
Aliaksandr Hryshyn #:

Faltan los paréntesis, el resto al dividir por 7 se toma de un número convertido a tipo uchar.

¡Ah, cierto! Ahora parece ser cierto.
 
Aliaksandr Hryshyn #:

¡No hay ningún error en la pantalla! Míralo bien. He señalado el error.

También mostré el código completo de la función. Otra vez:

uchar WhatWeekDay(datetime t)
 {
  return uchar(t/(PeriodSeconds(PERIOD_D1))+4)%7;
 }

Estoy de acuerdo contigo. Tal vez Nikolai escribió de memoria y cometió una inexactitud. Pero no es del todo correcto decir que no funciona.

Razón de la queja: