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

 

Всем привет!

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

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

 
gammaray:

Всем привет!

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

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

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

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

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

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

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

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

 
gammaray:

Всем привет!

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

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

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

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

 
Alexey Viktorov:

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

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

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