![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тогда не понимаю, почему Bars считает, что 18:00:01 принадлежит M1-бару 18:01, а не 18:00.
А здесь такая же логика, как то, что моей дочке сейчас идет второй годик, хотя ей исполнился один год лишь неделю назад. Или сегодня 09.04.2018 года, хотя 01 января 00 года было 2017 лет, 3 месяца и 8 дней назад .
Кстати, TimeCurrent нужно заменить на SYMBOL_TIME.
Спасибо! Я реально не знал про такой идентификатор.
Кстати, когда я тестировал на правильность алгоритма iBars, сравнивая с эталоном Bars в MQL4, перебирая случайным образом различные варианты, то обнаружил баг в Bars:
Причем на MQL5 этого бага нет.
Он конечно малозначительный, т.к. он появляется только на ТФ = MN1, при датах 30 и 31, часах времени stop_time = 23 и только до 2005 года :)))
Вот скрипт для MQL4, который его отлавливает, при этом iBars оказался более эталонным чем родной Bars.
Кстати, TimeCurrent нужно заменить на SYMBOL_TIME.
Нет, не нужно.
Корректности она не добавит, т.к. TimeCurrent() универсальная для всех символов, т.к. возвращает последнее время прихода котировки по всем символам, а не по текущему.
При этом SymbolInfoInteger(symbol_name,SYMBOL_TIME) очень тормознутая в сравнении с TimeCurrent(), а это время необходимо при каждом вызове iBars
Для тех, кому интересно.
Подредактированная версия iBars (аналог встроенной Bars, только без глюков и быстрее).
Исправлены некоторые ошибки.
Если вы наблюдали, что ваш MQL5-код ни с того, ни с сего подвисает на 10-20 секунд и в нем есть функция Bars, которая может возвращать 0, тогда настоятельно рекомендую заменить ее на этот вариант.
Будет работать быстрее и без этого зависания.
Подредактированная версия iBars (аналог встроенной Bars, только без глюков и быстрее).
Исправлены некоторые ошибки.
Встроенная Bars() перегружена:
У вас лишь одна форма вызова.
Встроенная Bars() перегружена:
У вас лишь одна форма вызова.
если нужна короткая форма, то вполне нормально пользоваться встроенной. Вряд ли там есть глюки.
Нет, не нужно.
Корректности она не добавит, т.к. TimeCurrent() универсальная для всех символов, т.к. возвращает последнее время прихода котировки по всем символам, а не по текущему.
При этом SymbolInfoInteger(symbol_name,SYMBOL_TIME) очень тормознутая в сравнении с TimeCurrent(), а это время необходимо при каждом вызове iBars
Котиры могут идти по всем символам, кроме интересуемого.
Ладно, посмотрел новый исходник. Увидел, что правки, которые обсуждали, не сделаны. Выхожу.