Особенности языка mql5, тонкости и приёмы работы - страница 243

 
Если нужна быстрая компиляция без сильного проседания в производительности, можно использовать скомпилированные библиотеки - #import .ex5
 
Nikolai Semko #:

может быть, тогда:

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

Не-а, не работает.    (((

 
Mikola_2 #:

Не-а, не работает.    (((

Работает очень точно. Я этим пользуюсь. Можете преобразовать значение в ENUM_DAY_OF_WEEK

 
Alexey Viktorov #:

Работает очень точно. Я этим пользуюсь. Можете преобразовать значение в ENUM_DAY_OF_WEEK

"Очень точно" не может быть. Либо всегда точно, либо не всегда. Это как селёдка второй свежести. На каком периоде проверяли? У меня не получилось.
 
Mikola_2 #:

Не-а, не работает.    (((

Скобок не хватает, остаток на при делении на 7 берётся с числа, приведённого к типу uchar.

 
Mikola_2 #:
"Очень точно" не может быть. Либо всегда точно, либо не всегда. Это как селёдка второй свежести. На каком периоде проверяли? У меня не получилось.

Что значит «на каком периоде»? Функция всего лишь возвращает день недели. При каких делах тут период? Любое время ставите и получите день недели.

Поставьте дату вашего рождения и получите день недели вашего рождения.

Или вот день недели по времени свечи


 
Aliaksandr Hryshyn #:

Скобок не хватает, остаток на при делении на 7 берётся с числа, приведённого к типу uchar.

Всё там хватает. Я только заменил 24*60*60 по своему усмотрению. 

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

результаты выше…

Обратите внимание с какого времени я пользуюсь этой формулой


 
Alexey Viktorov #:

Всё там хватает. Я только заменил 24*60*60 по своему усмотрению. 

результаты выше…

Обратите внимание с какого времени я пользуюсь этой формулой


 На скрине без ошибки! Внимательно посмотрите. Ошибку я указал.

 
Aliaksandr Hryshyn #:

Скобок не хватает, остаток на при делении на 7 берётся с числа, приведённого к типу uchar.

О, точно! Теперь похоже на правду.
 
Aliaksandr Hryshyn #:

 На скрине без ошибки! Внимательно посмотрите. Ошибку я указал.

Ну так и я тоже показал полный код функции. Повторно:

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

Хотя, по хорошему соглашусь с вами. Возможно и Николай писал по памяти и допустил неточность. Но говорить о том, что это не работает не совсем правильно.

Причина обращения: