Скачать MetaTrader 5

Расчет количества баров в определенный промежуток времени

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Миллиард задач уже выполнено в MQL5 Cloud Network. Тестируй роботов еще быстрее!
gammaray
255
gammaray 2016.05.05 13:55 

Всем привет!

Есть две точки периода времени (datetime begin и datetime end). Необходимо посчитать, сколько новых баров на текущем таймфрейме появится в этот период. Задача вроде тривиальная, но что-то столько уже вариантов перепробовал, а при задании разных begin и end (пока даже просто часы и минуты задаю в тестировании внутри одного дня) и разных таймфреймах появляются ошибки. Понимаю, что даты begin и end надо приводить к одной системе отчета. Достаточно минут, ибо таймфреймов меньше нет. Брать разницу и делить на количество минут в баре на текущем тайме. Но все равно ошибки выползают. Может кто уже писал такую функцию.

Заранее спасибо.

Alexey Viktorov
6869
Alexey Viktorov 2016.05.05 15:21  
gammaray:

Всем привет!

Есть две точки периода времени (datetime begin и datetime end). Необходимо посчитать, сколько новых баров на текущем таймфрейме появится в этот период. Задача вроде тривиальная, но что-то столько уже вариантов перепробовал, а при задании разных begin и end (пока даже просто часы и минуты задаю в тестировании внутри одного дня) и разных таймфреймах появляются ошибки. Понимаю, что даты begin и end надо приводить к одной системе отчета. Достаточно минут, ибо таймфреймов меньше нет. Брать разницу и делить на количество минут в баре на текущем тайме. Но все равно ошибки выползают. Может кто уже писал такую функцию.

Заранее спасибо.

Ну так в документации описано

Возвращает количество баров в истории по соответствующему символу периоду. Существует 2 варианта функции.

Запросить количество баров на заданном интервале

int  Bars(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период
   datetime         start_time,      // с какой даты
   datetime         stop_time        // по какую дату
   );
Alexey Viktorov
6869
Alexey Viktorov 2016.05.05 15:25  
forexman77:

Что-то я не понял. А зачем считать количество баров через функцию Bars() зная индексы баров? Не проще использовать арифметическое действие "-"?

ps; В принципе всё правильно, только время надо задать не используя Time[index]

Vladimir Karputov
Модератор
45972
Vladimir Karputov 2016.05.05 15:29  
gammaray:

Всем привет!

Есть две точки периода времени (datetime begin и datetime end). Необходимо посчитать, сколько новых баров на текущем таймфрейме появится в этот период. Задача вроде тривиальная, но что-то столько уже вариантов перепробовал, а при задании разных begin и end (пока даже просто часы и минуты задаю в тестировании внутри одного дня) и разных таймфреймах появляются ошибки. Понимаю, что даты begin и end надо приводить к одной системе отчета. Достаточно минут, ибо таймфреймов меньше нет. Брать разницу и делить на количество минут в баре на текущем тайме. Но все равно ошибки выползают. Может кто уже писал такую функцию.

Заранее спасибо.

Подсчёт хотите выполнять в:

  • индикаторе или советнике?
  • в MetaTrader 5 или MetaTrader 4?

forexman77
2118
forexman77 2016.05.05 15:33  
Alexey Viktorov:

Что-то я не понял. А зачем считать количество баров через функцию Bars() зная индексы баров? Не проще использовать арифметическое действие "-"?

ps; В принципе всё правильно, только время надо задать не используя Time[index]

Стал исправлять получилось так же как у Вас, поэтому удалил вообще. В MQL4 данный пример работает, правда в справке терминала этого примера нет, а на сайте вроде есть.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий