Новая версия платформы MetaTrader 5 build 1860: Функции для работы с барами в MQL5 и улучшения в тестере стратегий - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы же не хотите сказать, что каждый раз когда программист должен обращаться к этим функциям, он должен выяснять сколько всего существует баров и выполнять проверку? Может логичнее все же это в функцию добавить?
В общем - да. Против режима ССЗБ защиту не ставят.
В общем - да. Против режима ССЗБ защиту не ставят.
Так разве эти функции добавили не для слабых программистов, которым как раз и тяжело было переходить с MT4, или в MT4 такая же ситуация - внутри функции нет проверок?
Так разве эти функции добавили не для слабых программистов, которым как раз и тяжело было переходить с MT4, или в MT4 такая же ситуация - внутри функции нет проверок?
Новые добавленные функции всегда возвращают актуальные данные. Это означает, что если нужного бара/таймсерии нет в данный момент, то терминал постарается их получить либо из торговой истории (из минуток), либо запросить данные с торгового сервера (если локально их нет).
Новые добавленные функции всегда возвращают актуальные данные. Это означает, что если нужного бара/таймсерии нет в данный момент, то терминал постарается их получить либо из торговой истории (из минуток), либо запросить данные с торгового сервера (если локально их нет).
Правильно. Идем в рассуждениях дальше. Терминал не знает о том, что на сервере нет этих данных, пытается запросить. Так если даже терминал об этом не знает, то откуда знать об этом программисту?
Значит, нужен какой-то механизм, позволяющий узнать, какое максимальное значение может быть запрошено у сервера (лом это или еще щепка, которую бензопила может перерезать).
Новые добавленные функции всегда возвращают актуальные данные. Это означает, что если нужного бара/таймсерии нет в данный момент, то терминал постарается их получить либо из торговой истории (из минуток), либо запросить данные с торгового сервера (если локально их нет).
А если нет вообще?
Что тогда будет возвращено? Как в mql4 (0 || WRONG_VALUE), или как-то иначе? В анонсе не отражён данный вопрос о возврате при ошибке получения данных.
У меня все правильно. Конструкцию +PeriodSeconds()/2 я добавил, чтобы получить дробную часть бара. Т.к. дробная часть бара не должна влиять на результат, но она влияет.
Т.е. если у нас H1, тогда
при exact=true и существовании бара результат у iBarShift будет правильный если time - ровно время открытия бара, если промежуточное значение то всегда "-1" (что означает вне бара, но это не так). 100% Баг!
А если нет вообще?
Что тогда будет возвращено? Как в mql4 (0 || WRONG_VALUE), или как-то иначе? В анонсе не отражён данный вопрос о возврате при ошибке получения данных.
Можно проверить уже сейчас - код ошибки 4401, если я не путаю.
Оптимизация - продолжает останавливаться, не доходя до конца форвард-оптимизации.