т.е. час искомого бара вчерашнего дня должен совпадать с началом текущего часа по терминалу
решила
datetime a = TimeCurrent();
datetime b = 86400; //24часа*60минут*60секундdatetime c = a-b;
Alert (c);
Попробуйте использовать функцию
iBarShift Поиск бара по времени. Функция возвращает индекс бара, в который попадает указанное время. int iBarShift( string symbol, // символ int timeframe, // период datetime time, // время bool exact=false // режим ); Параметры symbol [in] Символьное имя инструмента. NULL означает текущий символ. timeframe [in] Период. Может быть одним из значений перечисления ENUM_TIMEFRAMES. 0 означает период текущего графика. time [in] Значение времени для поиска. exact=false [in] Возвращаемое значение, если бар не найден. Если exact=false, iBarShift возвращает ближайший, если exact=true, iBarShift возвращает -1. Возвращаемое значение Индекс бара, в который попадает указанное время. Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает -1 или индекс ближайшего бара (в зависимости от параметра exact). Пример: datetime some_time=D'2004.03.21 12:00'; int shift=iBarShift("EURUSD",PERIOD_M1,some_time); Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Огромное спасибо! Эту функцию и искала)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доброго времени суток!
Подскажите, пожалуйста, почему возвращается не верный результат следующего кода:
datetime z = TimeCurrent();
Alert(x, " - сутки назад, текущее время: " ,z);
Суть вот в чем - мне необходимо получить open, close, high, low за аналогичный текущему час, сутки (двое, трое и т.д.) назад... но на М1 путем логических умозаключений и калькулятора получается 1440 свечей в сутки.. проверяю время 1440-ой свечи сутки назад на М1 - выходит далеко не искомое время, причем разница постоянно меняется (с отрисовкой новых баров, но все равно не совпадает очень сильно).
Как такой ошибки можно избежать, может кто подскажет функцию, которая позволит вычислить, например, номера искомых баров по нужному интервалу времени, чтобы уже с него получить искомые данные (open,close и т.д.)? Или может укажете на ошибку?
т.е. задача получить номер бара сутки назад, номер бара 2 суток назад, 3 суток назад и т.д. на текущий час.
Другие ТФ не подходят, т.к. по ним high & low не корректно читаются.. мне нужен интервал, например, с 10 до 11 часов вчера, с 10 до 11 позавчера и т.п.