Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1750
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Виталий, как оценивать пропуск баров? 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, результат тот-же
---
Наверное, что-то делаю не так!
Нужно получить "Стоимость пункта"
ВСЕМ спасибо, принцип понятен, задачу смог формализовать.
---
Теперь вопрос: Что делаю не так, на всех символах одинаковое значение?
Виталий, тут надо или в баг, разработчикам, или