Karputov Vladimir: Так в индикаторе Вы получите дату открытия бара с индексом 163.
Провёл эксперимент, поставил 163 и получил строку
2016.03.07 18:46:29.062Start_day GBPUSD,H1: Start day 2016.02.25 03:00:00
А на самом деле должен был получить дату 2016.03.01 00:00:00 !
Видимо я плохо объясняю, что хочу получить, попробую ещё раз.
Мне необходимо произвести расчет на каждом графике текущего ТФ. Для расчета требуется знать дату верхнего ТФ (дни). Выше я приложил код - смысл в том, что б знать на каждом баре максимальную цену верхнего ТФ на момент открытия бара на текущем ТФ.
Вот второе значение требуется "MqlDateTime&dt_struct// структура для принятия значений ", а как этим MqlDateTime пользоваться - не понимаю.
Есть время. У времени есть такие параметры как: год, месяц, день, часы, минуты, секунды и т.д. Вызвав функцию TimeToStruct() Вы раскладываете время на эти составляющие. Далее, например, можно обнулить часы, минуты и секунды - получите начало дня.
MqlDateTime - это тип данных, такой же, как int, bool и т.д. Просто это составной тип, т.е. чтобы получить доступ к его полям (часам, минутам, секундам...) нужно использовать точку. Например: dt_struct.hour - значение часов. Про структуры подробнее https://www.mql5.com/ru/docs/basis/types/classes.
Не согласен, ведь человек делает индикатор, а в индикаторе нужно работать с массивами из OnCalculate().
как-то фсё запущено) Как-то так:
А как узнать, какой день на 163 баре текущего TF?
time[163]Так в индикаторе Вы получите дату открытия бара с индексом 163.А как узнать, какой день на 163 баре текущего TF?
Не совсем понял вопрос.
0 = сегодняшний
1 = вчерашний и т.д.
Print(time[163]) или Comment(time[163]) выведут дату/время в человеческом виде.
поправил.
Так в индикаторе Вы получите дату открытия бара с индексом 163.
Провёл эксперимент, поставил 163 и получил строку
2016.03.07 18:46:29.062 Start_day GBPUSD,H1: Start day 2016.02.25 03:00:00
А на самом деле должен был получить дату 2016.03.01 00:00:00 !
Видимо я плохо объясняю, что хочу получить, попробую ещё раз.
Мне необходимо произвести расчет на каждом графике текущего ТФ. Для расчета требуется знать дату верхнего ТФ (дни). Выше я приложил код - смысл в том, что б знать на каждом баре максимальную цену верхнего ТФ на момент открытия бара на текущем ТФ.
Не совсем понял вопрос.
0 = сегодняшний
1 = вчерашний и т.д.
Print(time[163]) или Comment(time[163]) выведут дату/время в человеческом виде.
поправил.
Используйте TimeToStruct().
Да не могу я въехать, как это использовать.
Вот второе значение требуется "MqlDateTime& dt_struct // структура для принятия значений ", а как этим MqlDateTime пользоваться - не понимаю.
Мы получим секунды, которые требуется округлить - проблема в округлении.
дык
и есть округление до начала дня. 86400=24*60*60Да не могу я въехать, как это использовать.
Вот второе значение требуется "MqlDateTime& dt_struct // структура для принятия значений ", а как этим MqlDateTime пользоваться - не понимаю.
Есть время. У времени есть такие параметры как: год, месяц, день, часы, минуты, секунды и т.д. Вызвав функцию TimeToStruct() Вы раскладываете время на эти составляющие. Далее, например, можно обнулить часы, минуты и секунды - получите начало дня.
MqlDateTime - это тип данных, такой же, как int, bool и т.д. Просто это составной тип, т.е. чтобы получить доступ к его полям (часам, минутам, секундам...) нужно использовать точку. Например: dt_struct.hour - значение часов. Про структуры подробнее https://www.mql5.com/ru/docs/basis/types/classes.