Hour() Minute() Seconds() Day() DayOfWeek() возвращают разные значения по выходным
Вопрос был "Почему по разному?"
Цитата:
В скрипте: Hour() =22, Minute()=59, Seconds()=34, DayOfWeek()=5
В индикаторе: Hour() =0, Minute()=0, Seconds()=0, DayOfWeek()=0
Почему по разному то?
Это устаревшие функции. Используйте MqlDateTime. Пример:
void OnStart() { datetime timeCurrentDt = TimeCurrent(); MqlDateTime timeCurrent; timeToStruct(timeCurrentDt, timeCurrent); Alert(StringFormat("h %i, m %i, s %i, day of week %i", timeCurrent.hour, timeCurrent.min, timeCurrent.sec, timeCurrent.day_of_week)); } bool timeToStruct(datetime time, MqlDateTime &var) { ResetLastError(); if(TimeToStruct(time, var)) return(true); Print("TimeToStruct error ", GetLastError()); return(false); }

- 2022.06.14
- www.mql5.com
Понятно-понятно. Со структуры я начал. Этим вопросом владею, пользуюсь.
Был у меня готовый/рабочий код на скрипте, его скопировал и вставил в индикатор. А индикатор не заработал. Долго искал ошибку "у себя". Оказалось, одни и те же функции, в разных местах работают по разному. Просто пол дня потерял, пока не нашел различие между скриптом и индикатором.
Всем привет.
Вчера вечером (воскресение) наткнулся на следующее.
Hour() Minute() Seconds() Day() DayOfWeek() в скрипте возвращают значения последнего известного тика, т.е. пятницы. При этом в индикаторе, эти же самые функции, возвращают просто нули.
По вчерашнему дню, 06.11.2022
TimeCurrent(Struktura)
Struktura.day_of_week=5 //Пятница
Struktura.hour=22
Struktura.min=59
Struktura.sec=34
В скрипте: Hour() =22, Minute()=59, Seconds()=34, DayOfWeek()=5
В индикаторе: Hour() =0, Minute()=0, Seconds()=0, DayOfWeek()=0
Почему по разному то?