Виталий, как оценивать пропуск баров? 48 баров в сутки? Иногда работа прекращается в 23 часа, иногда начинается в 2. Если на рубль посмотреть, то там ночью торгов нет.
Если строго 24 часа 5 дней в неделю, тогда перебором каждого бара по порядку с проверкой последовательности через время бара при помощи структуры MqlDateTime. Но тогда будут сигналы о пропущенных барах, которых и не должно существовать.
Вот к примеру:
Пропущен 1 бар в среду, начинается по этому символу с 00:30, то есть потерян в 00:00
Тайм М30, получилось в сутках 47, вместо 48. Именно это и нужно выявить
Пропущен 1 бар в среду, начинается по этому символу с 00:30, то есть потерян в 00:00
Тайм М30, получилось в сутках 47, вместо 48. Именно это и нужно выявить
intBars(
string symbol_name, // имя символа ENUM_TIMEFRAMES timeframe, // период datetime start_time, // с какой даты datetime stop_time // по какую дату
);
Понял, вопрос в ложных звоночках, которых будет много.
//дата последней свечи
curr_time=iTime(symbol,frame,0);
//ограничение на торговлю вне начала бараif(last_time==curr_time) return;
if((iBarShift(eSymbol,eFrame,last_time)-iBarShift(eSymbol,eFrame,curr_time))>PeriodSeconds(eFrame)) printf("а-я-яй");
last_time=curr_time;
Не могу решить, как это организовать в цикле по всей истории
Время открытия нулевого дневного бара минус 1 секунду до открытия первого дневного бара. Затем от открытия первого дневного бара минус 1 секунду до открытия второго дневного бара и так далее.
Не могу решить, как это организовать в цикле по всей истории
начерно (к примеру для M30) - если время между открытиями (по модулю % 24 часа) соседних баров больше чем M30 - значит между ними пропущены бары.
int nbars = ( ( iTime(_Symbol,PERIOD_M30,N) - iTime(_Symbol,PERIOD_M30,N+1) ) ) / PeriodSeconds(PERIOD_M30) ) % 48; // сколько баров должно быть между ссоедними отметками
if (nbars>1) PrintFormat("Пропущено баров: %d",nbars-1);
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Виталий, как оценивать пропуск баров? 48 баров в сутки? Иногда работа прекращается в 23 часа, иногда начинается в 2. Если на рубль посмотреть, то там ночью торгов нет.
Если строго 24 часа 5 дней в неделю, тогда перебором каждого бара по порядку с проверкой последовательности через время бара при помощи структуры MqlDateTime. Но тогда будут сигналы о пропущенных барах, которых и не должно существовать.
Вот к примеру:
Пропущен 1 бар в среду, начинается по этому символу с 00:30, то есть потерян в 00:00
Тайм М30, получилось в сутках 47, вместо 48. Именно это и нужно выявить
Вот к примеру:
Пропущен 1 бар в среду, начинается по этому символу с 00:30, то есть потерян в 00:00
Тайм М30, получилось в сутках 47, вместо 48. Именно это и нужно выявить
Я не знаю как правильно, но я бы в таком направлении думал
Вот к примеру:
Пропущен 1 бар в среду, начинается по этому символу с 00:30, то есть потерян в 00:00
Тайм М30, получилось в сутках 47, вместо 48. Именно это и нужно выявить
Vitaly Muzichenko #:
Именно это и нужно выявить
Понял, вопрос в ложных звоночках, которых будет много.
Если 47
Это можно, можно и CopyOpen()
Не могу решить, как это организовать в цикле по всей истории
ещё проще:
Это можно, можно и CopyOpen()
Не могу решить, как это организовать в цикле по всей истории
Это можно, можно и CopyOpen()
Не могу решить, как это организовать в цикле по всей истории
начерно (к примеру для M30) - если время между открытиями (по модулю % 24 часа) соседних баров больше чем M30 - значит между ними пропущены бары.
int nbars = ( ( iTime(_Symbol,PERIOD_M30,N) - iTime(_Symbol,PERIOD_M30,N+1) ) ) / PeriodSeconds(PERIOD_M30) ) % 48; // сколько баров должно быть между ссоедними отметками
if (nbars>1) PrintFormat("Пропущено баров: %d",nbars-1);
ВСЕМ спасибо, принцип понятен, задачу смог формализовать.
---
Теперь вопрос: Что делаю не так, на всех символах одинаковое значение?
---
P.S. Терминал МТ4, проверил на двух разных терминалах в разных ДЦ
P.SS. Проверил в мт5, результат тот-же
---
Наверное, что-то делаю не так!
Нужно получить "Стоимость пункта"
ВСЕМ спасибо, принцип понятен, задачу смог формализовать.
---
Теперь вопрос: Что делаю не так, на всех символах одинаковое значение?
Виталий, тут надо или в баг, разработчикам, или