#define PERIOD__D1 PERIOD_D1 * 60 date2 = TimeCurrent(); date2 -= date2 % PERIOD__D1; date1 = date2 - PERIOD__D1; date3 = date2 + PERIOD__D1;
почемуто не получилось) но спасибо за подсказку, разобрался и получилось вот что:
date2=TimeCurrent()-Hour()*3600-Minute()*60-Seconds(); date1=date2-PERIOD_D1*60; date3=date2+PERIOD_D1*60;
kristopher:
почемуто не получилось
У MQL4, к сожалению, ограничения в #define, поэтому правильно будет так:
#define PERIOD__D1 86400
Вот так немного лучше:
#define DAY_SECONDS 86400
Лучше не дублировать имена
окончательный рабочий вариант:
date2=TimeCurrent()-Hour()*3600-Minute()*60-Seconds(); if (DayOfWeek()==1) date1=date2-PERIOD_D1*60*3; else date1=date2-PERIOD_D1*60; date3=date2+PERIOD_D1*60;
Вот тут
date2=TimeCurrent()-Hour()*3600-Minute()*60-Seconds();написано неправильно.
Потому что функция Seconds() [и Hour/Minute] формально может отработать на секунду позже, чем TimeCurrent().
А правильный вариант- такого плана, как вам написал Иван
datetime d = TimeCurrent(); datetime e = d - d % (PERIOD_D1 * 60)
P.S.: и вообще, судя по тому что вы хотели- этот вариант- полностью неправильный.
Потому что нужны три дня, в которых есть данные.
А пятница может быть выходным или коротким днем (2-3 часа), который нужно проигнорировать.
про нерабочии дни вообще забыл!
jartmail.ru предложи чтонить? :)
может вот так?
date2=TimeCurrent(); date2-=date2%(PERIOD_D1*60); date1=Time[iBarShift(NULL,Period(),date2,false)+1]; date1-=date1%(PERIOD_D1*60); date3=date2+PERIOD_D1*60;ток вот короткий день не проигнорируется..
А что тут можно предлагать?
Залез в массив котировок и с какой-то точки в обратном направлении сканируешь.
Нашёл нормальный день- отложи.
ага)

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
мне нужно получить три даты:
date1 = Текущий год, месяц, ЧИСЛО ВЧЕРАШНЕГО ДНЯ - 00:00
date2 = Текущий год, месяц, СЕГОДНЯШНЕЕ ЧИСЛО - 00:00
date3 = Текущий год, месяц, ЗАВТРАШНЕЕ ЧИСЛО - 00:00
т.е если сегодня date2=D'2010.10.21 00:00' то date1=D'2010.10.20 00:00' и date3=D'2010.10.22 00:00';
как это можно сделать?