Новая версия платформы MetaTrader 5 build 1860: Функции для работы с барами в MQL5 и улучшения в тестере стратегий - страница 2

 
Nikolai Semko:

Вы же не хотите сказать, что каждый раз когда программист должен обращаться к этим функциям, он должен выяснять сколько всего существует баров и выполнять проверку? Может логичнее все же это в функцию добавить?

В общем - да. Против режима ССЗБ защиту не ставят.

 
Rashid Umarov:

В общем - да. Против режима ССЗБ защиту не ставят.

Так разве эти функции добавили не для слабых программистов, которым как раз и тяжело было переходить с MT4, или в MT4 такая же ситуация - внутри функции нет проверок?

 
Aleksey Vyazmikin:

Так разве эти функции добавили не для слабых программистов, которым как раз и тяжело было переходить с MT4, или в MT4 такая же ситуация - внутри функции нет проверок?

Новые добавленные функции всегда возвращают актуальные данные. Это означает, что если нужного бара/таймсерии нет в данный момент, то терминал постарается их получить либо из торговой истории (из минуток), либо запросить данные с торгового сервера (если локально их нет).

 
Rashid Umarov:

Новые добавленные функции всегда возвращают актуальные данные. Это означает, что если нужного бара/таймсерии нет в данный момент, то терминал постарается их получить либо из торговой истории (из минуток), либо запросить данные с торгового сервера (если локально их нет).

Правильно. Идем в рассуждениях дальше. Терминал не знает о том, что на сервере нет этих данных, пытается запросить. Так если даже терминал об этом не знает, то откуда знать об этом программисту? 

Значит, нужен какой-то механизм, позволяющий узнать, какое максимальное значение может быть запрошено у сервера (лом это или еще щепка, которую бензопила может перерезать).

 
Rashid Umarov:

Новые добавленные функции всегда возвращают актуальные данные. Это означает, что если нужного бара/таймсерии нет в данный момент, то терминал постарается их получить либо из торговой истории (из минуток), либо запросить данные с торгового сервера (если локально их нет).

А если нет вообще?

Что тогда будет возвращено? Как в mql4 (0 || WRONG_VALUE), или как-то иначе? В анонсе не отражён данный вопрос о возврате при ошибке получения данных.

 
Nikolai Semko:

У меня все правильно. Конструкцию +PeriodSeconds()/2   я добавил, чтобы получить дробную часть бара. Т.к. дробная часть бара не должна влиять на результат, но она влияет.

Т.е. если у нас H1, тогда

при exact=true и существовании бара результат у iBarShift будет правильный если time - ровно время открытия бара, если промежуточное значение то всегда "-1" (что означает вне бара, но это не так). 100% Баг!

Спасибо за сообщение! Вас услышали.
 
Artyom Trishkin:

А если нет вообще?

Что тогда будет возвращено? Как в mql4 (0 || WRONG_VALUE), или как-то иначе? В анонсе не отражён данный вопрос о возврате при ошибке получения данных.

Можно проверить уже сейчас - код ошибки 4401, если я не путаю.

 
v1860 это уже релиз или еще бета или альфа?
 
1860 - компиляция существенно ускорилась.
 

Оптимизация - продолжает останавливаться, не доходя до конца форвард-оптимизации.